Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
リーダブルなPHPDocを目指して / 20210707-readablelt-nishihara
Rakus_Dev
March 14, 2022
Technology
0
1.3k
リーダブルなPHPDocを目指して / 20210707-readablelt-nishihara
Rakus_Dev
March 14, 2022
Tweet
Share
More Decks by Rakus_Dev
See All by Rakus_Dev
新サービスのプロジェクト推進に向けた、トライ&エラー / 20221109_kawasaki
rakus_dev
0
350
レガシーになりゆく システムとの向き合い方 / 20221005_inoue
rakus_dev
0
830
PMMやプロダクト関係者と協働するために役割を整理した話 / 20220810_pdmtipslt
rakus_dev
0
230
既存システムのフロントエンド・バックエンド分離 / meetup0706-seki
rakus_dev
0
630
プロダクトデザイン組織の 新しい取り組み / meetup0706-onoda
rakus_dev
1
550
障害対応を自動化した話 / 20220609_Automation
rakus_dev
0
520
横断部門としての取り組み紹介(研究開発、共通基盤開発) / rakus-meetup-202206
rakus_dev
0
1k
若手が可読性を上げるために気を付けたこと / 20210707_readablelt_nazato
rakus_dev
0
1.3k
インフラエンジニアとしての成長記 / 20220302_Meetup_maekawa
rakus_dev
0
620
Other Decks in Technology
See All in Technology
DID/VCを用いた自己主権型アイデンティティの実現
sbtechnight
0
370
GraphQLスキーマ設計の勘所
yukukotani
26
5.8k
それでもどうしてRecoilを使うのか / Harajuku.ts Meetup Recoil
okunokentaro
11
3.3k
Google Cloud Updates 2022/12/01-12/15
no24oka
1
150
マネーフォワードクラウドを支える事業者基盤
machisuke
0
220
CUEとKubernetesカスタムオペレータを用いた新しいネットワークコントローラをつくってみた
hrk091
0
200
グローバルチームことはじめ / Bootstrapping a global team
tasshi
1
570
Deep dive in Reserved Instance ~脳死推奨量購入からの脱却~
kzkmaeda
0
250
20230121_データ分析系コミュニティ_サテライト企画
doradora09
0
450
MoT/コネヒト/Kanmu が語るプロダクト開発xデータ分析 - 分析から機械学習システムの開発まで一人で複数ロールを担う大変さ
masatakashiwagi
2
550
re:Inventで発表があったIoT事例の紹介と考察
kizawa2020
0
110
ラズパイとGASで加湿器の消し忘れをLINEでリマインド&操作
minako__ph
0
110
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
657
120k
What's in a price? How to price your products and services
michaelherold
233
9.7k
Pencils Down: Stop Designing & Start Developing
hursman
114
10k
Code Reviewing Like a Champion
maltzj
508
38k
Visualization
eitanlees
128
12k
jQuery: Nuts, Bolts and Bling
dougneiner
57
6.6k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
175
9.1k
What's new in Ruby 2.0
geeforr
336
30k
WebSockets: Embracing the real-time Web
robhawkes
58
6k
Designing the Hi-DPI Web
ddemaree
273
32k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
239
19k
Transcript
#readablelt ©2021 RAKUS Co., Ltd. リーダブルな PHPDocを目指して 株式会社ラクス 西原 優人
#readablelt 自己紹介 経歴 • 2015年に新卒でラクスに入社 • 「Mail Dealer」や「Chat Dealer」の開発を経 て現在は「配配メール」の開発担当
良く触る技術 • PHP • JavaScript • Node.js • PostgreSQL 西原 優人 (masato nishihara) Twitter : whiteFox_73 趣味 • アウトドア フットサル/スノーボード/バイク /ペンギン • インドア 音楽鑑賞/ゲーム/ ペンギン
#readablelt 配配メールとは • メールマーケティングに必要な機能を備えたメール配信サービス • マーケティングオートメーションツールを備えたプランもある • 現在サービス開始から15年目
#readablelt 2月にあったRAKUSMeetUpにて Speaker Deck https://speakerdeck.com/whitefox_73/14nia n-mu-falsesabisutojin-hou-mobu-mutamefal serihuakutaringuzhan-lue logmi Tech https://logmi.jp/tech/articles/323993
※テキストで当日の発表内容が紹介されています
#readablelt 今回の内容は またリファクタリングの話になります
#readablelt 今回の内容は プログラムには影響しないけど 重要なコメントPHPDocについてです
#readablelt 今回の内容は PHPDocとはPHPで書かれたのクラスや関数などの ブロックに記述できるDocComment内に記述する書式
#readablelt 今回の内容は 実際のイメージ
#readablelt 今回の内容は PHPDocの書き方に関しては弊社ブログにもまとめています 型を使いこなすためのPHPDocの書き方 https://tech-blog.rakus.co.jp/entry/20210326/php#PHPDo c%E3%81%A8%E3%81%AF 同じチームの後輩が書いてくれました !!
#readablelt 今回の内容は 無法地帯となっていたPHPDocを メンテしましたって話
#readablelt メンテされてないとはどんな状態だった? 一つ目
#readablelt メンテされてないとはどんな状態だった? 書いてない…
#readablelt メンテされてないとはどんな状態だった? 二つ目
#readablelt メンテされてないとはどんな状態だった? フォーマット違 う…
#readablelt メンテされてないとはどんな状態だった? 三つ目
#readablelt メンテされてないとはどんな状態だった? 型違うやん…
#readablelt メンテされてないとはどんな状態だった? 3つ問題点がありましたが、一番ヤバいのは3つ目 • PHPDocが書かかれている関数と書かれていない関数が混在 • PHPDocの書き方が統一されていない • PHPDocに書かれている内容が正しくない事がある PHPDocは真実と嘘が織り交ざっており、まるで詐欺師状態
#readablelt なんでメンテしようと思ったの? • チームメンバーの入れ替わりで経験則でカバーできなくなってきた • 生産性を上げる為に、無駄な時間を使いたくなかった • 役に立っていないPHPDocが勿体ない
#readablelt どうやってメンテした? 3段階でメンテナンスを実施 • PHPDocの修正 ◦ 過去の誤ったPHPDocをあるべき姿に • ルール作成 ◦
現在進行形で誤った PHPDocが増えないように • ルール定着 ◦ 未来もPHPDocが綺麗に維持できるように
#readablelt どうやってメンテした? PHPDocの修正 • PHPDocを書く対象の関数は数千個以上… • まずは利用頻度の高い共通関数から対応 • 業務の合間に改善施策として長期的に取り組んで対応
#readablelt どうやってメンテした? ルール作成 • コーディングルールにPHPDocに関する項目を追加 • ルールをチーム内に展開し、PHPDocの認識を合わせる
#readablelt どうやってメンテした? ルール定着 • ルール定着の為、PHPDocもコードレビュー対象 • チーム内にも共有しレビューを徹底してもらう
#readablelt 効果はあった? • コードレビューや調査の際に、PHPDocを信頼できるようになった • IDEの補完が効くようになった • IDEで誤った不要な警告がでなくなった
#readablelt 取り組んでの所感 • 無法地帯だったPHPDocをメンテした • メンテを怠ると正常な状態に戻すのがとても大変 • 信頼できるPHPDocである事が大切 • IDEの恩恵も受けることが出来て良いことばかり
#readablelt サボらずにPHPDocをメンテしましょう