generated at
テスト駆動開発

>「動作するきれいなコード」。Ron Jeffriesのこの簡潔な言葉が、テスト駆動開発(TDD)のゴールだ。動作するきれいなコードはあらゆる意味で価値がある

分割統治して、各個撃破する
エンジニアリングの基本は「解決可能なレベルに分割」すること

綿密な設計。しかし
細部が考え込めてなくて、うまく動かない
「ここまでいらない」と気づく
動かしてみたらパフォーマンスが悪すぎて使い物にならない

フィードバックは「実際にコードを書き、それを動かすとき」にたくさん得られる
設計書ではない

ソフトウェアの世界は「予測可能性」と「再現性」が実はじくい
OS, 言語, ハードウェア, ブラウザ…変わるものが多すぎる
5年経てば何もかも違う。
動かすまでわからないことがたくさんある

「きれいにする」のはされないことだ。
怠惰。「動くしいいじゃん」「今回はこれくらいにして、改善は次に」「面倒出し…」
焦り・焦燥感。「時間ない。急がないと」
恐れ。「綺麗にする途中で動かなくなったら……?」

恐れ。しかしコードには触れないといけない
OSもブラウザも変わっていくから。次第に動かなくなる

作りたいのは「Cover and Modify」安心してコードに手を入れられる状態

>リファクタリング(名詞) 「外部から見たときの振る舞いを保ちつつ、理解や修正が簡単になるように、ソフトウェアの内部構造を変化させること」
> リファクタリング(動詞) 「一連のリファクタリングを適用して、外部から見た振る舞いの変更なしに、ソフトウェアを再構築すること」
リファクタリングを一人にしない