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
Enforcing Code Quality with GrumPHP @ Valencia ...
Search
Toon Verwerft
October 20, 2022
Programming
45
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Enforcing Code Quality with GrumPHP @ Valencia Meetup 10/22
Toon Verwerft
October 20, 2022
More Decks by Toon Verwerft
See All by Toon Verwerft
How to send good looking emails @ PHPro Lunch Demo
veewee
0
160
Symfony UX @ PHPro Tech Meetup
veewee
0
240
Parse! Don't validate @ PHPro Lunch Demo
veewee
0
53
Learning the code review skill @ PHPro Lunch Demo
veewee
0
57
Defensive Code Design @ Phpro weekend
veewee
0
180
Sweet mother of SOAP @ PHPro Tech Meetup
veewee
0
240
Enforcing Code Quality with GrumPHP @ MeetMagento BE 09/17
veewee
0
170
The Art of Debugging @ Phpro Weekend 05/17
veewee
1
200
Enforcing Code Quality with GrumPHP @ MeetMagento NL 05/17
veewee
0
130
Other Decks in Programming
See All in Programming
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
460
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
560
Deep dive into the select statement (GopherCon UK)
jespino
0
150
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.8k
VibeCodingからAgenticWorkflowへ
starfish719
0
940
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
240
AWS Transform Customによる Spring Boot 2.xから4.xへのVerUp
satoshi256kbyte
2
110
Introducing Stack Pull Request in GitHub
kkamegawa
0
110
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
240
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
5
1.8k
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
200
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
4
2.3k
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
420
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
510
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
280
Exploring anti-patterns in Rails
aemeredith
3
480
Game over? The fight for quality and originality in the time of robots
wayneb77
1
260
Bash Introduction
62gerente
615
220k
A Modern Web Designer's Workflow
chriscoyier
698
190k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
510
Building an army of robots
kneath
306
46k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
How to build a perfect <img>
jonoalderson
1
5.9k
Transcript
Hello all!
I am a regular programmer…
… who hates BAD CODE!
WHO HAS SEEN BAD CODE?
None
WHO HAS WRITTEN BAD CODE?
Two developers ask forgiveness of technical debt at the beginning
of a sprint.
WHO HAS DONE SOMETHING ABOUT BAD CODE?
None
I don’t think you are going to like me, WHEN
I AM ANGRY! You want to see me angry?
1. I LOOKS FOR BAD CODE 2. I PROTECT YOUR
CODEBASE 3. I COMPLAIN FOR YOU
None
STOP! DEMO TIME
How it started
CODING STANDARDS!
Arrrr, GIT Hooks are bad for ya!
JAMS WITH COMPOSER
None
BORING
I'M YOUR NEW BEST FRIEND!
UNDER THE BEARD PHP-CS PHP-CS-Fixer Blacklist Commit-Message Matcher
INSPECTS STATIC ANALYZERS
WEARS LINTERS YAML XML JSON
STANDS FOR SECURITY
MEETS FRONT-END
• Ant • Atoum • Behat • Brunch • Clover
Coverage • Codeception • Composer • Composer Normalize • Composer Require Checker • Composer Script • Doctrine ORM • Ecs EasyCodingStandard • ESLint • File size • Deptrac • Gherkin • Git blacklist •Git branch name •Git commit message •Grunt •Gulp •Infection •JsonLint •Kahlan •Make •NPM script •Paratest •Pest •Phan •Phing •Php7cc •PhpArkitect •PhpCpd •Phpcs •PHP-CS-Fixer •PHPLint •PhpMd •PhpMnd •PhpParser •Phpspec •PHPStan •Phpunit •Phpunit bridge •PhpVersion •Progpilot •Psalm •Robo •Security Checker • Enlightn • Local • Roave • Symfony •Shell •Stylelint •Tester •TwigCs •XmlLint •YamlLint
YO DAWG, I HEAR YOU LIKE TASKS …
IF I COULD WRITE MY OWN EXTENSION …
I will look for you, I will find you, AND
I WILL KILL YOU!
FIXES BAD CODE
RUNS IN PARALLEL
CONTINUOUS INTEGRATION
NOT JUST ANOTHER TASK RUNNER
TEAM
HE WANTS YOU TO WIN
HE WANTS YOU TO GAIN SKILLS
ONE CONVENTION TO RULE THEM ALL
PHPUNIT PHP-CS PSALM PHPSTAN
PROJECT 1 CONVENTIONS PROJECT 2 PROJECT 3
CONVENTION
IMPLEMENTATION
ONE DOES NOT SIMPLY SUPPORT ALL PLATFORMS
None
None
74 80 81 82
None
None
ASK QUESTIONS YOU SHOULD!