言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

Re: "Abstract" and "Basic" classes

http://thread.gmane.org/gmane.comp.lang.smalltalk.squeak.general/46608

String というクラス名は抽象的なものだから、一バイト文字の実装クラス名に使うのは良くないんじゃないかという Andreas Raab の提案と、もしクラス名を変更するにあたって必要なプロセス。

a) String クラスのインタフェースを綺麗に直す。クラスメソッドがいつどこで呼ばれるか混乱が無いように。#isByteString, #isMultiByteString を使うだけですごいすっきり。

b) クラス名の依存をへらす。たとえば

  • 変換の必要のないように (String streamContents:[], String new writeStream ...)
  • isKindOf: String は isByteString のようにする
  • あとで変える必要のあるやつはマークをつけておく

c) クラス名の変更によってバイナリファイルがどうなるか、入ってるインスタンスが上手く変換されるか確認しておく。

全部やったらString たちの名前を変えてリコンパイルしてみましょう。