高橋征義です。

Hideto ISHIBASHI <hideto-i / rr.iij4u.or.jp>さん:
> > わたしとしては、単に自然言語のコメントで書かれるより、何らかの
> > フォーマットで書かれた方がうれしいです。もちろんそれが抽象クラスで
> > ある必要はないんですけど。
> > 
> > # うーん、一部で話題のDBCのように専用の構文のあると便利?
> 
> たとえばJavaのinterface/implementという感じですか?

たとえばそんな感じとか。
「実装するんならこの辺を実装してね」という気持ちが通じる魔法が
あればいいんでしょうか。

> ぼくの場合、
>  (a) なにもしない
>  (b) 空のメソッドからなるmoduleをinterfaceとして使う
>  (c) 呼ぶとraise NotImplementError, "hoge"する擬似抽象メソッド
> という方法を使っています。実際には(a)が多し。

わたしもそんな感じです。(b)でinterface class(気持ちだけ)とかもします。


"NAKAMURA, Hiroshi" <nakahiro / sarion.co.jp>さん:
> DbCじゃなくてCRCですか?

う、CRCって良く知らないです(_o_)
Class Responsibility Collaboration?

> 専用の構文といえば,[ruby-talk:03538][ruby-talk:03614]とか
> どうでしょう.いやお遊びですから.^^;

そうですね、そんなので十分かも。もっと言うと、

    class Module
      def abstract(*names)
        for name in names
          class_eval %{def #{name}(*a)
                         STDERR.print "#{name} not implemented" if $DEBUG
                       end}
        end
      end
    end

でもいいのかも。
ソースを見れば「お、abstractなのねん。」と判りますから。

高橋征義 (TAKAHASHI Masayoshi)       Email:maki / inac.co.jp