クソコード動画「switch文」


http://javablack.hatenablog.com/entry/2019/06/27/074222
http://javablack.hatenablog.com/entry/20190804/1564845022

リファクタリング第二版も出てたのか.

Refactoring: Improving the Design of Existing Code (2nd Edition) (Addison-Wesley Signature Series (Fowler))

Refactoring: Improving the Design of Existing Code (2nd Edition) (Addison-Wesley Signature Series (Fowler))

  • 作者:Martin Fowler
  • 出版社/メーカー: Addison-Wesley Professional
  • 発売日: 2018/11/29
  • メディア: ハードカバー
JavaScriptになったからといって近代的とは思わんが,クソコードになり易いぶんだけリファクタリングのニーズは強いかもな.


初版.

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)


そこだよな.

「家族割り」とか,あのプランとだと無料だけど,こっちのプランだと30%OFFとか,しかもそのプラン自体が新しく追加されたり廃止されたり大きな変更も入る.よくよく考えて作らないと,この動画のようになるわけだ.
https://www.softbank.jp/mobile/price_plan/options/
https://www.nttdocomo.co.jp/charge/discount/

defaultを入れて,想定外のイベントが発生すると例外をスローするようにしておくのは良い習慣だけど,それでできるのは緊急事態発生を知らせるだけで,問題解決のために現場が大騒ぎするするのは,あまりかわらないと思う.



https://b.hatena.ne.jp/entry/s/speakerdeck.com/minodriven/kusokododong-hua-switchwen-jie-shuo

  • id:ignio 映画の料金がきれいな表にまとまるというのが自明ではないので、テーブルで片づけるのはお勧めしない。後で3つ4つ複雑な例外条件を提示されただけで、大幅な設計変更が発生する。
  • id: ene0kcal 表をDBテーブルデータに落とし込むとシンプルになる(switch文不要)。チケット種、日付、曜日、時間(帯)、価格が最低限必要なカラムで、価格を抽出する為にそれぞれの抽出条件を渡せば求めることができるよねー