#C++ からはだれか参戦しないのかな。
#C++の
#「メタプログラミング」は別の言語みたいなもんだからなあ (でも見てみたい、超絶テンプレートメタプログラミング)
#なんか、人が書いてるのを見ると自分にも出来そうと思うんですけど、いざ自分でやろうとするとなぜか出来ないんですよねぇ。魔術的です。
#だいたいいつも、基本的な実装が済んだあたりからテストを書き始めるんで、テストファーストっていうのはあまりやらないんだけど、テストファーストがとても上手く行くパターンがあるのがわかった。(1)仕様がはっきりしてる(2)どうやれば良いかわかってる、という場合は、実装というのは単調な作業になりがちでめんどくさい。この場合は、仕様に基づいたblackboxテストを先に書いてテスト失敗を潰して行くのはモチベーション維持にtotemo
#とても良い。この逆で、(1)の、仕様がはっきりしてない場合は、最初にテストが書けない。プロトタイピングの時がそうなんだけど、プロトタイプ作って仕様が見えてきたらそれをそのまま本番コードへ成長させてくことが多いので、テストファーストにならない (仕様が見えてきた段階でテストを書くことはある)。(2)の、どうやれば良いのかが分からない場合も、テストをひたすら通すことよりも、REPLでインタラクティブに足場を確かめながら進めてゆくことが多い。
#(2)については、小さなコンポーネントでどうやれば良いのかがわからない場合、APIをどこに落ち着けるべきかに曖昧さがあるので、テストを先に書きにくいってこともあるかな。それは結局仕様の問題とも言えるが。入出力にどういう情報が必要かはわかってるんだけど、実装を固めないと性能を引っ張らないAPIが決められない、ってケースはわりとあって、それだとやっぱり実装を先行させることになる。
#すごいすっきりしました。