Gauche > Archives > 2011/07/02

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