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

ソフトウェアは捨てやすく作ろう

 ソフトウェアは捨てやすく作ろう

PHPカンファレンス新潟2025のLT登壇資料です。
https://fortee.jp/phpconniigata-2025/proposal/dcb01689-1d20-4f6d-85fe-9ccfb18c62e9

■参考リンク
ソフトウェアは捨てやすく作ろう - Genki Sano
https://qiita.com/sanogemaru/items/40557c6db33dcec99cf1

不要コード削除のススメ - @naopusyu
https://www.docswell.com/s/naopusyu/KYD7W3-unused-code-cleanup

Package by Layer vs Package by Feature - Sahibinden Technology
https://medium.com/sahibinden-technology/package-by-layer-vs-package-by-feature-7e89cde2ae3a

ソフトウェア開発って なにか?を学ぶ勉強会 - Yasunobu Kawaguchi
https://speakerdeck.com/kawaguti/software-development

コード品質はやはりビジネスに影響を与える - mtx2s’s blog
https://mtx2s.hatenablog.com/entry/2023/04/26/230917

Avatar for Genki Sano

Genki Sano

May 31, 2025
Tweet

More Decks by Genki Sano

Other Decks in Technology

Transcript

  1.  #phpcon_niigata #a 自己紹介 2 佐野 元気 Genki Sano 所属 :

    株式会社カオナビ 職種 : バックエンドエンジニア(PHPer) 役割 : エンジニアリングマネージャー 趣味 : キャンプ、コーヒー、サウナ、ライブ参戦 @sanogemaru
  2.  #phpcon_niigata #a 自己紹介 3 所属 : 株式会社カオナビ 職種 : バックエンドエンジニア(PHPer)

    役割 : エンジニアリングマネージャー 趣味 : キャンプ、コーヒー、サウナ、ライブ参戦 佐野 元気 Genki Sano @sanogemaru 今月2回目の新潟です
  3.  #phpcon_niigata #a 自己紹介 4 所属 : 株式会社カオナビ 職種 : バックエンドエンジニア(PHPer)

    役割 : エンジニアリングマネージャー 趣味 : キャンプ、コーヒー、サウナ、ライブ参戦 佐野 元気 Genki Sano @sanogemaru 今月2回目の新潟です
  4.  #phpcon_niigata #a /app ├─ Feature1 │ ├─ Http │ ├─

    Models │ └─ Services ├─ Feature2 │ ├─ Http │ ├─ Models │ └─ Services ├─ Feature3 │ ├─ Http │ ├─ Models │ └─ Services ... 33 Package by Feature • 機能に基づいたディレクトリ構成
  5.  #phpcon_niigata #a /app ├─ Feature1 │ ├─ Http │ ├─

    Models │ └─ Services ├─ Feature2 │ ├─ Http │ ├─ Models │ └─ Services ├─ Feature3 │ ├─ Http │ ├─ Models │ └─ Services ... 34 Package by Feature • 機能に基づいたディレクトリ構成 • 凝集度が高くなりやすい ◦ 機能的に関連性の高いコードが同じ ディレクトリに集まる
  6.  #phpcon_niigata #a /app ├─ Feature1 │ ├─ Http │ ├─

    Models │ └─ Services ├─ Feature2 │ ├─ Http │ ├─ Models │ └─ Services ├─ Feature3 │ ├─ Http │ ├─ Models │ └─ Services ... 35 Package by Feature • 機能に基づいたディレクトリ構成 • 凝集度が高くなりやすい ◦ 機能的に関連性の高いコードが同じ ディレクトリに集まる • 結合度が低く保ちやすい ◦ 機能間のインターフェースを明確にす れば、機能間の疎結合を促進しやすい
  7.  #phpcon_niigata #a /app ├─ Feature1 │ ├─ Http │ ├─

    Models │ └─ Services ├─ Feature2 │ ├─ Http │ ├─ Models │ └─ Services ├─ Feature3 │ ├─ Http │ ├─ Models │ └─ Services ... 36 Package by Feature • 機能に基づいたディレクトリ構成 • 凝集度が高くなりやすい ◦ 機能的に関連性の高いコードが同じ ディレクトリに集まる • 結合度が低く保ちやすい ◦ 機能間のインターフェースを明確にす れば、機能間の疎結合を促進しやすい • 中〜大規模なプロジェクトに向く
  8.  #phpcon_niigata #a 44 参考・出典 • ソフトウェアは捨てやすく作ろう - @sanogemaru • 不要コード削除のススメ

    - @naopusyu • Package by Layer vs Package by Feature - Sahibinden Technology • ソフトウェア開発って なにか?を学ぶ勉強会 - Yasunobu Kawaguchi • コード品質はやはりビジネスに影響を与える - mtx2s’s blog