Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【やさしく解説 設計編・中級 #3】形はあっていたのに ~ 形に書けない約束の話 ~

【やさしく解説 設計編・中級 #3】形はあっていたのに ~ 形に書けない約束の話 ~

【やさしく解説 設計編・中級 #3】形は合っていたのに

ある配車アプリに、タクシー会社が何社も加盟していました。取り決めは一つ。
すべての加盟会社は、「空車の照会」に答えること。

そこへ、ある会社が新しく加盟しました。
 インターフェースの検査はすべて通過、接続試験のテストも緑。

リリース後、配車センターから電話が鳴ります。
 「予約は入っていないのに、空車が減っていくんですが」

テストは、ぜんぶ通っていたのに。なぜ壊れたのでしょうか。

その『なぜ』につく名前が、リスコフの置換原則(LSP)です。
SOLIDの「L」。

けれど形の検査は、この症状を止められませんでした。
検査がチェックできるものと、破られたものが、違うからです。

持ち帰りは一問だけ。
「そのプラグ、形は合っていても、約束を守っていますか?」

SOLIDを原則からではなく、事例から読み直す中級シリーズ(全6回)の第3回です。

---

# ご紹介したスライド
和田卓人「技術選定の審美眼 / Understanding the Spiral of Technologies」
`https://speakerdeck.com/twada/understanding-the-spiral-of-technologies`

# ご紹介したポッドキャスト

「リファクタリングとともに生きるラジオ」第62回(lacolacoさん・okunokentaroさん)。
https://refactoradio.com/episode/062

---
※本編にて、「ドメイン」とは、「駆動」とは、を解説しています。中級編の前にどうぞ

【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
https://speakerdeck.com/panda728/yasasikujie-shuo-she-ji-bian-number-0

ーーー
【やさしく解説 設計編・中級 】目次
#1 一つの車に、運転手は一人 ~ ある倉庫システムの事例から ~
 キーワード:`SOLID` `単一責任の原則(SRP)` `アクター`
https://speakerdeck.com/panda728/yasasiku-sekkei-2-number-1

#2 使わないボタンだらけのリモコン ~ となりの変更で、うちのビルドが赤くなる話 ~
 キーワード:`SOLID` `インターフェース分離の原則(ISP)`
https://speakerdeck.com/panda728/yasasiku-sekkei-2-number-2

#3 【やさしく解説 設計編・中級 #3】形はあっていたのに ~ 形に書けない約束の話 ~
 キーワード:`SOLID` `リスコフの置換原則(LSP)` `事前条件、事後条件、不変条件`
https://speakerdeck.com/panda728/yasasiku-sekkei-2-number-3

#4 ルールの寿命と、システムの年輪 ~ 月曜の朝の、一通の通知から ~
 キーワード:`SOLID` `依存性逆転の原則(DIP)` `安定依存`
https://speakerdeck.com/panda728/yasasiku-sekkei-2-number-4

#5 なぜ「足すだけ」が、「足すだけ」で済まないのか~ ボタンひとつの依頼から ~
 キーワード:`SOLID` `開放閉鎖の原則(OCP)`
https://speakerdeck.com/panda728/yasasiku-sekkei-2-number-5

#6 良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
 キーワード:`SOLID` `クリーンアーキテクチャ`
https://speakerdeck.com/panda728/yasasiku-sekkei-2-number-6

※ 7/17 目次およびスライド間のリンクを調整

Avatar for HideyukiKitao

HideyukiKitao PRO

July 15, 2026

More Decks by HideyukiKitao

Other Decks in Programming

Transcript

  1. 約束には、名前がついています 呼ぶ側を「顧客」 、応える側を「供給者」と呼びます。 名前 誰の約束か いつ成り立つか 事前条件 顧客(アプリ)が満たす 呼ぶ前に 事後条件

    供給者(加盟会社)が満たす 応えたあとに 不変条件 供給者が守る 常に 形(インターフェース) に、書けない約束が三種類ある。 配車アプリでも、燃えた家電でも、破られたのは二行目でした。 解 剖 17
  2. まとめ:張り紙の弱点は、  読み手の注意力を燃やすこと 形で守れない約束は、誰かが張り紙を読む必要があります。 約束 守り方 読む係 形に書ける 形 誰も読まなくてよい 形に書けない

    機械の張り紙(テスト) CI それでも残る 人間の張り紙 注意力(貴重な資源) テストがあれば、人の注意力は、いちばん下の行に集中できます。 処 置 21
  3. この回が借りたもの 螺旋という語りかた 和田卓人「技術選定の審美眼 / Understanding the Spiral of Technologies」 (初演は

    Developers Summit 2018。以後、改訂を重ねて語り直されています) 。 螺旋のたとえを借りています。 https://speakerdeck.com/twada/understanding-the-spiral-of-technologies きっかけをくれたポッドキャスト 「リファクタリングとともに生きるラジオ」第62回(lacolacoさん・okunokentaroさん) 。 継承が主役でなくなっても振る舞いの置換可能性は残る、という視点と、 配車サービスの例への注目は、この回から得た着想です。 https://refactoradio.com/episode/062 変換プラグのたとえ、「機械に読ませる張り紙」 本連載のたとえです。旅と家電の事例はフィクションです。 引 用 元 29