wildcatsの日記

赤羽在住でIT関係の会社の社長やってます。

DbC

トラックバックに対するレス

インターフェイスそのものの効果はない場合(パターンとか)でも、単純にC++のヘッダファイルのような役割を果たせる。インターフェイスを必ず書いて、そこにjavadocを書く。具象にはコメントしか書かない。これは私も良くやります。具象クラスには@seeコメ…

ImplementsFactory

このエントリに関連してこんなの家で作ってみたお public interface Foo { @Pre(values={"args[0]!=null"}) public void hoge(String value); } public class FooTest { @Test public void pre_hoge [ for (Foo foo : ImplementsFactory.create(Foo.class) {…

1インタフェースに対して1実装クラスを抽出する有害性

去年に書いたエントリの補足 1インタフェースに対して1実装クラスを抽出することが私は有害だと考えています。 理由はインタフェイスに対するContractを破った他の実装クラスが発生する恐れがあるからです。 例として銀行の口座の例を挙げます。 public clas…

Annotationを使ったDbCEngine

現場で作ってみた。 動作原理としてはJDKのProxyを使って呼び出し対象のインスタンスが実装している インタフェースのメソッドに定義されているAnnotationに書かれたコントラクトを読み込んで評価する仕様。 Annotationはご想像通りの@Preとか@Postとか。 今…

Contract4j

dWの記事を見て試してみた。 BankAccountImpl.java @Contract public class BankAccountImpl implements BankAccount { private float balance; public BankAccountImpl(float balance) { this.balance = balance; } @Post public float getBalance() { retu…

はじめてのBarter - beyond design by contract

DbC

前に角田さんの「オレンジニュース」で紹介されていて触らなきゃと思って放置していたのですが 今日のartonさんの日記のエントリを読んで少し触ってみた。 メイヤー本にある継承におけるDbCの関係*1まではAspectの結合段階ではチェックしてくれないみたい。 …

オブジェクト指向入門 読書会

来年から始めることにします。 やっぱりEiffelだと理解しづらいですよね。自分は11章まで読み進めたのですがだんだん解らなくなってきてまた1章から読み直ししてます。読書会でネ申が現れることきぼんぬ。

知識とソフトウェアのギャップ、それをどう埋めるのか?

DbC

(via ぐーぐる via うのさんの日記) 昔に読んだような気がするのだけど、覚えてないので再度読み直すことにする。 ところでDbCを勉強するための良い書籍ってないですかね?できれば和書で。 もちろんEiffelとかでサンプルコードが書かれていないのを希望した…