Clean Coder
ボブおじさんがプロのプログラマとは何なのかについて語ってくれている本 職業プログラマーかくありたいという教訓に満ちている
癖は強いけど
Noという/Yesというについては昔読んだ時になんかこえぇ〜〜とか偏屈でめんどくさ〜みたいな気持ちになった記憶があるけど、今読み返すと実際にそういう場面に出くわすことがまぁまぁあり、我々職業プログラマは適切に判断出来ないと自分&会社の首を絞めることになる。経験を積めば積むほど身に染みる章である。
型については100本ノックとかもそうだけどあるべきパターンや手癖を反射でできるようにしておこうというやつで有名
awesomeシリーズもあるじゃん
ほんとか?
プログラマとステークホルダーのコミュニケーションミスを効果的に排除するには、私が知る限り、自動受け入れテストを書く他にない。テストは定式的なものであり、そのまま実行することもできる。曖昧性がなく、アプリケーションと同期が取れなくなることもない。完全な要求文書である。
すいませんすいませんすいません...
ソフトウェアをテストするQAグループが部門として分かれていたとしても、開発グループは「QAは何も見つけてはいけない」を目標としなければいけない。
テスト自動化ピラミッド
ユニットテスト
プログラマの意図の表現
インテグレーションテスト以下はCIに含めない
システムテストは振る舞いではなく構造をテストする
構造..?
手動探索テスト
人間がシステムをぶん殴る
集中力のマナ
MP的な概念。海外だとマナの方がしっくりくるのかな。
睡眠時間+1時間 = 集中力のマナ
8時間集中して労働し続けるには7時間は寝ないとダメということ。丁度いい指標な気がする。
集中力を使う方向性を間違えない
大事だ...
コミットメント
コミットメントというのは、達成しなければいけないものである。ある日までに何かを成し遂げるとコミットメントすれば、その日までに何かを成し遂げなければいけない。それによって、1日12時間働いて、週末にも働いて、家族との休暇が台無しになるとしても、仕方ない。コミットメントしたのだから、最後まで引き受けなければいけない。
これはつまり、出来ないことに対して出来ないということ、断ることから逃げないことだ
プログラマとビジネス
プロのプログラマとして最悪なのは、ビジネスが破綻しているのに、満足気に技術の墓場に没頭することだ。ビジネスを沈めさせないのが仕事だろ!
プログラミングとは、誰かと一緒に働くことなんだ。プログラマはビジネスと一緒に働かなければいけない。他のプログラマと一緒に働かなければいけない。
何かと話すことを覚えよう。それは人間だ。
職人
職人になるための方法は教えられない。長年の経験の結果なるもの。
つまり、ミームを見える化すればいいのだ。そのためには、自分がロールモデルとして振る舞えばいい。自分が職人となり、職人気質を見せてやるのだ。あとはミームがやってくれる。