Slide 1

Slide 1 text

@PHPカンファレンス関西2025(2025/7/19) プログラミングをするパンダ(@Panda_Program) 「次に何を学べばいいか分からない」あなたへ ── 若手PHPエンジニアのための学習地図 1

Slide 2

Slide 2 text

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)(京都出身)

Slide 3

Slide 3 text

3 © 2012-2025 BASE, Inc. 宣伝 技術書典18(6/1)で良いチームの作り方の書籍を出しました ● 『成功する開発チームの作りかた 対話と信頼 の好循環 』(全85ページ) ○ 心理的安全性のあるチームを作る話 ● 技術書典マーケットで販売中です ○ PDF版のみ ○ https://techbookfest.org/product/p mc1tu6jc5YzbP1pmN3mfH

Slide 4

Slide 4 text

4 © 2012-2025 BASE, Inc. 宣伝 YouTubeでエンジニア向けのラジオを配信してます(@dialog-radio) https://www.youtube.com/@dialog-radio/videos ● ブログや登壇とはまた違った内容です ○ プロダクトエンジニアって何だろう? ○ プロダクトオーナーとエンジニアの違い とは? ○ 勉強会のスキルアップ以外の意義とは? ● 毎週月曜日、朝7時配信 ○ ぜひご視聴 & チャンネル登録お願 いします!

Slide 5

Slide 5 text

5 © 2012-2025 BASE, Inc. 宣伝 BASEはリアーキテクチャ中です ● BASEはモジュラーモノリスで開発している ○ 各モジュールはクリーンアーキテクチャ ○ 業務領域の理解をして、コードに反映さ せる取り組み(DDD)で開発している ● (ただ、レガシーなモノリスもまだ全然ある)

Slide 6

Slide 6 text

本発表の前提

Slide 7

Slide 7 text

7 © 2012-2025 BASE, Inc. 本発表の前提 一般的な学習地図 Developer Roadmaps https://roadmap.sh/

Slide 8

Slide 8 text

8 © 2012-2025 BASE, Inc. 本発表の前提 一般的な学習教材 学部レベルのCSの教科書 動画、Web のコース etc. (左はほんの一例)

Slide 9

Slide 9 text

© 2012-2025 BASE, Inc. 本発表の前提 チーム開発の現場では、 アジャイル等 開発プラクティスの知識も 求められる 99

Slide 10

Slide 10 text

© 2012-2025 BASE, Inc. 本発表の前提 アジャイルソフトウェア開発宣言と その署名人たちを手掛かりに 現代的な開発の源流をたどることで 現場で働く人が 次に学ぶことを選べるようにする 10 10

Slide 11

Slide 11 text

1 2 3 © 2012-2025 BASE, Inc. 目次 通底する3つの考え方(システム思考・ パターン認識・メタ思考) アジャイルソフトウェア開発宣言の 署名人とDHH 書籍を選ぶ目を養う 11 11

Slide 12

Slide 12 text

© 2012-2025 BASE, Inc. 本発表の前提 (注)本スライドの中には、 当方が未読の本も出てきています 12 12

Slide 13

Slide 13 text

1. 通底する3つの考え方 (システム思考・パターン認識・メタ思考)

Slide 14

Slide 14 text

© 2012-2025 BASE, Inc. 3つの考え方(システム思考・パターン認識・メタ思考) ● 「システム思考(Systems thinking) は、世界の複雑さをシステムとして全 体や関係性の観点から捉える方法であ る。部分に分割するのではなく、全体 として理解することで、複雑な状況に おいて効果的な行動を導くための手段 として用いられる」(wikipedia) ● ex. 因果ループ図 ○ 原因変数と結果変数の 増加(S)と減少(O)を 図示 システム思考 14 14 因果ループ図 | ISディジタル辞典-重要用語の基礎知識-第二版 https://ipsj-is.jp/isdic/1232/

Slide 15

Slide 15 text

© 2012-2025 BASE, Inc. 3つの考え方(システム思考・パターン認識・メタ思考) ● 刺激情報を記憶と照合して一致を見つける 認知プロセス = 人間や機械が共通する特徴のまとま りを見分ける能力・処理 ● ex. 過去に経験した状況と同じだと気づけ ること ○ 一度気づくと対処法も同じだとわかる → いわゆる「型」化 ■ ex. 「このネストは過去のバグの 原因と同じだから(認識)、早期 リターンしておこう(対処)」 パターン認識 15 15 人はパターン認識でものを識別する https://ipsj-is.jp/isdic/1232/

Slide 16

Slide 16 text

