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
新卒PHPer奮闘記 ~配属されたのは3歳違いのプロダクト!?~ / phperkaigi-2...
Search
hirobe
April 09, 2022
0
1.4k
新卒PHPer奮闘記 ~配属されたのは3歳違いのプロダクト!?~ / phperkaigi-2022-lt
PHPerKaigi 2022 のLT登壇資料です
hirobe
April 09, 2022
Tweet
Share
More Decks by hirobe
See All by hirobe
PHPでOfficeファイルを取り扱う! PHP Officeライブラリを プロダクトに組み込んだ話
hirobe1999
0
1.7k
PHP8.1で、リソースがオブジェクトに!? マイナーリリースの変更が レガシープロダクトに与えた影響
hirobe1999
0
1.1k
フレームワークが存在しない時代からのレガシープロダクトを、 Laravelに”載せる”実装戦略
hirobe1999
0
1.3k
フレームワークが存在しない時代からのレガシープロダクトを、 Laravelに”載せる”実装戦略
hirobe1999
0
1.5k
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Building an army of robots
kneath
302
43k
The Cult of Friendly URLs
andyhume
78
6k
Agile that works and the tools we love
rasmusluckow
327
21k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
KATA
mclloyd
29
14k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Visualization
eitanlees
145
15k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Transcript
#phperkaigi ©2022 RAKUS Co., Ltd. 新卒PHPer奮闘記 ~配属されたのは3歳違いのプロダクト!?~ 廣部 知生
#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年度(予測値)
#phperkaigi 2001年の出来事! 出来事 • 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を表示できる とはいえ、この辺は言語の特性なので慣れるしかないので勉強中……
#phperkaigi Mail Dealer特有の苦労した点 その1
#phperkaigi ノンフレームワーク • Laravel:2011年リリース(11年前) • CakePHP:2005年リリース(17年前) • Mail Dealer:2001年リリース(21年前) •
独自ルールや自前実装が多い ◦ APIのルーティングも自前で実装してあった
#phperkaigi ノンフレームワークということは……
#phperkaigi Mail Dealer特有の苦労した点 その2
#phperkaigi レガシーコード • FEとBEが分離されていない • 業務ロジックを動かしながらHTMLを描画している • グローバル変数も多い • 神メソッド、神クラス、神共通ファイル
#phperkaigi Mail Dealer特有の苦労した点 その3
#phperkaigi 外部連携が多い • ECショップへの問い合わせ管理機能 ◦ 楽天RMS ◦ Yahoo!ショッピング ◦ LINE
• 通知用のチャット連携 ◦ Slack、Chatworkなどなど • 要望に対応しているうちに 複数の連携を1つの画面で対応することも……
#phperkaigi 乗り越えかた(環境面) • 研修を受けた! ◦ コーディング規約の精読が研修カリキュラムに入っている ◦ 実際の業務フローに従って研修課題を進める仕組み ▪ コードレビューで独自ルールについての指摘を受ける
◦ Mail Dealerでのコードの書き方を理解できた
#phperkaigi 乗り越えかた(環境面) • ドキュメントで学んだ! ◦ 送受信のようなコア機能は大きく改修されないから陳腐化しにくい ◦ 外部連携も手順書がしっかり用意されている ◦ レガシーコードの改善はチームで取り組んでいる
#phperkaigi 乗り越えかた(努力面) • コードを読んだ! ◦ 少なくとも新人のうちは、完全な新機能の実装はない ◦ 20年の歴史がコードの雰囲気を生む • 困ったら聞いた!
◦ ドキュメントの場所や参考できそうな情報の場所 ◦ 文章化されていない歴史的設計経緯
#phperkaigi 終わりに • ドキュメントは大事にする ◦ 陳腐化しない努力(古いままの資料はやっぱりある) • コードを読んで空気を知る • 知らないことは素直に聞く
◦ 質問しやすい空気を作る • 正直まだわかってない機能もあるので、日々勉強