Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
あの時、Java から PHP へ / Converting from Java to PHP
Search
宮城築
September 16, 2023
Programming
620
4
Share
あの時、Java から PHP へ / Converting from Java to PHP
宮城築
September 16, 2023
More Decks by 宮城築
See All by 宮城築
プルリクエストがマージできない / Cannot merge pull requests
kizuku_miyagi
3
560
20240510_DDDとぼんやり向き合ってみる / Let's face DDD in a dim way.
kizuku_miyagi
1
52
ここが変だよPHP(褒め言葉) 入門編 / The good thing about PHP : An introduction
kizuku_miyagi
3
830
強いチーム作りに向けて 個人ができること / What individuals can do to build a strong team
kizuku_miyagi
2
640
Other Decks in Programming
See All in Programming
TAKTでAI駆動開発の品質を設計する
j5ik2o
6
830
Claspは野良GASの夢をみるか
takter00
0
160
Migrations : C'est une question d'hygiène !
vinceamstoutz
0
3.2k
inferと仲良くなる10分間
ryokatsuse
1
360
AIエージェントの隔離技術の徹底比較
kawayu
0
460
New "Type" system on PicoRuby
pocke
1
450
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
1.6k
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
2.2k
Moments When Things Go Wrong
aurimas
3
140
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
170
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
340
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
240
Featured
See All Featured
Fireside Chat
paigeccino
42
3.9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
840
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
200
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
130
Google's AI Overviews - The New Search
badams
0
1k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
Code Review Best Practice
trishagee
74
20k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
From π to Pie charts
rasagy
0
200
Transcript
あの時、Java から PHP へ 新しい世界へのトレッキング BABY JOB ミヤギ
自己紹介 宮城 築 BABY JOB 株式会社 2023 年 6 月入社 Java
の SE として 8 年の時を経て 新たに PHP にチャレンジ中
トレッキングを始めたわけ
2015 年に Java 6 にトレッキング 約 8 年間、レガシーな現場で勤しむ 2023 年に
PHP 8 にトレッキング 現時点で 3 ヶ月経過、モダンな現場でチャレンジ中 これまでの軌跡
• 学習コストが高い ◦ オブジェクト指向プログラミングが核 ◦ 文法はやや複雑 • 定番の手法が存在する ◦ 古くから大規模プロジェクトで使用する方法が
確立されている 当時の山(Java 6) • 環境構築が大変 ◦ IDEやビルドツール、ライブラリが必要
• 学習コストが高い ◦ オブジェクト指向プログラミングが核 ◦ 文法はやや複雑 • 定番の手法が存在する ◦ 古くから大規模プロジェクトで使用する方法が
確立されている 急勾配 当時の山(Java 6) 整備された登山道 装備を揃える必要がある • 環境構築が大変 ◦ IDEやビルドツール、ライブラリが必要
当時の山(Java 6)
・・・頑張って登り切った!という印象 当時の山(Java 6)
• 学習コストが低い ◦ Web 開発を主目的とした言語 ◦ 文法は比較的シンプル • 様々な手法が存在する ◦
起源や利用シーンが多岐にわたり目的に対す るアプローチやツールが多数存在する 挑戦中の山(PHP 8) • 環境構築が簡単 ◦ シンプルな環境でも動作する
• 学習コストが低い ◦ Web 開発を主目的とした言語 ◦ 文法は比較的シンプル • 様々な手法が存在する ◦
起源や利用シーンが多岐にわたり目的に対す るアプローチやツールが多数存在する 傾斜が緩やか 挑戦中の山(PHP 8) 多岐にわたる登山道 軽装でOK • 環境構築が簡単 ◦ シンプルな環境でも動作する
挑戦中の山(PHP 8)
挑戦中の山(PHP 8) ・・・何度も登って楽しむ!という印象
トレッキングのきっかけ きっかけは転職 レガシーな環境で Java エンジニアとしての 8 年間、 新しい領域に挑戦したかった よし、あの山(PHP)に挑戦しよう!
サバイバルギア
揃えた装備 ・ChatGPT ・書籍 ・カンファレンスの過去動画 ・GitHub ・有識者 ・・・etc
揃えた装備 ・ChatGPT ・書籍 ・カンファレンスの過去動画 ・GitHub ・有識者 ・・・etc
オンザロードのハイライト① 〜 環境構築が楽すぎて 〜
JDK & IDE & Webサーバーのインストール ↓ ソースのチェックアウト & ビルドパスの設定 ↓
DB構築 & SQL実行 ↓ プロパティの修正 & ant実行 手順のイメージ(極端にレガシーな環境でした) これまでの環境構築
JDK & IDE & Webサーバーのインストール ↓ ソースのチェックアウト & ビルドパスの設定 ↓
DB構築 & SQL実行 ↓ プロパティの修正 & ant実行 手順のイメージ(極端にレガシーな環境でした) これまでの環境構築 Docker なし Git なし
JDK & IDE & Webサーバーのインストール ↓ ソースのチェックアウト & ビルドパスの設定 ↓
DB構築 & SQL実行 ↓ プロパティの修正 & ant実行 手順のイメージ(極端にレガシーな環境でした) これまでの環境構築 Docker なし Git なし 手作業が多い 手順書やSQLの管理が大変
手順のイメージ PHP & Composer & 各種ツールのインストール ↓ Docker & IDEのインストール
↓ ソースのチェックアウト ↓ artisan実行 現在の環境構築
手順のイメージ PHP & Composer & 各種ツールのインストール ↓ Docker & IDEのインストール
↓ ソースのチェックアウト ↓ artisan実行 現在の環境構築 手順のほとんどがコマンド作業 データ作成まで自動化されている
オンザロードのハイライト② 〜 意識の改革 利用者から技術者へ 〜
function test(...$strings): void { foreach ($strings as $value) { echo
strlen($value); } } 説明書を読んでもわからない 可変長引数をループで処理しようとしたが phpstan の警告が解消できない (例)
Parameter #1 $name of static method Test::test() expects string, array<string,
string> given. 説明書を読んでもわからない phpstanの実行結果は stringを期待していたが、stringの配列が渡されたというエラー ・・・ん?
説明書を読んでもわからない
説明書を読んでもわからない ・・・現場で問題になってないのだろうか?
そして現場へ 引用:https://github.com/phpstan/phpstan/issues/8274
そして現場へ 引用:https://github.com/phpstan/phpstan/issues/8274 同様の事象報告に対 して、公式からバグ認 定されていた
そして現場へ 引用:https://github.com/phpstan/phpstan/issues/8274 バグ認定されていた ライブラリだって開発中 情報提供がバグ改善に繋がる
まとめ
• 時代に取り残されていたことを改めて痛感 • フレームワークやライブラリだって同じように開発している 今の自分の位置や学び
• 登り始めて3ヶ月、まだまだ道半ば • やっぱりトレッキングは楽しい その上で
ご清聴ありがとうございました!
おまけ
「レガシーエンジニアが モダンな現場に異世界転生してみた」 実はこんなプロポーザルを作ってました 数年に渡り、汎用機の世界を支配し続けてきたレガシーシステムエンジニアの人生は、 一つの突発的な出来事によって一変する。 突如として意識が遠のく中、彼が次に目覚めた場所は、未知の世界だった。そこは AI やクラウドコンピューティング、ブロックチェーンなどの先端技術が飛び交う現代 IT 業
界。まるで異世界に転生したかのようなその世界で、タカシは自身の持つ古の知識を武 器に、新しいチャレンジを迎える。 (Java 6 エンジニアが PHP 8 の現場に入門して感じたことをお伝えします)
プロダクト紹介 保護者がスマホを使って片手で簡単に 「保活」を行えるプラットフォーム。 保活がスマートに! • 月間ユーザー数:約45万人(2023年7月時点) • 地図上で簡単に周辺の施設が検索できる! • 保育園の知りたい情報を取得できる!
• Web上で見学予約、問い合わせができる! • コラムやSNSを通じて保活に役立つ情報も発信!