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
PHPMDのPHPMDによる静的解析結果
Search
iwamot
May 27, 2022
Technology
0
640
PHPMDのPHPMDによる静的解析結果
2022-05-27
PHPerのための「静的解析」を語り合うPHP TechCafe
https://rakus.connpass.com/event/245646/
iwamot
May 27, 2022
Tweet
Share
More Decks by iwamot
See All by iwamot
AWS Protonの概要
iwamot
0
46
ENECHANGEが実現した管理者の工数負担を削減しながらもAWSセキュリティを強化した方法とは
iwamot
0
100
Web APIのAWS Lambda移行で工夫したこと
iwamot
4
3k
ECS on FargateへのSeekable OCI導入レポート
iwamot
0
450
サービスクォータ、ちゃんと監視してますか?
iwamot
0
920
AWS Well-Architected Toolで信頼性をレビューした結果
iwamot
0
440
テックカンパニーとしてのENECHANGEの中期目標
iwamot
0
78
AIの活用状況と今後の展望
iwamot
0
62
ENECHANGE社のAWSセキュリティ改革ストーリー
iwamot
0
130
Other Decks in Technology
See All in Technology
What if...? 처음부터 다시 LLM 어플리케이션을 개발한다면
huffon
0
1k
20240725 LLMによるDXのビジョンと、今何からやるべきか @Azure OpenAI Service Dev Day
nrryuya
3
1.1k
Datadog Cloud SIEMを使ってAWS環境の脅威を可視化した話/lifeistech-datadog-cloud-siem
gidajun
0
480
プレイドにおけるDatadog APMの活用方法
plaidtech
PRO
2
120
エンジニア向け会社紹介資料
caddi_eng
14
220k
E2Eテスト自動化プラットフォームにおけるAIの活用
shift_evolve
0
180
[NIKKEI Tech Talk]Bias for Action!! 実践から学ぶための仕組とコミュニティ / Community for Practice and Learning
kanamasa
0
260
Azure OpenAI Service Dev Day / LLMでできる!使える!生成AIエージェント
masahiro_nishimi
3
740
AWSサービスメニュー開発をしていてAWSを好きだ!と感じた瞬間
toru_kubota
0
130
Azure Pipelinesを使用したCICDベースラインアーキテクチャ実践
yuriemori
0
190
AWSでRAGを作る法方
sonoda_mj
1
140
大規模ドラレコデータ収集・機械学習基盤を支える AWS CDK 〜導入・運用事例紹介〜
pemugi
0
110
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
42
2.7k
[RailsConf 2023] Rails as a piece of cake
palkan
35
4.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
29
2.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
399
65k
Making Projects Easy
brettharned
111
5.7k
Into the Great Unknown - MozCon
thekraken
20
1.3k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
20
7.2k
How to train your dragon (web standard)
notwaldorf
79
5.5k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Designing Experiences People Love
moore
136
23k
Unsuck your backbone
ammeep
666
57k
How to name files
jennybc
67
96k
Transcript
PHPMDの PHPMDによる静的解析結果 2022-05-27 PHPerのための「静的解析」を語り合うPHP TechCafe https://rakus.connpass.com/event/245646/ ENECHANGE株式会社 インフラエンジニア 岩本隆史 (@iwamot)
2019年、リファクタリングを任された 当時は旅行業の会社に勤めていた アクティビティ予約サービスをCakePHPで開発していた 20,000行超のファイルがあるなど、コードの品質が気になった リファクタリングしたいと申し出た
静的解析ツールを探し始めた リファクタリングの優先度を決めるのに使いたい
PHPMDを見つけた https://phpmd.org/ PHP Mess Detector(いわゆる「コードの不吉な匂い」を検出) SiderやCodacyでも使われていたので、試す価値があると思った
好奇心から、PHPMD自体を解析した PHPMD自体もPHPで書かれている 当時のコードをいま解析するなら下記のような感じ $ git clone https://github.com/phpmd/phpmd.git $ cd phpmd
$ git checkout 42bf8ad4 $ docker run -it --rm \ -v /path/to/phpmd/src:/src \ iwamot/phpmd-docker:2.12.0 /src html \ cleancode,codesize,controversial,design,naming,unusedcode \ --exclude /src/test > phpmd-result.html
不吉な匂いが35件も検出された
OSS貢献のチャンスだと思った 不吉な匂いの検出ツールなのに、不吉な匂いが多いのは切ない 修正プルリクエストを送ろう!
修正ターゲットを決めた 未使用変数 $list が戻り値に使われている 明らかなバグはこれだけだった
PRを送ったらマージされた https://github.com/phpmd/phpmd/pull/598
めでたしめでたし
しかし
リファクタリングは完遂できなかった 自社サービスのコード解析は済ませた リファクタリングも順調に進めていた そこへ新型コロナが来てしまった いろいろあって退職することに
PHPMDの不吉な匂いも増えている 当時の35件から39件に (fcb0f1f3)
ともあれ
静的解析ツールを解析してみると 発見があるかも