Index: [Article Count Order] [Thread]

Date:  Fri, 12 Mar 2004 17:43:15 +0900
From:  Kenji HIRANABE <hiranabe@....jp>
Subject:  [XP-jp:04947] Re: エクストリーム・トレーニング
To:  extremeprogramming-jp@....jp
Message-Id:  <6.0.0.20.2.20040312172146.03461828@inetgw3>
In-Reply-To:  <20040312155523.61DB.TERADA@....jp>
References:  <20040107022536.EHY5188.mpb2.plala.or.jp@tir-n-org> <20040108233018.77F3.TERADA@....jp> <20040312155523.61DB.TERADA@....jp>
X-Mail-Count: 04947

寺田さん、
平鍋です。

 >以前このMLで話題に出した「エクストリーム・トレーニング」ですが,やっと
 >「型」(練習メニュー)の第一弾を公開しました!
 >なかなか忙しくて時間が取れなかったことと,予想通り(?)型の作成は困難で
 >あったため,ずいぶんと時間がかかってしまいました.
 >
 >    私のページ(ここから辿れます)
 >    http://www.geocities.jp/u_1roh/
 >
 >お題:
 >    Stack クラスの作成
 >
 >言語:
 >    C++
 >
 >特徴:
 >    テーマが Stack クラスのため,オブジェクト指向的なクラス間のコラボレー
 >    ションは織り込むことが出来ませんでした.従って,デザインパターンなど
 >    は全く含まれていません.
 >    しかし,Stack は最終的にはテンプレートを用いて汎用性のあるものにし,
 >    実用上問題ないレベルまで丁寧に作ったつもりです.
 >    ただし,そのために極めて C++ 的な,ちょっとマニアックなコーディング
 >    になってしまったかもしれません (^^;


おお、力作ですね。幾つか思った点を。(C++は久々なので)

(1)const性を、テスト駆動で導出できませんかね。

Stack s;
s.IsEmpty();  // OK

const Stack s;
s.IsEmpty();  // コンパイルエラー
→ const を入れる。

みたいな感じかな。

(2)Swap の導入リファクタリングは行けてますね。
Exception-safefyとも関連しますが、ここは、(C++的に)肝ですね。

(3)Tにデフォルトコンストラクタを必要とさせない、というような
要求は、C++的ですね。いい意味でも悪い意味でも。

感想:
最近Javaに慣れてしまったせいか、C++だと問題領域のこと以外に
考えなければならないことが多い、と再確認しました。


以上