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
[PHPerKaigi 2021 (LT)] 新社会人のコード品質カイゼン記録
Search
don
March 31, 2021
Programming
1
1.2k
[PHPerKaigi 2021 (LT)] 新社会人のコード品質カイゼン記録
don
March 31, 2021
Tweet
Share
More Decks by don
See All by don
レガシーシステムへのPHPStan導入から半年での効果と課題
bosshawk
0
1.7k
レガシーシステムへのPHPStan導入から半年での課題と効果
bosshawk
1
1.6k
息の長いサービスの PHP8バージョンアップで見えた 課題と解決法 / Problems and solutions found when upgrading long-term services to PHP8
bosshawk
0
2.5k
レガシーシステムにおけるPHP8バージョンアップのアプリ対応記録
bosshawk
0
2k
[おすすめの技術書 LT会 - vol.2] 体系的に学ぶ安全なWebアプリケーションの作り方
bosshawk
0
20k
Other Decks in Programming
See All in Programming
Being an ethical software engineer
xgouchet
PRO
0
210
音声プラットフォームのアーキテクチャ変遷から学ぶ、クラウドネイティブなバッチ処理 (20250422_CNDS2025_Batch_Architecture)
thousanda
0
180
Thank you <💅>, What's the Next?
ahoxa
1
140
Contribute to Comunities | React Tokyo Meetup #4 LT
sasagar
0
160
プロダクト横断分析に役立つ、事前集計しないサマリーテーブル設計
hanon52_
2
440
Sharing features among Android applications: experience feedback
jbvincey
0
110
PHP で学ぶ OAuth 入門
azuki
1
200
Lambda(Python)の リファクタリングが好きなんです
komakichi
3
200
MCP調べてみました! / Exploring MCP
uhzz
2
2.3k
趣味全開のAITuber開発
kokushin
0
200
Empowering Developers with HTML-Aware ERB Tooling @ RubyKaigi 2025, Matsuyama, Ehime
marcoroth
2
650
AIコーディングエージェントを 「使いこなす」ための実践知と現在地 in ログラス / How to Use AI Coding Agent in Loglass
rkaga
0
110
Featured
See All Featured
Making Projects Easy
brettharned
116
6.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.4k
Practical Orchestrator
shlominoach
186
11k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.3k
Speed Design
sergeychernyshev
29
900
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
119
51k
GitHub's CSS Performance
jonrohan
1030
460k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.1k
Scaling GitHub
holman
459
140k
Done Done
chrislema
183
16k
Transcript
#phperkaigi ©2020 RAKUS Co., Ltd. ©2020 RAKUS Co., Ltd. 新社会人のコード
品質カイゼン記録 頓花貴俊
#phperkaigi ©2020 RAKUS Co., Ltd. 自己紹介 名前:頓花貴俊 (どんが たかとし) 会社:株式会社ラクス
社歴:二年 プログラム遍歴: ・大学時代:C言語、Fortran ・入社後:PHP, Java
#phperkaigi ©2020 RAKUS Co., Ltd. 入社研修終えての最初の数ヶ月 軽微な修正、小規模な実装では 特にコードレビューで大きな問題は なかった
#phperkaigi ©2020 RAKUS Co., Ltd. ですが・・・
#phperkaigi ©2020 RAKUS Co., Ltd. 初めての規模の大きな実装 コードレビューの指摘:約100件 開発期間 全体:3人月 担当:2人月
指摘は 約8割が保守性に関する指摘
#phperkaigi ©2020 RAKUS Co., Ltd. うわっ・・・私のコード品質、 低すぎ・・・?
#phperkaigi ©2020 RAKUS Co., Ltd. 主な指摘 ・不要コード、デバッグコードの削除忘れ ・SQLで必要のないカラムの取得 ・意味が理解しづらいメソッド名、変数名、コメント ・タイポ
その他には...
#phperkaigi ©2020 RAKUS Co., Ltd. 保守性に関する指摘 ー 例1 ー 指摘:
条件が分かりずらい 修正後 修正前
#phperkaigi ©2020 RAKUS Co., Ltd. 保守性に関する指摘 ー 例2 ー 指摘:
・何をしているか読み取れない ・DOM構成が変わったときに 対応しずらい 修正後 修正前
#phperkaigi ©2020 RAKUS Co., Ltd. 指摘が出ないように 対策を考える
#phperkaigi ©2020 RAKUS Co., Ltd. 対策 ・コミット前に実装したコード全体を見直す ・前回の指摘から セルフチェックリストを作り 実装前と後にチェックする
チェックリスト
#phperkaigi ©2020 RAKUS Co., Ltd. セルフチェックを実施した結果 コードレビューの指摘 30件 開発期間 全体:1.5人月
担当:0.5人月 あまり減っていない… → なぜ…? 自分だけではわからない…
#phperkaigi ©2020 RAKUS Co., Ltd. 悩みを相談した結果 先輩とペアプロを実施することに
#phperkaigi ©2020 RAKUS Co., Ltd. ペアプロを実施した結果 コードレビューの指摘 10件 開発期間 全体:3人月
担当:1.5人月 → 大きく減少!!! ぺアプロの良かったところ ・実装しつつ質問できる ・他の人の視点を知ることができた
#phperkaigi ©2020 RAKUS Co., Ltd. 1人では気づけず、ペアプロで気づいたこと ・既存コードやそのコピペなどへのコメントの追加 ・TODOコメントなどを使って気になったところにメモをする ・具体的な処理を書く前にメソッドやコメントのみを書いて、 意図が分かりやすくなっているかチェックする
#phperkaigi ©2020 RAKUS Co., Ltd. 改善を振り返って ・入社するまでコードレビューを受けることがなかったので自身 のコード品質が良くないことに気づいてなかった。 ・自分だけでなんとかしようとしたけど失敗した。 ・ペアプロを行うことで
他の人の視点を取り入れることができ、 視点を広げることができた
#phperkaigi ©2020 RAKUS Co., Ltd. 改善後も品質向上のために実施していること ・実装時には、既存コードにコメントを追加しコード全体を 把握する ・デイリーのミーティング時に実装難易度が高い所を相談し、 モブプロ的に実装を進める
#phperkaigi ©2020 RAKUS Co., Ltd. 自分で解決できないときは 皆さんもペアプロやってみましょう!!