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
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
420
PHPでOfficeファイルを取り扱う! PHP Officeライブラリを プロダクトに組み込んだ話
hirobe1999
0
1.8k
PHP8.1で、リソースがオブジェクトに!? マイナーリリースの変更が レガシープロダクトに与えた影響
hirobe1999
0
1.2k
フレームワークが存在しない時代からのレガシープロダクトを、 Laravelに”載せる”実装戦略
hirobe1999
0
1.3k
フレームワークが存在しない時代からのレガシープロダクトを、 Laravelに”載せる”実装戦略
hirobe1999
0
1.5k
Featured
See All Featured
Visualization
eitanlees
146
15k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Docker and Python
trallard
42
3.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Unsuck your backbone
ammeep
669
57k
KATA
mclloyd
29
14k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Typedesign – Prime Four
hannesfritz
40
2.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
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 終わりに • ドキュメントは大事にする ◦ 陳腐化しない努力(古いままの資料はやっぱりある) • コードを読んで空気を知る • 知らないことは素直に聞く
◦ 質問しやすい空気を作る • 正直まだわかってない機能もあるので、日々勉強