よしばノート

出遅れたコンサルタントの焦燥の日々

書評:達人プログラマー

かねてよりのバイブル、達人プログラマーを読んだので気になる言葉を列挙してみた!

 

日々の意思決定に継続的かつ批判的な評価をする。IBMのモットーであるTHINK!は達人プログラマが唱えるべきマントラ。

ソフトウェアのエントロピーは増大する。
ほぼ全ての物理法則を超越するソフトウェア開発もエントロピー増大の法則からは強く縛られる。
ソフトウェアがある限界を超えるまで無秩序さが増大した状態をプログラマは腐ったプログラムと呼ぶ。
どんなに注意を払っても「割れ窓理論」により破壊が進んでしまう。

聞き手を理解するための合言葉 WISDOM →つまり相手に話を聞いてもらいたいときの合言葉
W 何(what)      聞き手に何を知ってほしいのか
I 興味(interest)   言いたいことの中にある彼らの興味とは何か
S 洗練(sophisticate) それらはどれくらい洗練されているか
D 詳細(detail)    彼らはどの程度詳細を知りたがっているか
O 誰の情報(own)    誰にその情報を知ってもらいたいのか
M 動機づけ(motivate) 話を聞いてもらえるにはどうするのか

良い聞き手になる
良い聞き手になってもらいたいなら、まず自分が良い聞き手になる。
自分が彼らの言うことに耳を貸さないなら彼らも自分の言うことには耳を貸さないのだから。

プログラマは常にメンテナンスモードなのです。
我々の理解は日々変わり、設計やコーディング中にも新たな要求は現れ、環境すら変わるからです。


開発やメンテナンスを簡単にかつ信頼性の高いものにするには「DRY原則」に従うのが唯一の方法です。
DRY-don't repeat yourself (同じことを2度するな)
全ての知識はシステム内において、単一かつ明確な、そして信頼できる表現になっていなければならない。
これはつまり知識の二重化を避けるということ。知識の二重化とは同じ知識を二か所以上に記述することです。

「良いコードには多くのコメントがある」というのは重要だが、
「見苦しいコードには多くのコメントが必要となる」という点には注意が必要である。
低水準の知識はコードに任せ、高水準な解説をコメントで記述する。
そうすれば変更発生のたびにコードとコメントの双方を修正する必要はなくなり、知識の二重化が発生しにくくなるからです。

最終決定などというものは存在しない。
シュレディンガーの猫は箱を開けるまでは「生きている状態と死んでいる状態が重なり合っている」というもの。
2つの宇宙があり、猫が生きている宇宙か死んでいる宇宙かは箱を開けるまで分からない。
コードの中にもシュレディンガーの猫がいっぱい詰まった箱が入っているという観点でコードの将来を考える。