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.5k
新卒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
1.3k
PHPでOfficeファイルを取り扱う! PHP Officeライブラリを プロダクトに組み込んだ話
hirobe1999
0
2.3k
PHP8.1で、リソースがオブジェクトに!? マイナーリリースの変更が レガシープロダクトに与えた影響
hirobe1999
0
1.5k
フレームワークが存在しない時代からのレガシープロダクトを、 Laravelに”載せる”実装戦略
hirobe1999
0
1.5k
フレームワークが存在しない時代からのレガシープロダクトを、 Laravelに”載せる”実装戦略
hirobe1999
0
1.8k
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.8k
Fireside Chat
paigeccino
37
3.5k
The World Runs on Bad Software
bkeepers
PRO
68
11k
Docker and Python
trallard
44
3.4k
GitHub's CSS Performance
jonrohan
1031
460k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
A better future with KSS
kneath
239
17k
Rails Girls Zürich Keynote
gr2m
94
14k
Designing for humans not robots
tammielis
253
25k
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 終わりに • ドキュメントは大事にする ◦ 陳腐化しない努力(古いままの資料はやっぱりある) • コードを読んで空気を知る • 知らないことは素直に聞く
◦ 質問しやすい空気を作る • 正直まだわかってない機能もあるので、日々勉強