実装する前に満たすべき要件を列挙する
全ての要件を認識できなくて暴発することがある
やることが多いと全体的にやる気を無くすのを避ける工夫
実装する前に満たすべき要件を列挙する
個々の機能を実装する前に毎回行う
「このmoduleの要件はなにか」ぐらいの単位で考えることが多い
アルゴリズム系のものだと「この関数の要件はなにか」の単位で考えることもある
このときに、実装詳細を挙げてしまわないことに注意する
慣れている人だと、要件を書いているときに、同時に実装方法も思いついてしまう
パッと思いついたそれが要件なのか詳細なのかに常に注意を払う
それに対するいくつかの方針を考える
たくさん列挙してから考えて絞り込む
方針を出す方針が自分の中にないなあmrsekut.icon
適当に思いついたものを列挙している
満たすべき要件に対するInterfaceを決める
要件がInterfaceに現れる
取りうる操作を列挙して、その型を決める
満たすべき要件に対するテストを書く
要件がテストケースになる
要件だけに意識を向けることで実装の詳細をtestしないようにできる
その後、詳細を埋めていく
型エラーを消す、テストをpassさせる
詰まった場合は、方針ごとに問題点をまとめる
実装する前に満たすべき要件を列挙する#664459331982700000ea4fc0
何を試して、何を試してなくて、それぞれどういう問題があったか、をすべて記録しておく
その方針を採用しなかった理由も残す
既にそれも考慮した上で別の方針を取っていると言えるようにする