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

「次に何を学べばいいか分からない」あなたへ──若手PHPエンジニアのための学習地図

 「次に何を学べばいいか分からない」あなたへ──若手PHPエンジニアのための学習地図

PHPでの開発に慣れてきた若手エンジニアが次に直面するのは、「何をどう学べばいいのか分からない」という壁です。MVCフレームワーク、リファクタリング、SOLID原則、ペアプロ、ユニットテスト、アジャイル開発といった開発に関する考え方や実践はどこから生まれ、なぜ今も大切にされているのでしょうか?

本セッションでは、ケント・ベック、マーティン・ファウラー、ボブおじさん、DHHといった人物を中心に、それぞれの技術や手法が生まれた背景、当時の課題、そしてそれらがPHPを含む現在の開発スタイルにどう影響を与えてきたのかを、歴史の視点から紹介します。

こうした知識は本来「デキる先輩」が後輩に伝えてきたものでした。しかし、周囲にそのような先輩がいない場合もあると思います。このセッションでは、現場の課題を解決するために必要なことを効率よく学ぶための「知識の地図」を提供します。

Avatar for panda_program

panda_program

July 18, 2025
Tweet

More Decks by panda_program

Other Decks in Programming

Transcript

  1. 2 © 2012-2025 BASE, Inc. 自己紹介 • BASE株式会社 • 所属:BASE

    / Product Dev / feature dev1 • 現在の仕事:Advanced Enginner(ジュニアテックリード相当) ◦ フロントエンドもバックエンドも書くフルスタックです ◦ スクラム開発やチーム開発のプロセス改善が好きです ◦ 今はフロント中心にサイトリニューアルPJを担当しています(8ヶ月目) • 活動実績 ◦ 執筆 ◦ CodeZine様で「バックエンドエンジニアのためのフロントエンド入門」を連載 ◦ 2024/12に「アジャイル開発」で一人アドベントカレンダーを完走しました ◦ 登壇実績 ◦ Developers Summit 2025、PHPerKaigi 2025、TSKaigi 2025, PHP Conference JP 2022 など ◦ twitter: @Panda_Program プログラミングをするパンダ(@Panda_Program)(京都出身)
  2. 3 © 2012-2025 BASE, Inc. 宣伝 技術書典18(6/1)で良いチームの作り方の書籍を出しました • 『成功する開発チームの作りかた 対話と信頼

    の好循環 』(全85ページ) ◦ 心理的安全性のあるチームを作る話 • 技術書典マーケットで販売中です ◦ PDF版のみ ◦ https://techbookfest.org/product/p mc1tu6jc5YzbP1pmN3mfH
  3. 4 © 2012-2025 BASE, Inc. 宣伝 YouTubeでエンジニア向けのラジオを配信してます(@dialog-radio) https://www.youtube.com/@dialog-radio/videos • ブログや登壇とはまた違った内容です

    ◦ プロダクトエンジニアって何だろう? ◦ プロダクトオーナーとエンジニアの違い とは? ◦ 勉強会のスキルアップ以外の意義とは? • 毎週月曜日、朝7時配信 ◦ ぜひご視聴 & チャンネル登録お願 いします!
  4. 5 © 2012-2025 BASE, Inc. 宣伝 BASEはリアーキテクチャ中です • BASEはモジュラーモノリスで開発している ◦

    各モジュールはクリーンアーキテクチャ ◦ 業務領域の理解をして、コードに反映さ せる取り組み(DDD)で開発している • (ただ、レガシーなモノリスもまだ全然ある)
  5. 1 2 3 © 2012-2025 BASE, Inc. 目次 通底する3つの考え方(システム思考・ パターン認識・メタ思考)

    アジャイルソフトウェア開発宣言の 署名人とDHH 書籍を選ぶ目を養う 11 11
  6. © 2012-2025 BASE, Inc. 3つの考え方(システム思考・パターン認識・メタ思考) • 「システム思考(Systems thinking) は、世界の複雑さをシステムとして全 体や関係性の観点から捉える方法であ

    る。部分に分割するのではなく、全体 として理解することで、複雑な状況に おいて効果的な行動を導くための手段 として用いられる」(wikipedia) • ex. 因果ループ図 ◦ 原因変数と結果変数の 増加(S)と減少(O)を 図示 システム思考 14 14 因果ループ図 | ISディジタル辞典-重要用語の基礎知識-第二版 https://ipsj-is.jp/isdic/1232/
  7. © 2012-2025 BASE, Inc. 3つの考え方(システム思考・パターン認識・メタ思考) • 刺激情報を記憶と照合して一致を見つける 認知プロセス = 人間や機械が共通する特徴のまとま

    りを見分ける能力・処理 • ex. 過去に経験した状況と同じだと気づけ ること ◦ 一度気づくと対処法も同じだとわかる → いわゆる「型」化 ▪ ex. 「このネストは過去のバグの 原因と同じだから(認識)、早期 リターンしておこう(対処)」 パターン認識 15 15 人はパターン認識でものを識別する https://ipsj-is.jp/isdic/1232/
  8. © 2012-2025 BASE, Inc. 3つの考え方(システム思考・パターン認識・メタ思考) • メタ思考 ◦ ex. アナロジー思考

    • 「アナロジー思考の基本にあるのは抽象 化の考え方です」「遠くのものをつなげ て新しい発想を生み出す」(左書籍よ り) • メタファーはアナロジー思考の産物 ◦ ex. オムツの取り替え→コードの不 吉な臭い(Kent Beck) ◦ ex. 細胞同士の連携→オブジェクト 指向・カプセル化(Alan Kay) メタ思考 16 16 「メタ思考トレーニング 発想力が飛躍的にアップする34問」 細谷 功 2016
  9. © 2012-2025 BASE, Inc. アジャイルソフトウェア開発宣言の署名人とDHH リファクタリング(初版1999年)の序文が探索のスタート(個人的なエピソード) 18 18 • 序文:

    by Erich Gamma • 著者欄: Martin Fowler With contributions by Kent Beck • 謝辞 ◦ 「Kent Beck がリファクタリングを 教えてくれた」 ◦ 「彼はエクストリーム・プログラミ ング(XP)の本を執筆中だ」 • Erich Gamma と Kent Beck の関係 ◦ JUnit を制作 ◦ OOPSLA97へ行く飛行機の中で
  10. © 2012-2025 BASE, Inc. Martin Fowler の友人 Kent Beck 19

    19 • Kent Beck は XP の考案者の一人 ◦ Ward CunninghamとRon Jeffriesも • Ward Cunningham は ◦ Kent Beck とリファクタリングや ◦ ペアプロを考案 ◦ OOPSLA87にパターンランゲージの 論文を提出 • Erich Gamma はデザインパターン本の著 者4名(GoF)の一人(1999年) アジャイルソフトウェア開発宣言の署名人とDHH
  11. © 2012-2025 BASE, Inc. Light Weight Process Summit 参加者のグループ •

    XP(エクストリームプログラミング)派 ◦ Kent Beck, Ward Cunningham, Ron Jeffries, James Grenning, Robert C. Martin(ボブおじさん) • スクラム派 ◦ Ken Schwaber, Jeff Sutherland, Mike Beedle • その他 ◦ Martin Fowler ◦ Andrew Hunt, Dave Thomas ◦ Jon Kern, Jim Highsmith, Alistair Cockburn など アジャイルソフトウェア開発宣言の署名人とDHH 24 24
  12. © 2012-2025 BASE, Inc. XP(エクストリーム・プログラミング)とは 25 25 • 「ソフトウェア品質を向上させ、変化する 顧客の要求への対応力を高めることを目的

    としたソフトウェア開発プロセスである」 (wikipedia) • 価値・原則・プラクティスで構成 ◦ ex. コミュニケーション・シンプリシ ティ・フィードバック・勇気・リスペ クト(5つの価値) アジャイルソフトウェア開発宣言の署名人とDHH
  13. © 2012-2025 BASE, Inc. Light Weight Process Summit 参加者のグループ(XP派) ◦

    Kent Beck ◦ XP(TDD, リファクタリング, 自動テスト, CI, ペアプロ etc.)の考案者、 SUnitの開発者(PHPUnitの源流) ◦ メタファーを多用 ex. 「コードの不吉な臭い(コードスメル)」 ◦ Ward Cunningham ◦ 「技術的負債」の名付け親、wiki の考案者(https://c2.com) ◦ Ron Jeffries ◦ “Story Points Revisited”(「ストーリーポイント再考」) https://ronjeffries.com/articles/019-01ff/story-points/Index.html ◦ Robert C. Martin(ボブおじさん) ◦ SOLID原則をまとめた人。クリーンアーキテクチャの提唱者 アジャイルソフトウェア開発宣言の署名人とDHH 26 26
  14. © 2012-2025 BASE, Inc. スクラムとは 28 28 • 「スクラムは複雑な問題への適応型ソリュー ションをチームで開発し価値を生み出すため

    の軽量級フレームワークである」 • 価値・原則・プラクティスで構成 ◦ コミットメント・集中・公開・リスペク ト・勇気 • スクラム開発の祖父は野中郁次郎 ◦ トヨタを研究したスクラムの論文が元 ◦ 知識想像理論 SECI モデルの考案者 ◦ 『失敗の本質』共著者 アジャイルソフトウェア開発宣言の署名人とDHH スクラムガイド https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Japanese.pdf
  15. © 2012-2025 BASE, Inc. Light Weight Process Summit 参加者のグループ(スクラム派) ◦

    Ken Schwaber ◦ OOPSLA95で Jeff Sutherland と共にスクラムを発表 ◦ スクラムガイドの共同執筆者 ◦ Agile Alliance, 認定スクラムマスターの創設者 ◦ Jeff Sutherland ◦ 『SCRUM—仕事が4倍速くなる“世界標準”の仕事術』 (2014年、息子JJ Sutherlandと共著) ◦ Mike Beedle ◦ アジャイルマニフェストの “Agile” という単語を提案した ▪ 他案(Adaptive、Essential、Lean、Lightweight) アジャイルソフトウェア開発宣言の署名人とDHH 29 29
  16. © 2012-2025 BASE, Inc. Light Weight Process Summit 参加者のグループ(その他) •

    Martin Fowler • Thoughtworks社(Technology Rader を出してる会社)主席技術者 • ブログ: Bliki (https://martinfowler.com/bliki)が超有名 • Microservices を広めるなど。本『PoEAA』『リファクタリング』等 • 『PoEAA』に「Eric Evansがオブジェクト設計の本を書いている」と言及 ▪ = いわゆるDDD本(”Domain-Driven Design”) • Andrew Hunt, Dave Thomas • 『達人プログラマー』の共著者 • Alistair Cockburn • 「ヘキサゴナル・アーキテクチャ」を提唱 ▪ Portland Pattern Repository(Ward Cunninghamのwiki)で議論 • Robert C. Martin のクリーンアーキテクチャへ アジャイルソフトウェア開発宣言の署名人とDHH 31 31
  17. © 2012-2025 BASE, Inc. Light Weight Process Summit 参加者のグループ(その他) •

    (もう一度)Dave Thomas ◦ DRY(Don’t Repeat Yourself)原則のフレーズを生み出した ◦ Elixir, JUnit, Rails(DHHと共著) の本を書いている アジャイルソフトウェア開発宣言の署名人とDHH 32 32
  18. © 2012-2025 BASE, Inc. DHH(デイヴィッド・ハイネマイヤー・ハンソン) ◦ Ruby on Rails の作者、レーサー、

    家がデカくて綺麗 ◦ これまでの開発手法に対する批判 ◦ “TDD is Dead.” ▪ vs. TDD(Kent Beck) ◦ Rails は MVCが密結合なフレームワーク ▪ vs. 後のClean Architectureなど当時の主流の疎結合な設計 (Robert C. Martin ←Alistair Cockburn) ◦ アジャイルソフトウェア開発宣言の署名人とDHH 33 33
  19. © 2012-2025 BASE, Inc. アジャイルソフトウェア開発宣言の署名人とDHH SOLID原則に基づいた Clean Way* vs. MVCフレームワーク

    Way(Rails Way) • 疎結合 vs. 密結合 • 高凝集 vs. 低凝集 • 単一責任 vs. 複数の責務 • 単体テスト中心 vs. 結合テスト中心(”TDD is Dead”) • アプリケーションの内外を Interface で区別 vs. コントローラーからDBも呼ぶ • 処理をサービスクラスに移譲 vs. Fat Controller, Fat Model • etc. 「右はマイナスだ」とされるのは2025年時点の感覚。もちろん現代でもMVCフレー ムワークの良さはある (* サービス層とドメイン層を分けるレイヤードアーキテクチャとClean Architectureの設計に着目し、オブジェクト 指向の一般的な原則に則った設計をRails Way と対比する形でここでは便宜的にClean Wayと呼ぶ(他では通じないの でご注意)) 35 35
  20. © 2012-2025 BASE, Inc. アジャイルソフトウェア開発宣言の署名人とDHH DDD = 「複雑なドメインに立ち向かう」業務(戦略)と設計パターン(戦術) MVCフレームワーク =

    スタートアップ向け → 現代では、成長したスタートアップでDDDが見直されている (参考)MVCとMVC2とMVCフレームワーク • MVCフレームワークのMVCは、実はMVC2と呼ばれるもの (雑な式: MVC2 = MVC + Web) • MVC は Smalltalk の研究者トリクヴェ・リーンスカウク博士の論文が初出 (1979年) • Modelとは ▪ MVCフレームワークの「Model」はActive Record パターンのORM ▪ 本来のMVCのModelは人の中にあるメンタルモデル(Mental Model) 37 37
  21. © 2012-2025 BASE, Inc. アジャイルソフトウェア開発宣言の署名人とDHH Q. なぜ MVC フレームワークから距離を置く手法が流行っているのか? A.(私見)スタートアップが成長した結果、開発スピードが遅くなったから

    — 2000年代中盤まで: エンタープライズ向けの重厚なアプリケーション設計が主流(?) 2000年代中盤: Rails 登場、軽量な Rails Way で爆速開発(スタートアップの世界) 2010年代: スタートアップで事業の成長から Fat Model + Fat Controller へ 2010年代後半: → DDD再脚光、Clean Architecture 広まる 私見 • フレームワークからアプリケーションを分離する手段 • スタートアップ特有の事情 ◦ 戦略的DDDが軽視された理由 ▪ 実装だけに注目・事業成長優先・モデリング軽視 先に整頓する? 38 38
  22. © 2012-2025 BASE, Inc. アジャイルソフトウェア開発宣言の署名人とDHH そして発展へ 39 39 • 思想の発展

    ◦ XP の CI(継続的インテグレーション) → CI/CD(継続的デプロイ) → DevOps → 開発生産性 ◦ XP の ペアプログラミング → モブプログラミング • パターンの実装 • PoEAA の Active Record パターンの ORM → Rails の Model。Laravel の Eloquent
  23. © 2012-2025 BASE, Inc. 書籍を選ぶ目を養う Q. 彼らの本を読めばいい? A. 部分的には Yes、だが分厚いものは通読しなくていいし差し引いて読むことが必要

    • 古い本なので今の時代にそぐわないことがある ▪ ex. サンプルコード、当時流行の考え方など • 会社で1冊あればいい。気になったところの考え方だけ読むとか • 現代の書籍の源流として捉えればよい ▪ エンジニアとしての考え方 ▪ DDD ▪ アジャイル開発・スクラム開発 42 42
  24. © 2012-2025 BASE, Inc. まとめ 1. 開発にまつわる様々なテーマを知る 2. 直面した課題の切り口を特定する 3.

    そのテーマの本を読んで解決策を探す 本発表は1を狙っている。 テーマ(パターン)を知らなければ課題 を適切に特定できないから 46 46
  25. © 2012-2025 BASE, Inc. まとめ 能力は外注できない(by t-wadaさん)。 AIはAugmentation Toolなので、 AIの成果は使う人次第。

    知識がないと経験からしか能力を育てら れない。 学習して能力の元になる知識を養おう 47 47 https://x.com/t_wada/status/1859756507115684348
  26. © 2012-2025 BASE, Inc. 参考資料 • スライドに掲載した各書籍, 署名人たちのWikipedia • 「Clean

    Agile」(ボブおじさん) • MVCとはなにか ◦ https://note.com/tenjuu99/n/n0232ccd1089d • 「1. Software Development in 2003(技術顧問の和田卓人さんと、DDD、データ ソースのアーキテクチャに関するパターンなどについて話しました)」texta.fm (https://open.spotify.com/episode/1Ka5Fnoe89SyRLPea5twPA ) • この発表が面白かったら、ぜひ読んでみてください → ◦ 「パターン、Wiki、XP - 時を超えた想像の原則」 48 48