© 2012-2025 BASE, Inc. 3つの考え方(システム思考・パターン認識・メタ思考) ● メタ思考 ○ ex. アナロジー思考 ● 「アナロジー思考の基本にあるのは抽象 化の考え方です」「遠くのものをつなげ て新しい発想を生み出す」(左書籍よ り) ● メタファーはアナロジー思考の産物 ○ ex. オムツの取り替え→コードの不 吉な臭い(Kent Beck) ○ ex. 細胞同士の連携→オブジェクト 指向・カプセル化(Alan Kay) メタ思考 16 16 「メタ思考トレーニング 発想力が飛躍的にアップする34問」 細谷 功 2016

Slide 17

Slide 17 text

2. アジャイルソフトウェア開発宣言の 署名人とDHH

Slide 18

Slide 18 text

© 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へ行く飛行機の中で

Slide 19

Slide 19 text

© 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

Slide 20

Slide 20 text

© 2012-2025 BASE, Inc. アジャイルソフトウェア開発宣言の署名人とDHH 20 20

Slide 21

Slide 21 text

© 2012-2025 BASE, Inc. アジャイルソフトウェア開発宣言の署名人とDHH あるとき アジャイルソフトウェア 開発宣言を見た 21 21

Slide 22

Slide 22 text

© 2012-2025 BASE, Inc. アジャイルソフトウェア開発宣言の署名人とDHH 22 22 アジャイルソフトウェア開発宣言 https://agilemanifesto.org/iso/ja/manifesto.html

Slide 23

Slide 23 text

© 2012-2025 BASE, Inc. アジャイルソフトウェア開発宣言の署名人とDHH 23 23 アジャイルソフトウェア開発宣言 https://agilemanifesto.org/iso/ja/manifesto.html

Slide 24

Slide 24 text

© 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

Slide 25

Slide 25 text

© 2012-2025 BASE, Inc. XP(エクストリーム・プログラミング)とは 25 25 ● 「ソフトウェア品質を向上させ、変化する 顧客の要求への対応力を高めることを目的 としたソフトウェア開発プロセスである」 (wikipedia) ● 価値・原則・プラクティスで構成 ○ ex. コミュニケーション・シンプリシ ティ・フィードバック・勇気・リスペ クト(5つの価値) アジャイルソフトウェア開発宣言の署名人とDHH

Slide 26

Slide 26 text

© 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

Slide 27

Slide 27 text

© 2012-2025 BASE, Inc. 27 27 アジャイルソフトウェア開発宣言の署名人とDHH エクストリーム・プログラミング(XP)を紐解く:価値・原則・プラクティスへのガイド https://panda-program.com/posts/the-true-agile-team-advent-calendar-2024-10 エクストリーム・プログラミング https://ja.wikipedia.org/wiki/エクストリーム・プログラミング

Slide 28

Slide 28 text

© 2012-2025 BASE, Inc. スクラムとは 28 28 ● 「スクラムは複雑な問題への適応型ソリュー ションをチームで開発し価値を生み出すため の軽量級フレームワークであ る"(wikipedia) ● 価値・原則・プラクティスで構成 ○ コミットメント・集中・公開・リスペ クト・勇気 ○ 『エッセンシャルスクラム』に記載 ● スクラム開発の祖父は野中郁次郎 ○ トヨタを研究したスクラムの論文が元 ○ 知識想像理論 SECI モデルの考案者 ○ 『失敗の本質』共著者 アジャイルソフトウェア開発宣言の署名人とDHH スクラムガイド https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Japanese.pdf

Slide 29

Slide 29 text

© 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

Slide 30

Slide 30 text

© 2012-2025 BASE, Inc. 30 30 アジャイルソフトウェア開発宣言の署名人とDHH スクラム開発を紐解く:価値・原則・プラクティスへのガイド https://panda-program.com/posts/the-true-agile-team-advent-calendar-2024-3 スクラムはこれだけで はない (余白が足りないので とりあえずこれだけ載 せてます)

Slide 31

Slide 31 text

© 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

Slide 32

Slide 32 text

© 2012-2025 BASE, Inc. 32 32 アジャイルソフトウェア開発宣言の署名人とDHH https://x.com/kdmsnr/status/1946388713329639599 今日スクフェス大阪で Martin Fowler の Bliki の話してるらしい(笑)

Slide 33

Slide 33 text

© 2012-2025 BASE, Inc. Light Weight Process Summit 参加者のグループ(その他) ● (もう一度)Dave Thomas ○ DRY(Don’t Repeat Yourself)原則のフレーズを生み出した ○ Elixir, JUnit, Rails(DHHと共著) の本を書いている アジャイルソフトウェア開発宣言の署名人とDHH 33 33

