FC2ブログ

例外のガイドライン

開発規約~例外処理~

後で読む、読め。あと自分ガイドラインを作ってまとめるとかしる。か なり参考になる。
言及リンク先: 例外のデザインのガイドライン - MSDN


mavenのディレクトリ構成

Mavenを使った開発

Maven 2.0のインストール
maven使ったことはないけどディレクトリ構成は、いいなぁとこのサイ トをみて思った。ソースと成果物が完全に別のディレクトリに分かれて いるところ、また成果物にドキュメント、配布物が考慮されているとこ ろがいい。

app-1.0の中にはバイナリ配布用のディレクトリ構造binとソー ス配布用のディレクトリ構造srcがあります。

あぁ、そうかこうすれば配布用のファイルも区別して作成できるか...で もautomakeとかはアーカイブはソースのみでアーカイブ作成した後、ディ レクトリごと削除してる。どっちがいい。

エラー処理について

エラー処理の書き方には大体2通りあると思う。エラー処理で正常であることを判定して、次の処理をネストして記述する方法と、失敗であることを判定して復帰処理などを行ってすぐに関数を抜ける方法である。

成功判定してネストする記述方法
int func()
{
  // 成功判定
  if (0 < xxx()) {
    if (yyy() != 0) {
      // 正常終了
      return 0;
    } else {
      // エラー処理
    }
  } else {
    // エラー処理
  }
  return -1;
}
エラー判定してすぐ抜ける記述方法
int func()
{
  // 成功判定
  if (xxx() <= 0) {
    // エラー処理
    return -1;
  }

  if (yyy() == 0) {
    // エラー処理
    return -1;
  }

  // 正常終了
  return 0;
}

好みの問題かもしれないけれど、やはり前者のネストして記述する方法はわかりずらい気がする。10行に満たない関数であれば気にならないけれど、数十行という規模になるとネストが4段を超えることもあって非常に読みづらいです。また、エラー処理がエラー発生箇所から離れたところに記述されることで間違いも起きやすくなるとも考えられるし。

このエラー処理の記述方法に関連して、気になっているのがコードを書く際にはなるべく横に広がる書き方ではなくて縦に伸びる書き方が、自分では読みやすい。最近のプログラムはjavaでもwindowsでもIDEで書くことが多いみたいで、横80列を大幅に超えるコードが圧倒的に多くてemacsで横80列表示でコーディングしている自分としては肩身が狭いというか、他の人のコードが読みにくいというか...。
でもでも、今まで読んできたよくできてるソースって大体エラー判定してすぐ抜ける方式のエラー処理していて、縦に記述されている気がします。

ディレクトリ構成

OpenOfficeでも開発する際のディレクトリ構成についてのノートが以下のリンク。
OpenOffice.org Study Wiki.プロジェクトの編成について
Mozillaやrealoneのような大規模プロジェクトでも同様に開発ディレクトリ構成の取り決めがなされている。 ルートプロジェクト/サブプロジェクトという構成自体は共通なんだけれどもビルドされたライブラリや実行ファイルの置き方がばらばらで、自分でも試行錯誤しているが、これといった構成がみつからないでいる。
もうちっと調査検討が必要。

バージョン管理

バージョン管理ツールを使うのはいいのだが、使い方に違和感を感じるプロジェ クトがあった。そのプロジェクトでは実質、バージョン管理ツールをファイル の受け渡しツール程度にしか使いこなせていないようだった。
リリースの時点で、バージョン管理ツールへのチェックインを止めるようにプ ロジェクトメンバ全員に通知される。リリースの時点以降の変更はローカルに 留めてくれとのことだった。
なんのためにバージョン管理ツール使ってるんですかと。CSVならタグ、VSSな らラベルと分岐、SVNならtags以下にコピーすればいいのに。そして、メインの バージョンについては通常通りチェックイン可能とする。リリース後に不具合 があった場合はCVSならブランチ、VSSなら分岐、SVNならbranches以下にコピー したバージョンを使うようにすればいいのに…。

モックとスタブの違い

  • [lib]モックとスタブの違い

    モックは試作でのものだと思っていたけど、XPなどではテストにおいて使用されるものとされているみたい

達人プログラマー

評価用コードのディレクトリ

使い捨てというか評価用の小さなコードを置いておくディレクトリ名を何にす るか決まらない。これまで、trial、proto、prepなどとしてきたけど、どうに もしっくりこない。
XPで言うスパイクやPragmaticProgrammerで言うTracerBullet(曳光弾)、また はプロトタイプを参考にしようかと思った。意味的にはプロトタイプが近いん だろうけど、なんか大袈裟な感じがする。pilotはどうだろう・・・?
モックとかスタブなんてのもあるなぁ・・・。 Crystal では何て言ってんだろ。