Index: [Article Count Order] [Thread]

Date:  Tue, 28 May 2002 12:00:50 +0900
From:  Makoto Minagawa <*******@*******.***>
Subject:  [oosquare-ml:02725] Re: オセロゲームのモデル
To:  ***********@***.***.*******.**.**
Message-Id:  <**************.****.*******@*******.***>
In-Reply-To:  <************.*******@***.*****.**.**>
References:  <**************.****.*******@*******.***> <************.*******@***.*****.**.**>
X-Mail-Count: 02725


 前橋さん、こんにちわ。皆川@豆蔵です。

On Mon, 27 May 2002 21:29:15 +0900
Kazuya Maebashi <********@*****.**.**> wrote:

> 皆川@豆蔵さん:
> > 「普通の」オセロだけを対象とするのであればこれで十分ですね。ですが、深
> >読みして「三次元オセロ」や「六角オセロ」みたいな「変な」オセロ・ゲームを
> >作る場合には…なんて事に発想が及んでしまうと、物理的なマス目の配置構造と
> >論理的なマス目間の隣接関係とを別々に扱う…なんていうアイデアが出てきます。
> >「石」をクラスにするか否かも、それがマス目の単純な状況を表すためだけに使
> >われるならば列挙型で十分ですが、ゲームのルールに影響を及ぼすような特殊な
> >「石」が導入される可能性を考えるとすると状況が変わってきます。
> 
> こういう時、下手に凝りすぎると「納期までにプログラムを完成さ
> せる」という本来の目的を見失うことってありません?
> なまじ技術者的には「面白い」からタチが悪いです (^^;

 まったくです (^_^;; その誘惑をいかに振り切るかがポイントですね。

> その辺の反省から生まれたのが、XPにおけるYANGIなんではないかと。

 御意。ただ、(個人的には)XPは(その名が示すとおり)極端(extreme)過ぎると
も思っています。YAGNI原則を真剣に実践するとなると様々な局面において「驚
くほどの」割り切りをやっていくことになります。これは(ある意味で潔くて清
々しくもあるのですが)どうしても中長期的な視点が弱くなりがちになりますし、
意識せずに「ハズレ」を引いてそのまま進んでしまう可能性が高くなるという欠
点も含んでいるように思います。インタフェースを崩さずに改変(リファクタリ
ング)できるようなところではあまり問題になりませんが、アーキテクチャの中
核部分に絡むような大きな改変が必要だということが判明した時の手戻りの大き
さはバカになりません(※1)。

※1: 弊社のXPチームはこれを「ビッグ・リファクタリング」と呼んでいたよう
です。「ビッグ・ウェーブ」みたいなノリですね (^_^;;

 個人的には、一般化・抽象化が行き過ぎたものも良くないし、そういう観点が
不足しすぎているのも良くないと考えています。双方の視点を程よい割合で上手
くブレンドできるようなやり方がベターだと思うのですが、その「さじ加減」を
どうやって見極めるのか、まだまだ曖昧なところが多いのも事実だと思います。
本当に悩ましいですね…。

# OR(オペレーションズ・リサーチ)の最適化問題のように、将来の再利用・拡張
# 可能性によるコスト減の期待値予測と、それをもたらすためにかかるコストの
# オーバーヘッドとの間の最適解を、ある程度機械的に評価・計算できるように
# なったりすると{判断基準|説得材料}として非常に有用になるのでしょうね。

--
  /|/|  ▲      皆川 誠 @ 株式会社 豆蔵
 /    ノ /  }      「きつねはコンと鳴く」
 |// ノ /   |   会社用: *******@*******.***
 =o=|\|   /    自宅用: ***********@*****.***
   く  |  /     携帯用: ********@******.**.**
    ■■■■