優秀な人だって同じです。 --- そして私たちが仕事や趣味で取り組み作っているプログラムやコンテンツは、例外なく複雑なもの。いくつもの機能、画面、外部要因が絡まっているものを作り上げている。 じゃあなぜプログラマーは、これは我々も含めてですが、ものが作れているか? そしてなぜ優秀な人ほど素早く保守性高く作れているかというと、(ページ次へ)
解決できない大きな問題があったとしても、それは解決可能な小さい問題の寄せ集めでしかない。 ここは自作するけどここは既存のライブラリを使用する。ここはバリエーションごとに不定になるから分けておく、Webから入手した情報をサニタイズするまで隔離する、アプリケーションの状態を1つのリポジトリクラスでまとめておく、などなど 世の中に優秀な人ってたくさんいますよね。我々には出来そうもないことを何の苦もなくやりのけてしまう人たち。やんなっちゃうくらいスムーズにものを作り上げてしまうんですよね。そこにしびれたり憧れたり嫉妬したりするわけで。 でもどんな優秀な人だって、あらゆるケースを想定したものを一刀彫で作れるわけではない。彼らだって同じ。 でも、問題を見てすぐに適切な単位に分解することができて、それを再構築するまでの道のりを描くことができる。私たちがいちいち迷っている間に進められる。そこが違う。 分割センス、解決可能な塊の大きさとか。
* アジャイル開発もそう
ライブラリやツールの利用によりショートカット可能
※これから独り暮らしを始める料理初心者に伝えるアドバイスとして
(クイズも終わったところで) 分割と統治がいつ出てきたかという話ですが、書籍プリンシプル オブ プログラミングによると、出典は1996年に出され、日本だと2000年に出版された書籍「ソフトウェアアーキテクチャ ソフトウェア開発のためのパターン体系」で、「アーキテクチャ根底技法」として挙げられた10個の技法の1つらしい。ただしこのあらゆる場面で役に立つこの言葉、歴史をもっと遡ることができる。
「我思う故に我あり(コギト・エルゴ・スム)」が有名。他に知っている人はいる?小学生でグラフを書くときに登場した x-yの座標平面、あれをデカルト座標系という。 我思う故に~について乱暴に説明しておくと、あれは普遍的な真理にたどりつくために全てを疑うところから始めて、ただし何もかも疑っていくと自分自身まで存在を否定することになってしまう、しかしこうして疑い悩んでいるという自分自身はたしかに存在している、故に我あり、となり、そこから真理となるものを積み上げていくことができる、という話。そうはいってもどこからが自由意志でどこまでがラプラスの悪魔なのか、という話もありますが、それをしだすと話が散らかってしまうので、このくらいの乱暴さで止めておきます。 デカルトの名言、他にもあるのですが今回の話で思いつく方はいますか?方法序説という本の中で、4つ挙げた言葉の1つです。いかがでしょうか。 回答に行きましょうか。このデカルトが方法序説の中で述べた1つが、(ここでスライドをめくる)
この「困難は分割せよ」です。 ほぼ400年も前に、分割統治は大事である、と言われていたのですね。これはもう、デカルトは近代哲学の祖どころか、エンジニアやプログラマーの祖とも言っても過言ではないでしょう。私たちはデカルトの手のひらの上で踊っていただけなんですから。 というわけですから、私たちプログラマーやエンジニアは常にデカルトを大事に臨むとよいというわけです。つまり「デカルトみ」を胸に分割統治を進めていくわですね。たとえばレビューをしたときにいろんな処理を1メソッドに盛り込んでいたり、神クラスを作っていたりしたら「この部分、もうちょっとデカルト味を足せない?」「おまえのデカルト味、そんなものじゃないだろう!」とか。 いいですかね?今日はデカルト味という言葉を持って帰ってください。 デカルトみです。リピートアフターミー、「デカルトみ」 ちなみに方法序説は、ある書籍の序文にあたる78ページだけを取り出したもの。だから序説とあるんですが、元は500ページを超える本で、その正式な名前は『理性を正しく導き、学問において真理を探究するための方法の話。加えて、その試みである屈折光学、気象学、幾何学。』と長い。デカルトはラノベの祖とも言えるかもしれないです
もう一度リピートアフターミー、「デカルトみ」