nDiki
2004年5月16日 (日)
■ assertion

昼食の時に話題になったので、考えてみた。
@ assertion を書いているか? いつ書くか?
最初からあまり書くことはない。 大抵、デバッグ中に書く。
ただし assertion を埋め込むようなデバッグをした次のコーディングフェーズでは、結構書く(長続きはしない)。
契約による設計をしたいと思いつつ、場当たり的。
@ C++ の時
最初に、自前の assert 処理を定義する(assert 関連マクロ、例外クラス、assertion を評価する関数など)。
比較的 assertion を埋め込む。
@ Java の時
うーん。C++ の時ほどは書かないかな。
assert a_obj != null;
とか書いていて後で「あまり意味ないな」って思ったり。 C++ だと assertiion でチェックしておかないと発見が遅れる場合があるが、Java だと NullPointerException が吐かれるから大抵気がつくから。
@ Perl の時
簡単に無効化できないという意識があるためほとんど書かない。 大規模なパッケージの場合は、Makefile.PL を実行する際デバッグフラグを立てると make 時にコメントアウトされている assertion を有効にするようにソースコードを書き換える。
@ assertion を書くのをためらう時
- assertion の条件式の計算がヘビーな時
- assertion でチェックする条件の値を求めるのが面倒な時(ループを回さなければならないとか)
- 本来のコードより assertion の方がずっと多くてコードが読みにくくなる場合
- return 文が複数ある時(事後条件)
- 他のメソッドの戻り値を直接 return してしまう時(事後条件)
- Module::Build でソースパッケージング (2005-08-24)
- ハッシュとは (2004-06-09)
- 久しぶりに build.xml を書く (2005-11-14)
- 新入社員 (2004-04-16)
- 久しぶりにdoxygen (2004-03-24)
Related term
■よく検索されるキーワード
提案書(75) torrent(69) perl(61) 書き方(45) 充電式カイロ(43) windows(38) x31(36) 使い方(32) linux(32) cvs(25) アジェンダとは(25) usb(25) thinkpad(23) 静電気(21) サンプル(20) 口コミ(20) ヨドバシ(20) アジェンダ(20) 画像(19) debian(19) ubuntu(19) mp980(18) f-01a(18) 手帳(17) tc-1(17) 秋葉原(16) ssh(16) subversion(16) グッズ(16) a6(15) 壁紙(15) ほぼ日手帳(15) c#(14) ダイソー(14) svn(14) 交換(14) インストール(13) 加湿器(13) firefox(12) ノート(12) 無印(12) 日本語(12) wiki(12) ganttproject(12) デロンギ(11) 方眼(11) ヨドバシカメラ(11) デザイン(11) nikkor(11) 設定(11) 作り方(11) dropbox(11) af(10) terastation(10) memcached(10) レビュー(10) カバー(10) カイロ(10) 2009(10) 除去(10) nikon(10) tortoisesvn(10) クラリチン(9) ガントチャート(9) 動画(9) ポメラ(9) ご査収(9) rcs(9) モジュール(9) n-01a(9) フィルム(9) 写真(9) システム手帳(9) edition(9) porter(9) xp(8) imap(8) 4c(8) docomo(8) ミニ6穴(8)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 3.262764s / load averages: 0.26, 0.27, 0.25
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク