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
450
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
Making the Leap to Tech Lead
cromwellryan
133
9k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Optimizing for Happiness
mojombo
376
70k
A Tale of Four Properties
chriscoyier
157
23k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
A better future with KSS
kneath
238
17k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
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 終わりに • ドキュメントは大事にする ◦ 陳腐化しない努力(古いままの資料はやっぱりある) • コードを読んで空気を知る • 知らないことは素直に聞く
◦ 質問しやすい空気を作る • 正直まだわかってない機能もあるので、日々勉強