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

あの時、Java から PHP へ / Converting from Java to PHP

宮城築
September 16, 2023

あの時、Java から PHP へ / Converting from Java to PHP

宮城築

September 16, 2023
Tweet

More Decks by 宮城築

Other Decks in Programming

Transcript

  1. 自己紹介 宮城 築 BABY JOB 株式会社 2023 年 6 月入社 Java

    の SE として 8 年の時を経て 新たに PHP にチャレンジ中
  2. 2015 年に Java 6 にトレッキング  約 8 年間、レガシーな現場で勤しむ 2023 年に

    PHP 8 にトレッキング  現時点で 3 ヶ月経過、モダンな現場でチャレンジ中 これまでの軌跡
  3. • 学習コストが高い ◦ オブジェクト指向プログラミングが核 ◦ 文法はやや複雑 • 定番の手法が存在する ◦ 古くから大規模プロジェクトで使用する方法が

    確立されている 急勾配 当時の山(Java 6) 整備された登山道 装備を揃える必要がある • 環境構築が大変 ◦ IDEやビルドツール、ライブラリが必要
  4. • 学習コストが低い ◦ Web 開発を主目的とした言語 ◦ 文法は比較的シンプル • 様々な手法が存在する ◦

    起源や利用シーンが多岐にわたり目的に対す るアプローチやツールが多数存在する 挑戦中の山(PHP 8) • 環境構築が簡単 ◦ シンプルな環境でも動作する
  5. • 学習コストが低い ◦ Web 開発を主目的とした言語 ◦ 文法は比較的シンプル • 様々な手法が存在する ◦

    起源や利用シーンが多岐にわたり目的に対す るアプローチやツールが多数存在する 傾斜が緩やか 挑戦中の山(PHP 8) 多岐にわたる登山道 軽装でOK • 環境構築が簡単 ◦ シンプルな環境でも動作する
  6. JDK & IDE & Webサーバーのインストール ↓ ソースのチェックアウト & ビルドパスの設定 ↓

    DB構築 & SQL実行 ↓ プロパティの修正 & ant実行 手順のイメージ(極端にレガシーな環境でした) これまでの環境構築
  7. JDK & IDE & Webサーバーのインストール ↓ ソースのチェックアウト & ビルドパスの設定 ↓

    DB構築 & SQL実行 ↓ プロパティの修正 & ant実行 手順のイメージ(極端にレガシーな環境でした) これまでの環境構築 Docker なし Git なし
  8. JDK & IDE & Webサーバーのインストール ↓ ソースのチェックアウト & ビルドパスの設定 ↓

    DB構築 & SQL実行 ↓ プロパティの修正 & ant実行 手順のイメージ(極端にレガシーな環境でした) これまでの環境構築 Docker なし Git なし 手作業が多い 手順書やSQLの管理が大変
  9. 手順のイメージ PHP & Composer & 各種ツールのインストール ↓ Docker & IDEのインストール

    ↓ ソースのチェックアウト ↓ artisan実行 現在の環境構築
  10. 手順のイメージ PHP & Composer & 各種ツールのインストール ↓ Docker & IDEのインストール

    ↓ ソースのチェックアウト ↓ artisan実行 現在の環境構築 手順のほとんどがコマンド作業 データ作成まで自動化されている
  11. function test(...$strings): void { foreach ($strings as $value) { echo

    strlen($value); } } 説明書を読んでもわからない 可変長引数をループで処理しようとしたが phpstan の警告が解消できない  (例)
  12. Parameter #1 $name of static method Test::test() expects string, array<string,

    string> given. 説明書を読んでもわからない phpstanの実行結果は stringを期待していたが、stringの配列が渡されたというエラー ・・・ん?