Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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