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
静的解析ではじめる負債コード解消
Search
daiki1020
December 14, 2020
Programming
0
4.6k
静的解析ではじめる負債コード解消
daiki1020
December 14, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
Ruby で作る RISC-V CPU エミュレーター / RISC-V CPU emulator made with Ruby
hayaokimura
5
1k
プロダクトエンジニアのしごと 〜 受託 × 高難度を乗り越えるOptium開発 〜
algoartis
0
210
読書シェア会 vol.4 『ダイナミックリチーミング 第2版』
kotaro666
0
110
Jakarta EE Meets AI
ivargrimstad
0
870
20250426 GDGoC 合同新歓 - GDGoC のススメ
getty708
0
110
ぽちぽち選択するだけでOSSを読めるVSCode拡張機能
ymbigo
14
6.2k
ComposeでWebアプリを作る技術
tbsten
0
130
AWS Summit Hong Kong 2025: Reinventing Programming - How AI Transforms Our Enterprise Coding Approach
dwchiang
0
130
Cloudflare Workersで進めるリモートMCP活用
syumai
0
110
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
2
480
Golangci-lint v2爆誕: 君たちはどうすべきか
logica0419
1
250
fieldalignmentから見るGoの構造体
kuro_kurorrr
0
140
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
13
840
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
4 Signs Your Business is Dying
shpigford
183
22k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Visualization
eitanlees
146
16k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Git: the NoSQL Database
bkeepers
PRO
430
65k
How to train your dragon (web standard)
notwaldorf
91
6k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.7k
Transcript
静的解析からはじめる 負債コード解消 株式会社ラクス 藤岡大樹
自己紹介 株式会社ラクス 開発本部 楽楽販売・労務開発課 藤岡大樹 入社3年目 業務内容:機能開発 サポート 上流設計 など
クラウド型販売管理システム 導入社数1,000社超 10年以上続くサービス Webデータベース ブラウザを使ってCRUDができる
販売管理業務など用途に特化したDBを作れる 構成 PHP + PostgreSQL
課題 長年続くサービスになると… 未使用の関数が放置 コメントと処理が違う そもそもコメントがない 1つの関数の役割が多い …
可読性の低下 開発効率が下がる
デグレコワイ 呼び出し元を辿っていくと 「これ使ってないやん」 関係ないと思ってたのに 共通ロジックなってるやん。。。 今の開発規約と合ってなくて 読みにくい
デグレコワイ 呼び出し元を辿っていくと 「これ使ってないやん」 関係ないと思ってたのに 共通ロジックなってるやん。。。 今の開発規約と合ってなくて 読みにくい 見送ろっか…
静的解析ではじめる負債コード解消 inspection 機能開発で触ったファイル内の検知箇所を併せて修正する
Inspectionってなに? 多くのテンプレートが用意されていてエラーレベルを選ぶだけ テンプレートを元に自分用にカスタマイズも可能!
Inspection活用事例① 未使用の変数や関数を検知 Settings > inspections ◦ PHP ◦ Unused ◦
Unused local variable ◦ Unused private method
Inspection活用事例② コメントがない関数を検知 Settings > inspections ◦ PHP ◦ PHPDocs ◦
Missing PHPDoc comment
Inspection活用事例③ 引数の数が一致していない 関数呼び出しを検知 Settings > inspections ◦ PHP ◦ Type
compatibility ◦ Parameter type
Inspection活用事例④ 自分でカスタマイズして検知 例)条件式の曖昧な比較(==)を検知したい! Settings > inspections ◦ General ◦ Structual
Search Inspection デモ
Inspection活用事例④ 自分でカスタマイズして検知(デモ内容) 例)条件式の曖昧な比較(==)を検知したい! 1. Optionsに追加する
Inspection活用事例④ 自分でカスタマイズして検知(デモ内容) 例)条件式の曖昧な比較(==)を検知したい! 2. 検知したい内容を入力する ◦ テンプレートをもとにカスタマイズもできる
Inspection活用事例④ 自分でカスタマイズして検知(デモ内容) 例)条件式の曖昧な比較(==)を検知したい! 3. テンプレート名を決める 4. 完了
結果 検知箇所を一気に修正するのではなく、触ったファイルと一緒に 修正することで効率を向上できた 余計なファイルを改めで査読する必要もなく、そこまで開発作業の影響に ならない 少しずつ着実に負債コードを減らせている すべてが解消するには時間がかかるが、デグレを起こさないよう慎重に
まとめ 自分たちで強いルールを作ることで負債コードが放置されるのを 防ぐよう工夫した PhpStormだけでも多様な静的解析ができる カスタマイズが可能なのでチーム特有のチェックができる みなさんも自分たちのルールを もう一度見直してみてはいかかでしょうか?
ご清聴 ありがとうございました