達人プログラマーを読んだ
December 05, 2020
雑感
- なるほどなぁと思う点もあったが, そうなのか?と思う点もあった.
- 全体的には同意できる点が多いが, この人たちはどのくらい関数型等の技術に詳しいのか疑問だった.
- オブジェクト指向でのデザインパターンにページの多くがさかれているわりには, 関数型ではモナドのさわりを触れただけなのが不満だった.
設定について
設定が重要であるという趣旨はまあ納得なのだが, 個人的には適切な規約をみつけだす方が難しく感じる.
さらにいえば規約の方が尊ばれるべきだとすら感じる.
例えばCalling ConvensionについてC言語風とPascal風とそれぞれ設定できるよりかは, そのような規約であると解釈してスコープを限定した方がものごとがうまくいくように思う.
そういった設定よりも規約アプローチ についてあまり評価していないのかなといった印象である.
リファクタリングについて
リファクタリングが振舞いを変えてはならないという主張は杓子定規すぎるような気がする.
実際にはリファクタリングにインターフェイスレベルの再設計が紛れることはあるだろうし, 私はそれが特に悪いこととも思わない.
リファクタリングと機能追加が同時に発生する場合でも, 新しい機能によって古いコードがおきかえられる事もあるであろうし, ケースバイケースとしかいいようがない.
テストについて
本書ではテストについて, テストの目的はバグを見付けることよりもテストしやすいコードを書かせることであると主張している.
個人的にはオブジェクト指向で書かなければテスタビリティは常に高いと考える.
全てを単なる(多相な)static functionで作ればテスタビリティは高いし, 結合度も減少するだろう.
本書の趣旨でテストを推奨するのであれば, もっと関数型スタイルのプログラミングを全面に押し出してもいいのではないかと思った.