神戸です。

On Thu, 9 Jun 2005 16:00:41 GMT, Tadasuke YAMAGUCHI 
<tadasuke@galaxy.ocn.ne.jp> wrote:
> 山口です。
> テスト駆動型に慣れていなくて、必要な別のmethodを思いついたら、
> 実装中のmethodをほっぽいて、新しく実装し始めて、なんてのを
> 繰り返し、どんどん中途半端なプログラムができていくという悲しい
> ことをよくやっとりました。

ありがちです。
あとやっぱり無駄なメソッドを作り勝ちなんですよね。

> なもんだから、途中buildもテストも全然せずに実装を続けて、それ
> が完了した時にbuildするとcompile errorがウン100個も出てしまう。

仕事だと泣き喚きながらでもデバッグするんですが、
趣味プログラミングは辛くなったらすぐ放置されるが定めですからねぇ。

> が、JNIが絡んだ時はそんなこともできず、jdbとgdbを連携させて
> こまごまとバグを潰していった記憶があります。あれは苦痛だった。

まぁEclipseでもCDTはまだまだ発展途上なので、C/C++に関しては
なかなかEclipseらしい(?)プログラミングは難しいです。

JNIはともかく、純粋C/C++ならブレーク・ポイントのつけはずしくらいはできますが、
リファクタリングができません。自動テストもできなかったかな?
(もしかしてプラグイン探せばできるのかもしれませんが・・・)

あと、テンプレートの展開バグは実行時ではなくコンパイル中の出来事なので
デバッガではみられないのがもどかしいです。

>>> フツーにインストールしてフツーにプロジェクト作って
>>> デフォルトでJUnitが使えて、それでテスト・ファーストで始めて
>>> コード・コンプリートでプログラムを組みながら
>>> 思い立ったときに気軽にリファクタリングするってスタイルはEclipseで
>>> Java書くようになって初めて実践できました。
>
> というのは非常に羨ましいです。どうしてもテスト・ファースト
> ができない ;_; というか、サボってしまいます。全体効率を考え
> たら自分の経験上そっちの方が早いはずなのに。タッチタイプを
> 覚えた時みたいに、ノロノロでもいいからやってみるかな…。

テストもクラスも、一時に完成させるのではなく
リファクタリングを繰り返して
システム共々徐々に出来上がっていくくらいのつもりがいいようです。
テストから作って(エラーリストならぬ)タスクリストから
雛形コードを自動作成して取りあえず中身を書いたら、
あとはリファクタリングで洗練していくというのがなかなか良い感じなようです。
#だからC/C++でタスク・リスト(エラーリスト)がちゃんと処理されず、
#雛形の自動作成もできず、リファクタリングもできないのが辛い。

JavaによるExtreamProgrammingクックブック −アジャイル開発のためのレシピ集
(原題: Extream Programming in the Real World)
Eric M. Burke、Brian M. Coyner 著、
長瀬嘉秀 監訳、株式会社テクノロジックアート 訳、
オライリー・ジャパン 発行、オーム社 発売

にいろいろノウハウがありまして結構参考になりました。

>>> もっともリファクタリングとかコード・コンプリートに関しては
>>> C++の構文解析が難しいということも一因である気がするので
>>> 将来になってもどこまで実現できるかどうかという不安はありますが。
> Ease of Developmentを合言葉にTiger(J2SDK5)で色々と言語仕様が追加
> されたようですが、
>
> Generics
> Annotation
>
> なんてのは、eclipseの構文解析機能にさらなる能力を必要とさせる
> ような気がして、大丈夫かいなとか思ったんですが、実際どんなもん
> なのでしょう。

他にもBoxing/UnboxingとかEnumとか文法規則が増えるのは間違いないでしょうが、
構文解析そのものが困難になるような変化はなさそうな気がします。
(元々C/C++と違ってJavaでは変数の宣言文に現われる型の式も
配列以外では型名一つで足りてC/C++より全然簡単だし…。)
Genericsにしても
<>に入るのがクラス名(かGeneric型)だけ(C++だと定数式が入りうる)で
再帰的なGeneric定義とかは書けなさそうなので
(typedefもないし、クラス変数はgeneric型間で共有だし、)
C++のほどは難しくないと思います。

-- 
http://www.nerimadors.or.jp/~kando/
kando@nerimadors.or.jp
kando_takayuki@hotmail.com : MSN Messenger