Kent Beck著「Tidy First?」を読み、備忘録を残しています。
英語とプログラミングの勉強のためKent Beck著「Tidy First?」を読んでいる。TidyFirstは難解な単語が少ない一方、しばしば抽象的な表現が登場する。そんな時はじっくり読み込まないと意味が掴めない。
必然的に「この代名詞は何を指すのか」「このthatは関係詞か接続詞か」など英文法を意識せざるを得ない。英語とプログラミングの勉強に最適な一冊である。
含蓄のある言葉が節々に登場するので、よくメモを取る。
software design is fractal(Chapter19. Rhythm)
ソフトウェア設計の構造やパターンは、大小どのようなスケールで見ても繰り返される性質を持っている、という意味だろう。
Software design has a strong “pave the path” tendency.(Chapter19. Rhythm)
ソフトウェア設計は「道を舗装する」傾向が強い。どういうことか? Kent Beckはこんな話を引き合いに出す。
大学が建物の一群を建てた。設計者は、それらの間のどこに歩道を付けるか理解しようとした。その人は知識に基づき推測するのではなく、一面に芝生を敷き詰めた。
そして数か月後、学生が摩耗させた芝生を舗装して歩道にした。
つまりソフトウェア設計では、ユーザーが実際にどうソフトを使うかを観察し、その使用パターンに基づき設計を進化させる傾向が強い。それを表す言葉が pave the pathだった。
(2024.9.1 追記)
私は"pave the path"例で学生は、ユーザーの比喩だと考えた。しかしそれは間違いで、学生はプログラマーの比喩だろう。
つまりソフトウェア設計では、プログラマーが直すコードは特定の箇所に集中しやすい。その部分を整理整頓(舗装=pave)することで、コードの修正がより簡単になる。それを表す言葉が"pave the path"だ。