プログラマが知るべき97のこと
「プログラマが知るべき97のこと」を読了した。
デブサミで 和田さん( id:t-wada ) の講演を聞いてから、読んでみようと思いつつ、こんなに遅くなってしまった。講演のメモはこんな感じ。
とてもよい本だった。そして以下のエントリも琴線にふれるものだった。
僕は職業的プログラマではなくシステムエンジニアで、仕事でプログラムを書くことは少ない。それでもやっぱりプログラミングが好きだし、プログラミングは楽しい。だからちょっと励まされた気がした。勝手にだけど。
気に入った、共感した「きのこ*1」を挙げていく。
関係ないけど僕は茸が嫌い。我慢して食べられるけど、食べなくてよければ食べない。なぜ菌のかたまりを食べるのか理解出来ない。
とても気に入った きのこ
01.分別のある行動
技術的負債の大きいPJの支援をすることがある。もちろん大変なことになる。だから技術的負債はちょっとずつ返済したいと思っているのだが、なかなか思うようにはできない。
05.美はシンプルさに宿る
美はシンプルさに宿って、神は細部に宿るのだと思う。
67.コードを読む
オープンソースのコードを読むと、いろいろな発見がある。自分が昔書いたコードを読むと、残念な発見がある。残念だと思えるのは、自分が成長しているからだと信じたい。
79.テストのないソフトウェア開発はあり得ない
テストとバージョン管理システムがないと、リファクタリングができない。リファクタリングできないと、当たり前だけどすごく困る。そして同じような作業を何回もやるのは嫌だからテストを書きたいと思う。
J10.名前重要
名前がはっきりしているということは、目的がはっきりしているということかもしれない。
けっこう気に入った きのこ
18.学び続ける姿勢
大事、大事。デブサミでは いちばん大事なきのこ として紹介されていた。もっと勉強しないと。
38.余分なコードは決して書かない
YAGNI。使うかもしれないと言われたときに、そんなものは作りたくない!と言っても先に進まないので、なぜ、どんなときに必要になるのか具体的に確認するようにしている。もしかしたら本当に必要かもしれないので。
60.真実を語るはコードのみ
真実を語るのはコードなので、コードは読みやすくしなくてはいけない。
74.「イエス」から始める
ほとんどノーから始められると凹んでしまうので、自分がそうしないように気をつける。
J03.ルーチンワークをフローのきっかけに
こういった経験はないけど、スポーツでは必ずウォーミングアップをするし、けっこう効果的なのかもしれない。
気に入った きのこ
02.関数型プログラミングを学ぶことの重要性
全然身についていないけど、ちょっとだけ Erlang を勉強したことで、まったく違う世界があることを知った。
03.ユーザが何をするかを観察する(あなたはユーザではない)
「偽の合意効果 - Wikipedia」
気を付けないと、つい自分を中心に考えてしまう。
17.コードに書けないことのみをコメントにする
そしてコメントに嘘を書くなんてもってのほか。
29.DRY原則
繰り返しや重複は避ける。
33.オープンソースプロジェクトで夢を実現する
仕事を続けながらでもできることがある。
41.無駄な警告を排除する
常にdebugレベルで出力されていたり、そもそもログが出力されていないとか、あったりするよね。
54.見えないものを見えるように
見える化、可視化、大事。
56.未来へのメッセージ
コードは未来の誰かへのメッセージ。
92.顧客の言葉はそのまま受け取らない
そもそも「顧客」にもいろいろなひとがいて、「顧客」のなかにも利害関係がある。