SSブログ

「デザインパターンの骸骨たち」は閉鎖となります。 [日記]

So-netのサービス終了に伴い、
Yohta's Object World」のメインホームページが2021年1月28日に閉鎖となります。

それに伴い、

デザインパターンの骸骨たち」 「デザインパターンの塗り薬」 「jjtree (JavaCC) で、Visitorパターンをマスター」 「C++ビギナーに捧ぐ EffectiveC++入門」 「AMIGO For Win32

これらコンテンツにもアクセスできなくなります。必要な人は魚拓をとっておいてください。

最初の「デザインパターンの骸骨たち」をリリースしたのは2000年の7月ですから、実に20年以上。こんなにアクセスが絶えないコンテンツになるとは最初にアップしたときには考えられませんでした。

当時はデザインパターンの解説書は、唯一GOFの「デザインパターン」。それを読み解きながら、自分の学習のまとめとして公開したものでした。その後、C++版、C言語版を追加し、組み込みでも使えるデザインパターンのコンテンツを拡充していきました。特にC言語版のデザインパターンは目新しかったようで、多くの反響がありました。

JavaCCのコンテンツは、標題からは分かりにくいですが、独自にスクリプト言語を作るための雛形を解説したものです。スクリプト言語の設計を解説したコンテンツは、当時ほとんどなかったので、リリースした直後はデザインパターンを超える人気コンテンツでした。これによって言語設計が身近になった人が増えたとしたら嬉しいことです。

その後、管理職になり最初に感じたのが、若手がC++に習熟していないことでした。「Effective C++」を参考書として買い与えても設計品質があまり向上しないのが悩みでした。よくよく聞いてみると「Effective C++」の内容がよく理解できていない様子。確かにまわりくどい表現が多く、分かり難さはありました。

そこで、可笑しな話ですが、「Effective C++」を例題つきで解説するコンテンツを作ることを思いつきました。それを公開したのが「C++ビギナーに捧ぐ、EffectiveC++入門」です。これも長きにわたりデザインパターンに並ぶ人気コンテンツでした。原書にはないコード付きで解説していたのがうけたみたいです。

今や、C#, Python, Ruby, R, Go, Rust など様々な言語があふれる時代となり、デザインパターンそのものも一昔前の話題となってしまいました。しかし、その技術的な知識や実践につなげるノウハウはこれからもソフトウェアエンジニアにとって重要なスキルです。

IoTやボードコンピュータが一般的になってくると、またメモリと計算資源との戦いが再現されることになるでしょう。その時にC言語などの低級言語でいかに効率的でメンテナンスしやすいコードを書けるかがエンジニアとしての技量が試される指標となるでしょう。

実は、ソフトウェアという技術分野はありません。物理や化学現象を扱う技術と異なりソフトウェアは課題を解決する手段でしかないからです。しかし、ソフトウェアエンジニアの仕事は、ハードウェアと人をつなぐ重要な産業分野であることは間違いありません。ハードウェアを理解しなければいけないと同時に人も理解しなければならない。とても難しいスキルが要求されます。

そのハードウェアと人をうまくつないでいけるフレームワークが各種開発言語であり、デザインパターンに代表される設計手法です。

優れたソフトウェアエンジニアを目指す人は、ハードウェアや設計手法の理解・探求に加えて、人というものについても興味深く研究をしてみてください。ソフトウェアの本質はそこにあります。その本質が分かっていれば、ハードウェアの設計をも主導できるエンジニアとなれるでしょう。

少し長くなってしまいましたね。20年以上続いたコンテンツを閉鎖するというので、少し感慨深い感じとなってしまいましたが、これからも「Yohta's Object World」の旅は続けていきたいと思いますので、引き続きどうぞよろしくお願いいたします。







共通テーマ:日記・雑感

大手メーカのシステムエンジニアの日々の雑感を綴るブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。