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

PHP でもアーキテクチャテストしたい! / #phperkaigi / PHPerKaig...

PHP でもアーキテクチャテストしたい! / #phperkaigi / PHPerKaigi 2021

Yu Kawanami

March 27, 2021
Tweet

More Decks by Yu Kawanami

Other Decks in Technology

Transcript

  1. 自己紹介 • かわなみゆう • @kawanamiyuu • 株式会社ラクス / Lead Engineer

    • 人事・労務業務を楽にする SaaS の開発 • Spring Boot / Doma / Vue.js / Puppeteer / GitLab CI • Java のほうから来ました。PHP がすきです。 2
  2. アーキテクチャテスト・フレームワーク • sensiolabs-de/deptrac(PHP) • carlosas/phpat(PHP) • nazonohito51/dependency-analyzer(PHP) • TNG/ArchUnit(Java) •

    TNG/ArchUnitNET(C#) • MaibornWolff/ts-arch(TypeScript) 45 この 2 つのテストフレーム ワークを紹介します。
  3. deptrac の特徴 • 名前空間やディレクトリを layer と捉えて、layer に含まれるの クラスの依存関係をテストできる • YAML

    ファイルに layer の依存関係の rule を定義する • 依存を「許可する」意味のテストがしやすい 49
  4. 今日話したこと 1. アーキテクチャ設計という営みの課題 ◦ アーキテクチャ設計品質の担保の難しさ 2. アーキテクチャの正体とその問題点 ◦ アーキテクチャは「依存関係のガイドライン」 3.

    アーキテクチャテストの紹介 4. アーキテクチャテストのその先 ◦ アーキテクチャテストが、アーキテクチャを育て、発展させる 61
  5. 今日話したこと 1. アーキテクチャ設計という営みの課題 ◦ アーキテクチャ設計品質の担保の難しさ 2. アーキテクチャの正体とその問題点 ◦ アーキテクチャは「依存関係のガイドライン」 3.

    アーキテクチャテストの紹介 4. アーキテクチャテストのその先 ◦ アーキテクチャテストが、アーキテクチャを育て、発展させる 62
  6. (Appendix)アーキテクチャテストに関する過去の登壇資料など • ArchUnit で Java アプリケーションのアーキテクチャを CI する / JJUG

    CCC 2019 Spring ◦ https://speakerdeck.com/kawanamiyuu/jjug-ccc-2019-spring • ドメイン駆動設計を支えるアーキテクチャテスト / Object-Oriented Conference 2020 ◦ https://speakerdeck.com/kawanamiyuu/object-oriented-conference-2020 • マイクロサービスアーキテクチャをあきらめないための、モノリスで始めるアーキテクチャテスト / JJUG CCC 2020 Fall ◦ https://speakerdeck.com/kawanamiyuu/jjug-ccc-2020-fall • アーキテクチャテスト Advent Calendar 2020 ◦ https://qiita.com/advent-calendar/2020/architecture-test 64