Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
静的解析ではじめる負債コード解消
Search
daiki1020
December 14, 2020
Programming
5.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
静的解析ではじめる負債コード解消
daiki1020
December 14, 2020
Other Decks in Programming
See All in Programming
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
3.9k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
190
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
AWSに止められる覚悟してますか?
morizo_1984
2
540
残高管理から台帳サービスへの進化
artoy
1
200
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
気持ちぃ〜角丸 Squircle
ryu1013
0
320
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
160
ChromeでローカルLLM
ryu1013
0
140
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
460
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
630
So, you think you're a good person
axbom
PRO
2
2.2k
Producing Creativity
orderedlist
PRO
348
41k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
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だけでも多様な静的解析ができる カスタマイズが可能なのでチーム特有のチェックができる みなさんも自分たちのルールを もう一度見直してみてはいかかでしょうか?
ご清聴 ありがとうございました