「オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Fallout New Tokyo
imported>Administrator
 
(10人の利用者による、間の12版が非表示)
2行目: 2行目:
  
 
== 概要 ==
 
== 概要 ==
 +
2001年に始まり今なお続く「[[石川梨華ってウンコするの?]]」という大論争を[[オブジェクト指向]]で設計するとどうなるのかという問題である。
 +
下品な例だが納期が迫った時期に顧客の要望による大幅な仕様変更、それに耐えうる[[設計見積]]を作れるか、という非常に根の深い問題である。
 
ベストな答えはまだ得られていない。
 
ベストな答えはまだ得られていない。
  
納期が迫った時期に大幅な仕様変更、それに耐えうる[[設計見積]]を作れていますか?
+
==主な見解==
 +
===排便メソッドをオーバーライド===
 +
排便メソッドを[[オーバーライド]]し[[黄金]]や[[null]]を返すようにするという意見である。
 +
 
 +
美少女には排便自体が存在してはならない、という意見があり根本的な解決には至っていない。
 +
 
 +
===仕様が間違ってる===
 +
美少女でも[[ウンコ]]はするものであり、そもそも[[仕様]]が間違ってるという意見である。顧客との直取引であれば「[[フルスクラッチ]]からの作り直しになる」と説明し、高額な[[見積]]を提示することで回避すればいいと言う。
 +
 
 +
だが、顧客の[[要求仕様]]は絶対であり、ましてや[[孫請け]]や[[曾孫受け]]のさらに[[派遣社員]]、いわゆる[[ITドカタ]]に拒否する権限などないという反論意見がある。彼らは黒いモノも白いと言わなければならない。
 +
*顧客「美少女はウンコしないよ」
 +
*元請「美少女はウンコしないらしいぞ」
 +
*下請「美少女はウンコしないことにします」
 +
*孫請「…」
 +
*派遣「」
 +
 
 +
これが[[デスマーチ]]の始まりだ。
 +
 
 +
===美少女クラスは天使クラスからの派生===
 +
美少女クラスは人間クラスではなく天使クラスからの派生であるという意見である。
 +
 
 +
だが、美少女も時間経過により人間クラスを基底とする[[ババア]]になり排便を行うという反論意見がある。
 +
そのような意見に付随し、あくまでも「見せかけ」だけ排便を消すのが得策ではないかと意見もある。
 +
 
 +
===排便はメソッドではない===
 +
一般的に排便は他人から施されるものではない。
 +
よって以下のような[[設計]]になるのではないかという意見である。
 +
*排便メソッド → [[浣腸]]
 +
*排便プロパティ → [[人工肛門]]
 +
*排便イベント → 通常はこれ
 +
 
 +
===排泄イベント===
 +
前述の排便イベントでは「排便」が残るという問題を残している。
 +
そこで排便イベントではなく、もっと[[抽象化]]した排泄イベントにし、その[[イベント引数]]として排泄物オブジェクトを用意し、そこで「どこから」「なにを」を決めるという案である。
 +
 
 +
主な排泄物オブジェクトの「なにを[[プロパティ]]」
 +
*唾液
 +
*汗
 +
*尿
 +
*便
 +
 
 +
かなり正解に近いと思われる。
 +
 
 +
ただし理論上は正解に近くても、[[プログラミング言語]]の機能として[[イベント]]や[[クロージャ]]を持たないものでは、[[Observerパターン]]などを駆使して無駄に壮大な[[ソースコード]]を記述しなければならないという技術面および[[メンテナンス性]]の問題を抱えている。
 +
 
 +
ただし、排便がイベントでは便意を我慢することが出来ないのでないか、という反論意見もある。
  
 
== 2chに立てたスレ ==
 
== 2chに立てたスレ ==
15行目: 62行目:
 
== 関連項目 ==
 
== 関連項目 ==
 
* [[オブジェクト指向]]
 
* [[オブジェクト指向]]
 +
* [[副作用]]
 +
* [[RAIDプログラミング]]
 +
* [[Bjarne Stroustrup インタビュー]]
 +
* [[IT土方]]
 +
 +
*[[うんこ]]
 +
*[[石川梨華ってウンコするの?]]
 +
*[[オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。]]
 +
*[[バイオガス発電]]
  
 
== 参考文献 ==
 
== 参考文献 ==
20行目: 76行目:
  
 
{{stub}}
 
{{stub}}
 +
 +
[[category:2ちゃんねる]]

2015年11月24日 (火) 08:53時点における最新版

オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れないとは、オブジェクト指向設計の難しさを表現したものである。

概要[編集 | ソースを編集]

2001年に始まり今なお続く「石川梨華ってウンコするの?」という大論争をオブジェクト指向で設計するとどうなるのかという問題である。 下品な例だが納期が迫った時期に顧客の要望による大幅な仕様変更、それに耐えうる設計見積を作れるか、という非常に根の深い問題である。 ベストな答えはまだ得られていない。

主な見解[編集 | ソースを編集]

排便メソッドをオーバーライド[編集 | ソースを編集]

排便メソッドをオーバーライド黄金nullを返すようにするという意見である。

美少女には排便自体が存在してはならない、という意見があり根本的な解決には至っていない。

仕様が間違ってる[編集 | ソースを編集]

美少女でもウンコはするものであり、そもそも仕様が間違ってるという意見である。顧客との直取引であれば「フルスクラッチからの作り直しになる」と説明し、高額な見積を提示することで回避すればいいと言う。

だが、顧客の要求仕様は絶対であり、ましてや孫請け曾孫受けのさらに派遣社員、いわゆるITドカタに拒否する権限などないという反論意見がある。彼らは黒いモノも白いと言わなければならない。

  • 顧客「美少女はウンコしないよ」
  • 元請「美少女はウンコしないらしいぞ」
  • 下請「美少女はウンコしないことにします」
  • 孫請「…」
  • 派遣「」

これがデスマーチの始まりだ。

美少女クラスは天使クラスからの派生[編集 | ソースを編集]

美少女クラスは人間クラスではなく天使クラスからの派生であるという意見である。

だが、美少女も時間経過により人間クラスを基底とするババアになり排便を行うという反論意見がある。 そのような意見に付随し、あくまでも「見せかけ」だけ排便を消すのが得策ではないかと意見もある。

排便はメソッドではない[編集 | ソースを編集]

一般的に排便は他人から施されるものではない。 よって以下のような設計になるのではないかという意見である。

  • 排便メソッド → 浣腸
  • 排便プロパティ → 人工肛門
  • 排便イベント → 通常はこれ

排泄イベント[編集 | ソースを編集]

前述の排便イベントでは「排便」が残るという問題を残している。 そこで排便イベントではなく、もっと抽象化した排泄イベントにし、そのイベント引数として排泄物オブジェクトを用意し、そこで「どこから」「なにを」を決めるという案である。

主な排泄物オブジェクトの「なにをプロパティ

  • 唾液
  • 尿
  • 便

かなり正解に近いと思われる。

ただし理論上は正解に近くても、プログラミング言語の機能としてイベントクロージャを持たないものでは、Observerパターンなどを駆使して無駄に壮大なソースコードを記述しなければならないという技術面およびメンテナンス性の問題を抱えている。

ただし、排便がイベントでは便意を我慢することが出来ないのでないか、という反論意見もある。

2chに立てたスレ[編集 | ソースを編集]

ひとりで考えても考えてもベストな答えが見つからないので2chにスレを立てまくってみた。 だが、今なお的確な答えは得られていない。

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]