かすてらすねお。

見聞録的ななにか。

『Tidy First?』の私なりの理解

bufferings.hatenablog.com   「午前読んだら午後に設計が上達した!」という記事をタイトルだけ見て「ほんとにござるか〜?」と思ってしまい、思い切って買って読んでみた。

一回目は精読した。二回目は一度目で分からなかった単語の理解に努めて、他の単語と結びつけていった。

第一章と第二章は整頓のテクニックとマネジメントに関するハウツー辞書。特に第一章は見聞きしたり経験したりしたことのあるものが多かった。第三章ではそれらのハウツーが「整頓」というコンセプトで理論的にまとめられていく。

下にある要約を書くときに各章が一本の芯で貫かれていることが分かって快感だった。私がこのように読めると気持ちいいと思える要約が書けると楽しい。

とはいえ、金融のたとえ話は頭にすっと入らず困惑した。そのへんは二回目に AI に質問しながら理解した。それは内容を結びつけて理解するためには大事な作業でもある。

私なりの理解

  • 本の位置づけ
    • 自分とコードの関係をよくするセルフケアについての本
    • プログラマが幸福になることを目指す
    • 続刊ではチームの他人との人間関係、チーム外のビジネスに関わる人間関係を扱う予定
  • 変更には構造の変更と、ふるまいの変更がある
    • ふるまいの変更は、その前後でソフトウェアの挙動が変わる変更であり、その意味で不可逆的な変更
    • 構造の変更は、可逆的な変更であり、間違っていればいつでも戻せるタイプの変更
  • 整頓(tidying)とは、数分〜1時間で行う小さな単位の変更のこと(リファクタリングと区別)
    • ふるまいの変更を簡単にするために行う
    • 整頓はレビューを必須しないことで変更全体のコストを下げてみよう
  • ソフトウェアは、そのふるまいを変更できる状態にあること(オプションがあること)そのものに価値がある
    • ベックは金融になぞらえて「オプショナリティ」と呼んでいる
    • プログラムのふるまいの変更を難しくするのは、ソフトウェア内の結合(coupling)である
      • 結合とは、ある箇所を変更したら他の箇所も一緒に変更しなければならない、という状態・状況のこと
      • 整頓により結合を分離していく
  • 整頓って何するの?
    • 色々紹介されてるけど「間違っていればいつでも戻せるタイプの変更」につきる

蛇足

たいていの本では、類似した主張が異なる表現が繰り返される。そこから意味上の凝集を作るのが要約という行為だ。注意してほしいのは、文章が私というコンテキストに拘束されていることだ。

誰が書いても同じになるのは国語の答案であって、それは要約ではない。また、誰もにとって読みやすくするために表現を易しくする必要もない。それは自分の言葉でなくなっていくからだし、私は読む意味を感じない。

今回に関しては、けっこうマシな方だと思う。

読んだ本

www.oreilly.co.jp

Follow me on X: @suneo3476Web