粒度
■ オブジェクト指向
いまだによく分からん。
概念は分かる。
あるべき姿も分かる。
ルールズも分かる。
が、具体的な正解をいつも示してくれないから、
結局、書くときに困る。
やれ、一行メソッドが理想だの、
やれ、犬だの、花子さんだの。
そんなことは知っている。
こっちが困っているのは、
レビュアーによって美しさの定義が違うこと。
あの人たち、オノレの美学持ちすぎ。
こちとら、誰の目にもそこそこに映る、
「まあオブジェクト指向」的なコードが書ければそれで良い。
突き詰めたコードにすればするほど、
アンチから攻撃受けるから、
ほどほどで、そこそこ万人受けするコードが書きたい。
そういう実学的な教科書が全然ない。
「美しさナンバーワン女優は有村架純だ!」
的な、「んなもん人それぞれだろ」的な内容を、
さも「これがソフトだ!これ以外はコードじゃねえ!」みたいな
論調で振りかざす記事ばかりでどれも参考にならない。
■ とりあえずたどり着いた答え
⇒ テストやれ
⇒ 1週間後に見て単体テスト書けるようなコードにしとけ
ソフトは何かを実現するものであって、
アートではないので、
「確実に動くこと」が正義。
二の次的に、メンテしやすければ、なお正義。
そして、他人が見て読めれば、もうそれで良い。
目玉焼きに醤油かソースかみたいな議論は、
どっかの掲示板でやってもらって、
「確実に動く」を突き詰めれば、
それはテストが動いてるってこと。
自分がこれのテスト書かなきゃいけないって思ったら、
何百行のメソッドなんて、普通書かない。
テストコード書かないからそういうコードが書ける。
後でなるべく簡単にテスト書けるように、
って考えたら、
自然とテストしたくなる所で関数分けして、
複雑なところには結局何ができれば良いのかコメントでメモ書きを残して、
ほどほどにやる。
で、テストきちっと書けるコードで、
テストも書き終わってるコード見せられたら、
誰でも、とりあえずは「うん」って言うよ。
あとは「欲を言えば」の議論なので。
だからテストだけ意識しとけば良い。