この記事は、みんなのウェディング Advent Calendar 2017 - Qiita 20日目の記事です。
(注:記事中の思想は著者および所属する組織とは一切関係ありません)
序
アドベントカレンダーに寄せるにあたって、ウェディングとエンジニアリングを掛け合わせた何かよい主題がないかと考えたところ、ソフトウェア開発に於ける発明のひとつであるオブジェクト指向によって恋愛を論ずるのが面白かろうという考えに至った。そういう訳で、これから述べることは個人の見解ではなく架空の思想であることに注意されたい。
オブジェクト指向の必要
技術者の諸兄は日々変化する要求に精神を擦り減らし、空虚な会議でやる気を擦り減らし、疲労と倦怠を揚々とその身体に刻み付けていることだろう。
そんな過酷な環境に身を置きながらも健やかな心身を保守運用するため、ソフトウェア開発に於けるオブジェクト指向設計の恩恵を私生活、殊に精神への負担が大きい色恋に関する諸事象へ活かすことはできないだろうか。これが本論の主題である。
精神の内部実装を変更することは心身を激しく消耗させる。
このことから精神の安寧とは、外的刺激に因る内部実装の変更が少ない状態であると解釈できる。そうした心持ちは如何に獲得できよう?
そこでオブジェクト指向である。
単一責任の原則
世の中には「あなたがいないと生きていけない」と云う文言を標準出力するオブジェクトが在る。日頃からオブジェクト指向と密結合している優秀な技術者諸兄はもうお判りであろうが、こういったオブジェクトは非常に危険である。
class DependentMan def live raise ThisMethodRequiresYou end end
このオブジェクトに関わったが最後、貴君はこのオブジェクトの存在維持の責務まで負うこととなり、次第に貴君の実装の内部にこのオブジェクトへの参照がまるで癌のように至るところに発生した挙句、突如このオブジェクトの要求が変化するなどしてもはや手の施しようのない状態に成ってしまうことであろう。恐ろしい。
私は私の生存の責務で手一杯である。
オープンクローズドの原則
「抽象に依存せよ」とRobert C. Martin は云う。我々は身体および精神の仕様によって基本的にパートナーへの依存は避けられない。多くの人々はある特定のオブジェクトに依存しているために、そのオブジェクトが変化した際に精神の内部実装の変更が必要となり、心身への苦痛を伴うこととなる。しかし我々は技術者である。特定のオブジェクトに依存するなどするはずがない。
我々は恋人という抽象に依存する。
これにより、恋人の変更等にも柔軟に容易に対応し、精神の安寧を保守することができる。girlfriend.name
を参照しておけば、恋人の名前も間違えることはない。
ただ、「早まった抽象をしないことも、抽象を使うのと同様に重要なこと」とも云っているので初学者は注意が必要である。
インターフェース分離の原則
独り身の諸兄はこの原則の唯一の実践者であると言わねばならぬ。先に「我々は身体および精神の仕様によって基本的にパートナーへの依存は避けられない。」と述べたが、もちろん強靭な修羅の如き精神の持ち主においてはその限りではない。それを踏まえるとこの原則に従うということは、究極的にシンプルなインターフェースの実現、つまり恋人に関連するメソッドを全て捨て去ることと解釈できる。
しかし常人がこの修羅の道を住こうものなら、死んだ魚の眼をしながら日々譫言のように「恋人が欲しい」と呟く症状が顕れるなど、精神的健康を害す可能性が極めて高いため注意が必要である。
この道を往く多くの独身貴族クラスのオブジェクトたちには畏敬の念を抱かずにはいられない。
結婚をどう捉えるか
オブジェクト指向で実生活をおくる上で最大の課題は結婚をどう捉えるかである。結婚という事象は、低い結合度と高い凝集度を否が応にも実現不可能にせしめる特性を持つ。結婚は夫婦オブジェクトの生成と捉えることができよう。そして我々はそのオブジェクトをコンポーズするパーツと言える。しかし最も難解なのは、我々は自身の生存とこの夫婦オブジェクトの生存の責任を負わねばならないという事実である。
夫婦オブジェクトを構成する各々が生存することのみがこのオブジェクトの生存条件であるなら問題ないが、そのようなオブジェクトはおそらく皆無であろう。往々にしてこのオブジェクトは時間とともに肥大化してゆき死に至ることも屡々である。
しかし我々は技術者である。
ロジックが複雑になってきたり、一つのオブジェクトが肥大化した場合には、クラスに切り出し、責務を切り分け、夫婦オブジェクトをDRYな実装へと近づけてゆけば或いは…。
跋
というわけで最後まで不毛な戯れにお付き合いいただきありがとうございました。
明日のみんなのウェディング Advent Calendar 2017 - Qiita はmatsuhisa_hさんです
それでは明日からはどうぞ、オブジェクト指向による健やかで安寧な日々をお過ごしください。