Slide 34

Slide 34 text

© 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 34 34

Slide 35

Slide 35 text

© 2012-2025 BASE, Inc. アジャイルソフトウェア開発宣言の署名人とDHH この対立がPHP界隈の頻出テーマの源流 “Laravel Way”に乗るか、 フレームワークから 疎結合なアプリケーションを構築するか 35 35

Slide 36

Slide 36 text

© 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と呼ぶ(他では通じないの でご注意)) 36 36

Slide 37

Slide 37 text

© 2012-2025 BASE, Inc. アジャイルソフトウェア開発宣言の署名人とDHH 37 37

Slide 38

Slide 38 text

© 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) 38 38

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

© 2012-2025 BASE, Inc. アジャイルソフトウェア開発宣言の署名人とDHH そして発展へ 40 40 ● 思想の発展 ○ XP の CI(継続的インテグレーション) → CI/CD(継続的デプロイ) → DevOps → 開発生産性 ○ XP の ペアプログラミング → モブプログラミング ● パターンの実装 ● PoEAA の Active Record パターンの ORM → Rails の Model。Laravel の Eloquent

Slide 41

Slide 41 text

3. 書籍を選ぶ目を養う

Slide 42

Slide 42 text

© 2012-2025 BASE, Inc. 書籍を選ぶ目を養う 42 42

Slide 43

Slide 43 text

© 2012-2025 BASE, Inc. 書籍を選ぶ目を養う Q. どの本を読むべき? A. 基本的に新しい本を読む。ただ、大元の本は「濃い」。 拾い読みでもいいので目を通すのがおすすめ Q. 彼らの本を読めばいい? A. 分厚いものは通読しなくていい。当時の状況を考慮して差し引いて読むことが必要 ● 古い本なので今の時代にそぐわないことがある ■ ex. サンプルコード、当時流行の考え方など ● 会社に1冊あればいいのではないか 43 43

Slide 44

Slide 44 text

© 2012-2025 BASE, Inc. 書籍を選ぶ目を養う 44 44 同じテーマで現代に必要な本はたくさん出てくる。 どの時代の本かの見極めが大事 他にもたくさん

Slide 45

Slide 45 text

© 2012-2025 BASE, Inc. 書籍を選ぶ目を養う 45 45 同じテーマで現代に必要な本はたくさん出てくる。 どの時代の本かの見極めが大事 他にもたくさん

Slide 46

Slide 46 text

© 2012-2025 BASE, Inc. 書籍を選ぶ目を養う 46 46 同じテーマで現代に必要な本はたくさん出てくる。 どの時代の本かの見極めが大事 他にもたくさん

Slide 47

Slide 47 text

© 2012-2025 BASE, Inc. 書籍を選ぶ目を養う 47 47 同じテーマで現代に必要な本はたくさん出てくる。 どの時代の本かの見極めが大事 他にもたくさん 他にもたくさん

Slide 48

Slide 48 text

© 2012-2025 BASE, Inc. まとめ 「何がわからないかがわからない(unkown unknow)」 という方はこの本 48 48

Slide 49

Slide 49 text

© 2012-2025 BASE, Inc. まとめ 1. 開発にまつわる様々なテーマを知る 2. 直面した課題の切り口を特定する 3. そのテーマの本を読んで解決策を探す 本発表は1を狙っている。 テーマ(パターン)を知らなければ課題 を適切に特定できないから 49 49

Slide 50

Slide 50 text

© 2012-2025 BASE, Inc. まとめ 能力は外注できない(by t-wadaさん)。 AIはAugmentation Toolなので、 AIの成果は使う人次第。 知識がないと経験からしか能力を育てら れない。 学習して能力の元になる知識を養おう 50 50 https://x.com/t_wada/status/1859756507115684348

Slide 51

Slide 51 text

© 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 - 時を超えた想像の原則」 51 51

Slide 52

Slide 52 text

付録

Slide 53

Slide 53 text

© 2012-2025 BASE, Inc. オブジェクトとメソッドのコード例 3つの考え方 ・システム思考 ・パターン認識 ・メタ思考 (Kent Beck の思考法) 53 53

Slide 54

Slide 54 text

© 2012-2025 BASE, Inc. オブジェクトとメソッドのコード例 Kent Beckは Smalltalker。 これらの考え方を身につけるためには、 Smalltalkの開発を体験してみるのがいい のかも?(笑) → Pharo へ 54 54