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

契約による設計事始め

男爵
February 16, 2020

 契約による設計事始め

Object-Oriented Conferenceの発表資料です。
https://fortee.jp/object-oriented-conference-2020/proposal/1224f293-8624-4448-866f-5d1b991d377f

カンファレンスの感想はこちら。
https://dnskimox.hateblo.jp/entry/2020/02/22/104342

男爵

February 16, 2020
Tweet

More Decks by 男爵

Other Decks in Programming

Transcript

  1. コードの正しさだけでは抑制できな い実行時エラー ファイルアクセスエラー 存在しないパス、パーミッショ ンの不一致、ディスクの物理 的な呼称 メモリエラー メモリ割り当ての失敗、メモリ の物理的な故障 OSからのシグナル

    入力デバイスからの割り込 み、中断命令、Kill データベースエラー 接続失敗、コネクション数の 超過、ロック待ち時間の超 過、SQLのシンタックスエラー ネットワークエラー コネクション確立の失敗、コネ クションの中断 外部サービスのエラー 認証失敗、外部サービス側の バリデーション、メンテナンス
  2. 使っている言語の表明機構を調べる 事前条件 事後条件 クラス不変表明 Scala require ensuring assert PHP assert

    assert × Ruby raise if/unless raise if/unless × なければ表明を組み込むライブラリを探す
  3. 参考文献 ▸ オブジェクト指向入門 第二版 概念・コンセプト ▹ 11章 契約による設計:信頼性の高いソフトウェアを構築する ▹ 12章

    契約が破られるとき:例外処理 ▸ https://en.wikipedia.org/wiki/Design_by_contract ▸ https://speakerdeck.com/twada/php-conference-2016-revised ▸ https://qiita.com/kawachi/items/c3cf53e0602fb53e78e9 ▸ https://stackoverflow.com/questions/147969/is-it-idiomatic-ruby-to-add-an-asse rt-method-to-rubys-kernel-class