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

クソコード動画「switch文」解説

MinoDriven
February 16, 2020

 クソコード動画「switch文」解説

オブジェクト指向カンファレンス2020での登壇資料です。
https://fortee.jp/object-oriented-conference-2020/proposal/b2dcff77-08af-4561-bcda-fc86e553ccec

MinoDriven

February 16, 2020
Tweet

More Decks by MinoDriven

Other Decks in Programming

Transcript

  1. ⾃⼰紹介 • ミノ駆動( @MinoDriven ) • ⼀昨年まではキヤノンの組込み エンジニア。 • Twitter転職で昨年よりクラウド

    ワークス社のWebエンジニア。 • リファクタリング専⾨。巨⼤ RailsアプリをDDDベースで鋭意 リファクタ中。 • TwitterではRPGツクールで制作 したクソコード動画や⾵刺動画 を投稿。 (←僕のアバターではな く、制作中ゲームの主要 登場⼈物)
  2. 今回のあるべき設計 ここだけにswitch⽂を書く。 条件に応じたチケットinterface実装 クラスのインスタンスを返す。 リスト操作をカプセル化 するパターン。 チケット.料⾦()の値を総 計して返す合計⾦額()な ど定義可能。 チケットinterfaceで抽象

    化してるため、何のチ ケットかswitch分岐せず に済む。 シーズンを過ぎたら「シー ズン限定」クラスだけ削除 すれば良い。変更が容易。 料⾦や座席は関⼼事が異な るが、その点の設計は割愛。
  3. ソフトウェアと複雑さ • コンピュータは複雑な処理を、⾼速かつ正 確に実⾏し、社会に恩恵をもたらしている。 • その⼀⽅で • DDD著者エヴァンス⽒「ソフトウェアの複雑さ に⽴ち向かう」 •

    増⽥亨⽒「複雑さとの戦いとは、即ち条件分岐 との戦いである」 • 開発者には、ソフトウェアが破綻しないよ う複雑さを解消したり、複雑さがもたらす リスクを低減する設計責務が求められる。 • 条件分岐が暴れ出さないよう封じ込める呪 術(スキル)を⾝に着けよう。