miyaniyanのブログ

ここでは日常生活の雑感を。 

エンジニアの楽しみは創造と達成か

プログラミングやっているとき、あのAPIを使ってとか、こういうアルゴリズムを実装して、キャッシュメカニズムを取り入れて、高速な処理を実現するとか、いろいろ工夫するのは楽しい。

ビジネスアプリケーションの処理をルールに従って作るというよりも、そのベースになる何か新しい仕組みとかを試行しているときとかは、とにかくプログラミングして、ぐちゃぐちゃになりながらも、「出来た出来た!」って満足感を得ていた気がする。

その後、ようやくアーキテクチャを意識しだして、全体を整備しなおすのだけど、クラス図を描いたりしなおして、インタフェースを定義しなおして、、、ってここからきちんとやり直す感じがある。
本格的な開発にはこういった試行がすこしあったあと、構造を定義し、処理パターンを確立させる。

一気にすべてを見通せることはなかなかなく、デザインパターンやその他先人の知恵を活用しながら徐々に洗練させていく。

こういったプロセスを知っているので、世の中のフレームワークとかの出来については、いいなあと思ったりするものもあって、もっと知りたいと思ったりする。

単純に楽になるとか、コードを記述しなくてもいいとか、そういった方向性の話と、楽しくプログラミングしながら、でも、あんまり楽しくないコードは書かずに済んで、面白さが残っているのが理想だろうか。

プラグインコードを書いて拡張するとか、ああいったアーキテクチャって、プログラマの楽しみを残しながら、全体が成長できる意味で、とても創造性の高い感じがする。

一方、最初から完成度がとても高いのだけど、拡張する自由度はあまりなかったり、完成度が高い割りにコードはあまり創造性に満ちていなかったり。

ま、どちらも楽しみはある。完成度の高い仕組みを使って、早くいいものを作っていくってのもあるし、すこし時間はかかるけど、基本的に自由度の幅があって、プログラムの工夫が残っているのがいいってのもあるし。