- trend_read
- 65133
- 92
- 146
- 185
このアカウントは誰向きでもありません。発言を読んだことに起因する不快感に関して当アカウントは責任を負いかねます。フォロー・リムーブ・リプライはご自由に。挨拶不要。反応するかは気分次第です。このアカウントはエロ、愚痴、政治、アニメ実況、不謹慎ジョーク、その他一切の言動を自重しません。サイバーイグアナ氏フォロー中
学生の頃の話だ。 当時、僕が所属していたプログラミングサークルの後輩が、オブジェクト指向にはまっていた。僕はオブジェクト指向がなんなのかよくわからず、構造体に毛の生えたような使い方しかしていなかったのだが、後輩は継承にドハマリし、あらゆるコードで継承を使っていた。
2021-02-23 17:07:05「継承って使いすぎると良くないって聞くけどね」 僕はそう言ったが、聞き齧りなので理由は説明できなかった。なので後輩も当然納得せず、継承を駆使したコードをひたすらに追求していた。 たしかに、そのコードは短かった。
2021-02-23 17:08:44だが、ある日その後輩の進捗がぴたりと止まってしまった。どうしたのかと尋ねると、ちょっと変更を入れたら動かなくなった、という。 えてして、そう言う時は本人だけがうっかり気づけなかったつまらないことが原因なものだ。そう思い、コードを見せてもらった僕は仰天した。
2021-02-23 17:14:26からまりあう継承は、もはや木構造ではなく、網だった。 ひとつのメソッドを呼び出すだけでどれだけの親クラスを参照するのかわからない。 苦労して挙動を解析しても、今度は変更していいのかわからない。 クラスは網の中にがっちりと組み込まれ、いずこともしれない場所から呼び出されているからだ。
2021-02-23 17:20:33こんな状態では確かに少しの変更が全体の破綻を招くだろう。継承を乱用してはいけないというのはこういうことだったのか。僕はそう思ったが、すでに遅かった。 「せんぱああああああい。助けてくださあああああい、せんぱああああああい」 この世のものとは思えない悲鳴に、僕は死を覚悟した
2021-02-23 17:22:17「破あ!」 突然、声とともに、青白い光弾が後輩とコードに叩きつけられる! 後輩は吹っ飛んで倒れ、コードは継承を多用しない形にリファクタリングされた。寺生まれで霊感の強いTさんだった。
2021-02-23 17:25:41「継承に取り憑かれていたようだな。危ないところだった。単に字面上似てるコードを片っ端から共通化しなかったか? 自分が対象をどうモデル化しているか、モデルにはどんな変更がありうるか、どんな変更があっても必ず同じ動きになっていてほしいところはどこか、それを考えて使わなきゃだめだぜ」
2021-02-23 17:26:36さすが寺生まれのTさん
途中から寺産まれのTさんになってんじゃないのwwwwwww twitter.com/Isuzu_T/status…
2021-02-24 15:49:46プログラミング的な話
@Isuzu_T LSPの原則にそってなかったのですかね… その結果、Open closed principle にも逆らうような感じになったのも要因なのですかね… Tさん…
2021-02-24 12:28:50