夏!ということで、しばらく最近読んだ本とかの感想シリーズいっきまぁす。
まずは、これ。「リーダブルコード」。
プログラムを書いたことがある人なら、だれでも一度はこういう場面に遭遇すると思う。
「あれ?ここのコード、なんでこんな風になってるの?」
「???」
「ふぇ~ 昔の私バカすぎ…」
で、それはある程度のテクニックを使って回避しよう!という内容の本です。
命名の実践的なテクニックや、コメントのつけ方などを教えてくれています。
どんな言語にも共通の普遍的な問題について書いているので、どんな言語のプログラマでも参考になります。
私的には、適当なイタレーターや一瞬しか使わない変数にもちゃんと考えて名前をつけよう!
というの目からうろこでした。
for ($i = 1; $i <= 10; $i++) {
echo $i;
for($j=1; $j<=100; $j++){
echo $j;
}
}
上記のように、i の次、j とかってやっちゃいません?
こういうとき、iやjがなんのイタレーターなのか、ちゃんと名前をつけておくと、確かにわかりやすいんですよ!!
あとは、大きいプログラムをどうやって分割するかって話。
プログラムを書いている時は、なんとなく、流れで理解している。
たとえば、
「明日は茅ヶ崎でバーベキューの予定だけど、朝9時に雨が降っていたら中止で、人数が集まるなら18時から恵比寿で飲み会」
(これは最近の私の実体験で、本当に台風でバーベキューが中止になった(><))
ということをプログラムでやると、最初はこの流れで書いて、あとで分割できて、共通化できるところを分割する。
なんかとにかく作るのだ!という意識が働くと、がーっとifでの分岐でとりあえず作れてしまう。
後で考えるとたとえば「どこで」「何する」「いつ」というイベントのデータをDBから取ってきて、というメソッドを一つ作る。
雨が降っていたら、とか参加人数が多ければという判定のメソッドも作れば他で共通化できるなー
って思うのですが、最初に作っている時は、納期、とかいろんな圧力で手なりに作っちゃう時があるんですよね。
そこは、立ち止まるべきだっ と。ちゃんと分割しておかないと、あとで困るよ、というお話です。
いい本です。
上をめざすことにゴールはないけれども、ゴールがないからということは上に登らないという理由にならないすね!
ちょっとハイキューの影響受けちゃいましたwww