冒頭からすでに面白い - 脳に収まるコードの書き方① - ReadLog
概要
タイトル:脳に収まるコードの書き方
ジャンル:技術書(情報系), ソフトウェア開発, プログラミング技法
似てる本:リーダブルコード, 良いコード/悪いコードで学ぶ設計入門
位置付け(たぶん):ソフトウェア開発をしたことのある中級者以上を対象にしてる。
備考:C#とVisual Studioでの例が度々出てくるので、使ったことがない/経験が浅いと読みにくいかも。
ここは本の紹介と記録を目的としたマガジンです。
時間がない人や面白い本を探している人向けです。
本の一部を引用しながら、少しでも興味を持ってもらうことを目指してます。
安易なメタファーによる厄介な誤解
ソフトウェア開発には、いろいろな進め方があります。
ウォーターフォールだとかアジャイルだとかテスト駆動だとか。
情報系の資格勉強をやろうとすると絶対遭遇するし、なんかいっぱいあってめんどくさいな、というのが本音です。
(一応ざっくり理解しているつもりではあるけど…)
で、なんでそんなにいっぱいあるのかというと、「最適な手段が確立されていない発展途上の業界だから」ということが1章の最後に述べられます。
いまだにプロジェクトは70%ぐらい失敗するらしいですし、これで手段が完成されてたら笑いものです。
ソフトウェア開発は、一部の例外を除いて複数人のチームでやるものです。
全部1人でやれ、って言われたら軽く絶望できますね。
で、複数人で1つの成果物を作り上げる、という要素だけを切り出すと「建設」と似てると言えなくもありません。
どんな建物を建てたいかの「要求」を顧客から聞き出して、建物の図面を「設計」して、建物を完成させる(≒実装?)。
と考えれば、確かにそうかも?
しかしこれで分かった気になるのが落とし穴です。そして著者は真っ向からこの考え方を切り捨ててくれます。やったー(?)
①ソフトウェア開発に終わりはない
建物は完成すれば軽いメンテナンスで済みます。
しかし、開発が終わるソフトウェアは「終わっている」ので、もはや価値がありません。開発は永遠に続かなくてはいけません。
どっちにしろ辛いなおい。。。
②完成品が"出来上がる"のは一瞬のこと
コンパイルの瞬間だけが「作成」でコンパイルするまではずっと設計
というのがいい主張でした。
じゃあインタプリタ言語はどうなんねん!!!というツッコミはありつつ、
常々「詳細設計ってほぼ実装コードじゃん」と感じてたのでめちゃくちゃ腑に落ちました。
そっか、あれってギリギリまで設計してたんだね。
③物理的な制約はない
建物は基礎から作らないと建ちません、一方ソフトウェアはどこからだって作れます。
例えるなら、屋根から作ってもいいし、カキワリに内装だけ作るようなことだってできます。建物でそんなことできてたまるか!
その他のたとえ
著者は、ソフトウェア開発を庭づくりでたとえる例も出します。
終わりなき開発が必要なことを示せるので、家を建てるよりは適切だ。と言いつつも
という妙にキレのある表現で指摘しています。
ポテチでソフト作れたらいーのにな…
第1章で著者が言いたかったこと
この章では、ソフトウェア開発とは何かが、「比喩で理解できるほど完成されていない」と背理法的に語られます。
ソフトウェア開発について勝手に分かった気にならず、ひとまず今できるベストを尽くそう。というのがこの章の趣旨です。
このベストを尽くす方法を知れると期待して読み進めていきます、またね!(次はもう何章か読み進めます。)
次:
この記事が気に入ったらサポートをしてみませんか?