学園祭Web開発の現場とPHPのこれまでとこれから ── 技術選定と教育から語る / PHP Conference Japan 2023
by
Arthur
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
学園祭Web開発の現場とPHPの これまでとこれから ── 技術選定と教育から語る 2023-10-08 (Sun.) PHP Conference Japan 2023 1 Arthur
Slide 2
Slide 2 text
自己紹介 Arthur 株式会社はてなアプリケーションエンジニア 2022年新卒入社(2年目) id:arthur-1 @Arthur1__ https://blog.arthur1.dev/ 2
Slide 3
Slide 3 text
3 お仕事の様子はこちらをチェック👇 仮説検証サイクルでユーザーの声を高速に叶える「キカク組」の取り組み / Mackerel Drink Up #11
Slide 4
Slide 4 text
学生時代の話 東京工業大学で学園祭実行委員をしていた Webサイト制作&情シスを担う部署に所属 ▶ 規模感 来場者: 4万人 サイト年間 PV: 50万 4
Slide 5
Slide 5 text
PHP 書いてました 自分は PHP で動的な部分を作っていた: • FuelPHP で MVP(Model-View-Presenter) • 認証基盤 • 参加団体の各種申請フォーム • グランプリ企画投票システム など 5
Slide 6
Slide 6 text
おしながき 学園祭Web開発の現場トークを軸に、こんな話をします: • 講習会と砂場遊びで支える組織 • 自分たちの責務をどう絞り、どう委嘱するか 6
Slide 7
Slide 7 text
講習会と砂場遊びで 支える組織 7
Slide 8
Slide 8 text
8 時は遡り……🕰 2015-2017
Slide 9
Slide 9 text
チームの特徴 ⚫学園祭実行委員会全体 • 3年で強制引退 3年経ったら誰もいなくなってる職場を想像してみてください ⚫Web担当の部署 • 各学年 4〜8人ぐらい • 情報系の学生が多いが、Web開発は初めての人がほとんど 9
Slide 10
Slide 10 text
プロダクトの特徴 1年間で外向けに出すプロダクトは2つ どちらも毎年1から作り直していた ⚫新歓サイト 新入生向けにサークルの雰囲気を伝え、新歓イベントを告知 ⚫学園祭サイト 毎年決まったテーマに合わせたデザイン(賞味期限が短い) Webパンフレット・参加団体向けの電子申請システムもある 10
Slide 11
Slide 11 text
3年間の流れ 11 1年目 2年目 3年目 とにかく学ぶ ● 講習会 ● 遊びサイト作り 実働部隊 ● 新歓サイト制作 ● 学園祭サイト制作 マネジメント・教育 学年ごと役割がはっきりしている
Slide 12
Slide 12 text
3年間の流れ 12 1年目 2年目 3年目 とにかく学ぶ ● 講習会 ● 遊びサイト作り 実働部隊 ● 新歓サイト制作 ● 学園祭サイト制作 マネジメント・教育
Slide 13
Slide 13 text
講習会 3年生が1年生にWeb開発のいろはを教えていた 13 ← semantic coding 啓蒙のために 意味からタグ名を 覚えさせる
Slide 14
Slide 14 text
講習会のカリキュラム 14 HTML/CSS JavaScript サーバサイド プログラミング PHP・ PHP フレームワーク デザイン フロントエンド 発展 共通 専修
Slide 15
Slide 15 text
3年間の流れ 15 1年目 2年目 3年目 とにかく学ぶ ● 講習会 ● 遊びサイト作り 実働部隊 ● 新歓サイト制作 ● 学園祭サイト制作 マネジメント・教育
Slide 16
Slide 16 text
遊びサイト作り 夏/冬の合宿用の内部向けWebサイトを作る: • 委員の紹介ページ • 旅行のしおり • おもしろコンテンツ 最低限の要件が満たされていれば何をどう作るかは自由 イースターエッグ仕込むのが楽しくて徹夜でコーディング 16
Slide 17
Slide 17 text
学んだことを実践する場 17 HTML/CSS JavaScript サーバサイド プログラミング PHP・ PHP フレームワーク デザイン フロントエンド 発展 共通 夏合宿 サイト制作 冬合宿 サイト制作
Slide 18
Slide 18 text
砂場遊びの意義 • 面白いことは単純にモチベーションが上がる • 手を動かすと座学で学んだことが定着する • Project Based Learning • ものづくりができる人間になれる(動くものを作り切 る力) 18
Slide 19
Slide 19 text
はてなにも砂場があった 社会人になっても砂場は用意されていた(よかった!) • 社内向けのWebサービスを有志で開発・保守する文化 • 開発合宿 • クラウドサービスを気軽に検証利用できる環境 19
Slide 20
Slide 20 text
開発の様子 20
Slide 21
Slide 21 text
3年間の流れ 21 1年目 2年目 3年目 とにかく学ぶ ● 講習会 ● 遊びサイト作り 実働部隊 ● 新歓サイト制作 ● 学園祭サイト制作 マネジメント・教育
Slide 22
Slide 22 text
当時のアーキテクチャ 以下が全部入りのモノレポ • お客さん向けの企画情報サイト(Webパンフレット) • 参加団体の電子申請システム FuelPHP で作ったものがレンタルサーバにぽんと載っていた 22
Slide 23
Slide 23 text
Server Side Templating Server Side Templating サーバで HTML を組み立てて返す PHP の十八番 23 MySQL PHP header footer レンタルサーバ Apache 企画の 情報
Slide 24
Slide 24 text
大枠は GW に集中開発 学園祭サイトはゴールデンウィークに部室に集まって開発 なんと当時は git という文明が取り入れられてなかった レンタルサーバ上のファイルを読み書き コンフリクト防止のための編集権(券) 24
Slide 25
Slide 25 text
技術選定: 自分たちの責務をどう絞り、 どう委嘱するか 25
Slide 26
Slide 26 text
学園祭サイトに求める非機能要件 可用性 めちゃくちゃ高くなくて良い、紙パンフレットもある 学園祭程度の規模なら、普通にやっていれば大体期待に適う ※ ただし、バナー広告の契約がある場合注意 コスト 学生団体に扱える金の規模ってものがある 制御可能であって欲しい 26
Slide 27
Slide 27 text
学園祭サイトに求める非機能要件 セキュリティ 個人情報漏洩とかインシデント起こしたら普通に困る 認証・決済周りは手作りをなくす、SaaS に任せるのを検討 運用・保守 1年使えればとりあえず大丈夫。作り捨て前提 日々の運用に労力はあまりかけられない 27
Slide 28
Slide 28 text
28 現代の話……🕰 2023-
Slide 29
Slide 29 text
今の自分が設計するなら…… (1) ただの Web パンフレットだったら 静的サイトとして作りたい サーバを持たない方が管理・セキュリティ面で楽 SST で作っていたところ → フロントエンドフレームワークの Static Site Generation に任せる バックエンドのデータ → JSON ポン置きでもなんとかなりそう 29
Slide 30
Slide 30 text
今の自分が設計するなら…… (2) 参加団体が使う電子申請システム部分 → Web パンフレット部分と分離して作る ビジネスフローが変わらなければ毎年作り直さなくても良い この動的なWebアプリケーション、何で作る? Go, Rust, Scala, PHP, Python …… 30
Slide 31
Slide 31 text
31 Q. PHP は使われなく なる?
Slide 32
Slide 32 text
32 A. 今のところ まだまだ戦えると思う
Slide 33
Slide 33 text
レンタルサーバー最強説 プラットフォームの事情も大きい いわゆる「レンタルサーバー」でPHPが簡単に動く • 定額だしコスパ良し クラウド破産しない • できることの範囲が狭い分、こちらの責任範囲も狭い Webセキュリティ考えるだけでも精一杯 33
Slide 34
Slide 34 text
一般論 リソースは有限なので、チームとプロダクトの性質を見極め、ど こまで自分たちで頑張るか考えよう 筋を通し続けると、尤もらしいアーキテクチャが見えてくる 仕事で ADR(Architecture Decision Record)書くときもこう いう思考が役に立ってる 34
Slide 35
Slide 35 text
Wrap Up 35
Slide 36
Slide 36 text
学園祭Web開発の特徴 • Webサイトとしての賞味期限が短い • 人も短いスパンでどんどん入れ替わっていく • 非機能要件ではコストとセキュリティが気になりがち 36
Slide 37
Slide 37 text
教育 • 体系的な学びと砂場遊びを組み合わせ、ものづくりをで きる人を育てる 37
Slide 38
Slide 38 text
技術選定 • 学生目線では多少可用性を犠牲にしてもコストが予測可 能であることが大事 • プラットフォームの事情から PHP は今でも優位 • リソースは有限なので、チームとプロダクトの性質を見 極め、どこまで自分たちで頑張るか考える 38
Slide 39
Slide 39 text
39 ご清聴いただき ありがとうございました Arthur