++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

.NET のクラスライブラリ設計

leave a comment »

年末休みはがっつり引きこもる予定でいるんですけども、引きこもりライフの最初2日はこの本を読みふけってました。

なかなか良書。「フレームワーク」なんてたいそうなものでなくても、ライブラリを書くことがあるなら読んでおいた方がいいと思う1冊。ある程度以上大きなアプリ作るなら、ほとんどの場合まずライブラリの整備からやると思うし、実質的にはみんな読んだ方がいいんじゃないかと思うくらい。

単純に、あの規模であれだけ一貫性を保ててる .NET Framework のクラスライブラリのガイドラインが書いてあるってだけでもそれなりに素晴らしいんですけど、開発者の生の声がかなり入ってるのが素敵(著者以外にも、ものすごい人数が注釈を寄稿してる)。

  • 失敗について書かれてる
    • 自分でライブラリを書くとき、既存のライブラリを参考にしたりするわけですが
    • 既存のライブラリは、後から失敗に気づいても互換性維持のために修正が効かないことも多々ある
    • そういう、直したくても直せない部分のことを素直に「失敗だった」って書いてるのはありがたい
      • DateTime.Now とか ICloneable とか
  • 実物触ってるだけだと意外と気づきにくいところの説明が載ってる
    • 例外の使い方
      • 例外についてまとまったガイドラインって案外少ないんで
    • インターフェース VS 抽象基底
      • API 作ってると過剰にインターフェース増やし過ぎる傾向にあるんで
        • インターフェースだと後からの追加に弱いとか、弱点もある
        • 過剰にインターフェース増やすとパフォーマンス落ちる
      • だから .NET Framework は抽象基底とか、IsReadOnly とか CanWrite とかが結構多いのね
  • 実際の経験やユーザビリティテストに基づいたルールがいろいろと
    • 例えば、↓みたいなガイドラインはユーザービリティテストやった結果としてそういう方針にしてるとか
      • new の数減らせ
      • コンストラクターの引数の数減らせ
      • コールバックの仕組みは、デリゲートをメソッドの引数に渡すよりイベント使え

Written by ufcpp

2009年12月27日 @ 16:51

カテゴリー: .NET

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。