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

新卒PHPer奮闘記 ~配属されたのは3歳違いのプロダクト!?~ / phperkaigi-2022-lt

hirobe
April 09, 2022
1k

新卒PHPer奮闘記 ~配属されたのは3歳違いのプロダクト!?~ / phperkaigi-2022-lt

PHPerKaigi 2022 のLT登壇資料です

hirobe

April 09, 2022
Tweet

Transcript

  1. #phperkaigi
    ©2022 RAKUS Co., Ltd.
    新卒PHPer奮闘記
    ~配属されたのは3歳違いのプロダクト!?~
    廣部 知生

    View Slide

  2. #phperkaigi
    廣部 知生(@tomoki2135)
    大学や個人開発ではPythonをメインに触っていた
    21卒で株式会社ラクスに入社
    PHPでMail Dealerの開発を行っている
    彦根市民ですがアイコンは名古屋城です

    View Slide

  3. #phperkaigi
            について
    メール共有管理システム
    13年連続シェアNo.1!(2009~2021)※
    2001年4月に販売開始
    私は1999年生まれなので、3歳のときにはもうサービス開始
    ※出典:ITR「ITR Market View:メール/Webマーケティング市場2022」メール処理市場:ベンダー別売上金額推移およびシェア2009-2021年度(予測値)

    View Slide

  4. #phperkaigi
    2001年の出来事!
    出来事
    ● Linux 2.4.0リリース
    ● Mac OSX 10.0リリース
    ● Windows XP 発売
    ● ゲームキューブ
    ゲームボーイアドバンス発売
    ● ユニバーサル・スタジオ・
    ジャパン開園
    PHP4.0 ~ PHP4.1
    ● foreach文導入
    ● スーパーグローバル変数導入
    $_GET, $_POSTなど

    View Slide

  5. #phperkaigi
    はじめてのPHPで苦労した点
    ● PHP特有の書きかた
    ○ 文字列の結合方法
    ○ foreachの順番 (key, value in 配列, 配列 as key=>value)
    ○ アロー演算子が2種類ある
    ■ 配列の書き方も慣れなかった
    ○ echoでそのままHTMLを表示できる
    とはいえ、この辺は言語の特性なので慣れるしかないので勉強中……

    View Slide

  6. #phperkaigi
    Mail Dealer特有の苦労した点
    その1

    View Slide

  7. #phperkaigi
    ノンフレームワーク
    ● Laravel:2011年リリース(11年前)
    ● CakePHP:2005年リリース(17年前)
    ● Mail Dealer:2001年リリース(21年前)
    ● 独自ルールや自前実装が多い
    ○ APIのルーティングも自前で実装してあった

    View Slide

  8. #phperkaigi
    ノンフレームワークということは……

    View Slide

  9. #phperkaigi
    Mail Dealer特有の苦労した点
    その2

    View Slide

  10. #phperkaigi
    レガシーコード
    ● FEとBEが分離されていない
    ● 業務ロジックを動かしながらHTMLを描画している
    ● グローバル変数も多い
    ● 神メソッド、神クラス、神共通ファイル

    View Slide

  11. #phperkaigi
    Mail Dealer特有の苦労した点
    その3

    View Slide

  12. #phperkaigi
    外部連携が多い
    ● ECショップへの問い合わせ管理機能
    ○ 楽天RMS
    ○ Yahoo!ショッピング
    ○ LINE
    ● 通知用のチャット連携
    ○ Slack、Chatworkなどなど
    ● 要望に対応しているうちに
    複数の連携を1つの画面で対応することも……

    View Slide

  13. #phperkaigi
    乗り越えかた(環境面)
    ● 研修を受けた!
    ○ コーディング規約の精読が研修カリキュラムに入っている
    ○ 実際の業務フローに従って研修課題を進める仕組み
    ■ コードレビューで独自ルールについての指摘を受ける
    ○ Mail Dealerでのコードの書き方を理解できた

    View Slide

  14. #phperkaigi
    乗り越えかた(環境面)
    ● ドキュメントで学んだ!
    ○ 送受信のようなコア機能は大きく改修されないから陳腐化しにくい
    ○ 外部連携も手順書がしっかり用意されている
    ○ レガシーコードの改善はチームで取り組んでいる

    View Slide

  15. #phperkaigi
    乗り越えかた(努力面)
    ● コードを読んだ!
    ○ 少なくとも新人のうちは、完全な新機能の実装はない
    ○ 20年の歴史がコードの雰囲気を生む
    ● 困ったら聞いた!
    ○ ドキュメントの場所や参考できそうな情報の場所
    ○ 文章化されていない歴史的設計経緯

    View Slide

  16. #phperkaigi
    終わりに
    ● ドキュメントは大事にする
    ○ 陳腐化しない努力(古いままの資料はやっぱりある)
    ● コードを読んで空気を知る
    ● 知らないことは素直に聞く
    ○ 質問しやすい空気を作る
    ● 正直まだわかってない機能もあるので、日々勉強

    View Slide