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

「良いコード」を探し求めて

MonotaRO
December 12, 2024
110

 「良いコード」を探し求めて

2024/12/11開催
~モノタロウ式~ドメインモデリングとリアーキテクチャ Vol.2

MonotaRO

December 12, 2024
Tweet

Transcript

  1. ソフトウェアの品質特性から考えてみる 15 • システム・ソフトウェア製品品質モデル(JIS X 25010) ◦ 機能適合性 ◦ 性能効率性

    ◦ 互換性 ◦ 使用性 ◦ 信頼性 ◦ セキュリティ ◦ 保守性 ◦ 移植性 📖参照: IPA『つながる世界のソフトウェア品質ガイド』
  2. 線形探索と二分探索を例に 23 def 線形探索(arr: list[int], target: int) -> int: for

    i in range(len(arr)): if arr[i] == target: return i return -1 def 二分探索(arr: list[int], target: int) -> int: left, right = 0, len(arr) - 1 while left <= right: mid = (left + right) // 2 if arr[mid] == target: return mid if arr[mid] < target: left = mid + 1 else: right = mid - 1 return -1 🎨 Colors: Catppuccin Latte from https://github.com/catppuccin/catppuccin
  3. • 読み合わせ式 ◦ 社内研修資料の振り返り ▪ テストとリファクタリングのワークショップ[1] ◦ 解説記事など ▪ SOLID原則完全に理解した!になるための本

    ▪ 7つの設計原則とオブジェクト指向プログラミン グ 30 勉強会を開いた 👉 [1] ワークショップの様子はこちらの記事で紹介されています リファクタリングを文化にする 〜組織が技術的負債と向き合うワークショップ〜 - MonotaRO Tech Blog
  4. • 読んだだけでは「さじ加減」がわからない ◦ 単一責任の原則 → 責任の単位は? ◦ DRY → 重複の判定基準は?行数?[1]

    • 感覚を身につけるには実践が必要 ◦ リファクタリング! 32 原則から実践へ ⛳ 🏌 💪? 📖[1] Read more: Google Testing Blog: Don't DRY Your Code Prematurely
  5. • 違和感を感じたら「リファクタリングチケット」に追記 • 例えば ◦ テストが長い ▪ 💡テスト対象が責任を持ちすぎ?密結合になってい る? ◦

    機能追加するのに変更しないといけないレイヤーが多い ▪ 💡レイヤーの分け方が不適切?抽象化しすぎ? 33 リファクタリングの対象を追跡する