取り上げる本について
他の方の感想
読書前、中に出会った、他の方の感想など。読書のきっかけ、モチベーションアップ、読書時の新たな観点になった。
-
新刊『Tidy First?: 個人で実践する経験主義的ソフトウェア設計』発売のお知らせ | Ryuzee.com
「私の目標は、読者が午前中に本書を読み始めたら、午後には設計が上達していることだ」とあるように、すぐに日々の開発に取り入れることができるはずです。
-
Tidy First? #SoftwareDesign – Qiita
Tidy First?はこんまりメソッドの影響も少なからず受けてそうです。
-
「Tidy First?」から紐解くファインディの生産性向上への姿勢と考え方 – Findy Tech Blog
- 読み終わった後にこのページをもう一度読んだ。自分が理解しにくいと思っている箇所の一部が取り上げられていて、良い復習になった。
本を手にとってみて
小さい!薄い!字が大きい!気軽に読み始められそうですぐに読み終われそうと予想できて読むモチベーションが上がる。
なお、対極にある、大きい分厚い字が小さい、のは、今まで読んできている次の本だ。
- 単体テストの考え方/使い方 | Vladimir Khorikov, 須田智之 |本 | 通販 | Amazon
- Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス | 竹辺 靖昭, Titus Winters, Tom Manshreck, Hyrum Wright, 久富木 隆一 |本 | 通販 | Amazon
- こちらの本はまだ読み終わってすらいない。だが章ごとにメモを本ブログに残している。
2月19日(水)読み始め
はじめに
本書には以下のことを書いている。
- 処理を変更する前に、乱雑なコードをいつ整頓すべきか
- 乱雑なコードを安全かつ効果的に整頓する方法
- 乱雑なコードの整頓のやめどき
- 整頓がうまくいく仕組み
「いつ整頓すべきか」「整頓のやめどき」についてパワーアップしたい。
第I部 整頓
コードを整頓するテクニックの詳細、具体例。本書ではこれらのことを「整頓」と言っている。おそらく、定義を明確にしたかったのだと思う、その視線の先には、リファクタリングがあり、リファクタリングと整頓は違う、ということを強調したかったのではないかと思う。
第II部 管理術
16章 分けて整頓する
結論。整頓はそれ用のプルリクエストに入れる。整頓はプルリクエストごとにできるだけ少数にする。
トレードオフを考慮し、このやり方がベターとのこと。サイズの小さなプルリクエストで速いレビューを選択する方に舵を切る。
整頓のプルリクエストではレビューを必須にしない実験をしてみよう。
ここが終着点。実際、私も自動整形や自動修正はレビューしていない。
18章 バッチサイズ
書いてあることがなんとなくしか分からない。納得、腹落ち、しない感覚。難しい。
19章 リズム
つまり、数分から1時間くらいまでだ。振る舞いを変更する前に1時間以上整頓するようだと、実現したい振る舞いの変更に必要な最小の構造変更を見失っている可能性が高いことを意味する。
整頓が何時間も続く状況は、未来ではあまり起こらない。パレートの法則、80%の変更は20%のファイルで発生する。しばらく時間が経つと、ほとんどの変更は既に整頓済みのコードで起こるようになる。
以上のようなことの結果として、整頓は数分から1時間までの活動に収まるようになる、と著者は自信を持って断定している。
21章 先に整頓、あとに整頓、改めて整頓、整頓しない
本を1周読み終わった後に、いつ整頓するか、いつ整頓を止めるべきか、が知りたかったことだと思い出し、この章をもう一度読んだ。
「改めて整頓」がなかなか良いことに気がついた。うまく「改めて整頓する」ためにはリストに整頓したいことを書き留めておく必要があるが、一度リストを作っておけば、そこから小出しにして整頓を好きなタイミングで行うことができる。これは良い点だと思う。
第III部 理論
なぜ整頓するか?を扱う部だが、読んでいる途中でわからなくなった。
23章 構造と振る舞い
だが、構造がオプションを生み出す。給与計算に新しい国を追加しやすいか難しいかは、構造次第なのだ。
ここら辺から「オプション」というワードが出てくる。「選択肢」と思えばいいのだろうか。
構造の変更と振る舞いの変更はどちらも価値を生み出すが、根本的には別物だと理解するところから始めよう。どのように?一言で言えば、可逆性だ。
大事そうなので下線を引いたが、読了後にこの部分を振り返ってみてもイマイチピンと来なかった。「28章 可逆的な構造変更」との関係が深そうなのだけれども。
26章 オプション
「オプション」という言葉は「金融オプション」を念頭に使われているように思う。意味知らないけど。単純な「選択肢」という意味ではなさそう
33章 結論
誰が? | いつ? | 何を? | どのように? | なぜ? |
---|---|---|---|---|
あなた | 数分から数時間 | 整頓 | 構造と振る舞いを分ける | 結合と凝集 |
本書をうまく血肉にできた感覚はあまりないのだが、おそらく一番大事なまとめだと思うので抜粋した。
おわりに
2025年3月17日(月)読み終わった。
第I部はすでに知っており簡単で読み飛ばせような感じだった。ところが第II部第III部になると、言ってることはわかるが、いや、言ってることもよくわからない、というところがしばしばあった。1つの文、1つの段落の場合は理解できるが、その章全体に範囲を広げると、なんとかわかるか、わからない、そして、部や本全体の中でなぜその章があるのか、どのような役割を果たしているのか、というところに来ると訳が分からなくなっている自分に気がついた。
プログラミングに長く携わってきているが、メンタルモデルとしてまだまだ伸びしろがあるんだろうなと思うことにする。
本自体が短いということもあるので、時々手に取って読み返してみたい。