PHPerKaigi 2022 のLT登壇資料です
#phperkaigi©2022 RAKUS Co., Ltd.新卒PHPer奮闘記~配属されたのは3歳違いのプロダクト!?~廣部 知生
View Slide
#phperkaigi廣部 知生(@tomoki2135)大学や個人開発ではPythonをメインに触っていた21卒で株式会社ラクスに入社PHPでMail Dealerの開発を行っている彦根市民ですがアイコンは名古屋城です
#phperkaigi についてメール共有管理システム13年連続シェアNo.1!(2009~2021)※2001年4月に販売開始私は1999年生まれなので、3歳のときにはもうサービス開始※出典:ITR「ITR Market View:メール/Webマーケティング市場2022」メール処理市場:ベンダー別売上金額推移およびシェア2009-2021年度(予測値)
#phperkaigi2001年の出来事!出来事● Linux 2.4.0リリース● Mac OSX 10.0リリース● Windows XP 発売● ゲームキューブゲームボーイアドバンス発売● ユニバーサル・スタジオ・ジャパン開園PHP4.0 ~ PHP4.1● foreach文導入● スーパーグローバル変数導入$_GET, $_POSTなど
#phperkaigiはじめてのPHPで苦労した点● PHP特有の書きかた○ 文字列の結合方法○ foreachの順番 (key, value in 配列, 配列 as key=>value)○ アロー演算子が2種類ある■ 配列の書き方も慣れなかった○ echoでそのままHTMLを表示できるとはいえ、この辺は言語の特性なので慣れるしかないので勉強中……
#phperkaigiMail Dealer特有の苦労した点その1
#phperkaigiノンフレームワーク● Laravel:2011年リリース(11年前)● CakePHP:2005年リリース(17年前)● Mail Dealer:2001年リリース(21年前)● 独自ルールや自前実装が多い○ APIのルーティングも自前で実装してあった
#phperkaigiノンフレームワークということは……
#phperkaigiMail Dealer特有の苦労した点その2
#phperkaigiレガシーコード● FEとBEが分離されていない● 業務ロジックを動かしながらHTMLを描画している● グローバル変数も多い● 神メソッド、神クラス、神共通ファイル
#phperkaigiMail Dealer特有の苦労した点その3
#phperkaigi外部連携が多い● ECショップへの問い合わせ管理機能○ 楽天RMS○ Yahoo!ショッピング○ LINE● 通知用のチャット連携○ Slack、Chatworkなどなど● 要望に対応しているうちに複数の連携を1つの画面で対応することも……
#phperkaigi乗り越えかた(環境面)● 研修を受けた!○ コーディング規約の精読が研修カリキュラムに入っている○ 実際の業務フローに従って研修課題を進める仕組み■ コードレビューで独自ルールについての指摘を受ける○ Mail Dealerでのコードの書き方を理解できた
#phperkaigi乗り越えかた(環境面)● ドキュメントで学んだ!○ 送受信のようなコア機能は大きく改修されないから陳腐化しにくい○ 外部連携も手順書がしっかり用意されている○ レガシーコードの改善はチームで取り組んでいる
#phperkaigi乗り越えかた(努力面)● コードを読んだ!○ 少なくとも新人のうちは、完全な新機能の実装はない○ 20年の歴史がコードの雰囲気を生む● 困ったら聞いた!○ ドキュメントの場所や参考できそうな情報の場所○ 文章化されていない歴史的設計経緯
#phperkaigi終わりに● ドキュメントは大事にする○ 陳腐化しない努力(古いままの資料はやっぱりある)● コードを読んで空気を知る● 知らないことは素直に聞く○ 質問しやすい空気を作る● 正直まだわかってない機能もあるので、日々勉強