テスト駆動開発
https://gyazo.com/c485daa83976f4f9cb1a10878452bebf
「動作するきれいなコード」。Ron Jeffriesのこの簡潔な言葉が、テスト駆動開発(TDD)のゴールだ。動作するきれいなコードはあらゆる意味で価値がある
分割統治して、各個撃破する
綿密な設計。しかし
細部が考え込めてなくて、うまく動かない
「ここまでいらない」と気づく
動かしてみたらパフォーマンスが悪すぎて使い物にならない
フィードバックは「実際にコードを書き、それを動かすとき」にたくさん得られる
設計書ではない
ソフトウェアの世界は「予測可能性」と「再現性」が実はじくい
OS, 言語, ハードウェア, ブラウザ…変わるものが多すぎる
5年経てば何もかも違う。
動かすまでわからないことがたくさんある
「きれいにする」のはされないことだ。
怠惰。「動くしいいじゃん」「今回はこれくらいにして、改善は次に」「面倒出し…」
焦り・焦燥感。「時間ない。急がないと」
恐れ。「綺麗にする途中で動かなくなったら……?」
恐れ。しかしコードには触れないといけない
OSもブラウザも変わっていくから。次第に動かなくなる
作りたいのは「Cover and Modify」安心してコードに手を入れられる状態
リファクタリング(名詞) 「外部から見たときの振る舞いを保ちつつ、理解や修正が簡単になるように、ソフトウェアの内部構造を変化させること」
リファクタリング(動詞) 「一連のリファクタリングを適用して、外部から見た振る舞いの変更なしに、ソフトウェアを再構築すること」
リファクタリングを一人にしない
https://youtu.be/UhHdnLTxOjEhttps://youtu.be/Q-FJ3XmFlT8