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
Enforcing Code Quality with GrumPHP @ Valencia ...
Search
Toon Verwerft
October 20, 2022
Programming
50
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
170
Symfony UX @ PHPro Tech Meetup
veewee
0
240
Parse! Don't validate @ PHPro Lunch Demo
veewee
0
58
Learning the code review skill @ PHPro Lunch Demo
veewee
0
61
Defensive Code Design @ Phpro weekend
veewee
0
190
Sweet mother of SOAP @ PHPro Tech Meetup
veewee
0
240
Enforcing Code Quality with GrumPHP @ MeetMagento BE 09/17
veewee
0
180
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
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
730
Jetpack Compose メカニズム
skydoves
0
450
速習iPhone Duo対応
yuukiw00w
1
660
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
360
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
560
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
500
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
250
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
580
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
310
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.3k
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
490
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
190
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
510
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Making the Leap to Tech Lead
cromwellryan
135
10k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
570
Mobile First: as difficult as doing things right
swwweet
225
10k
Product Roadmaps are Hard
iamctodd
55
13k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
680
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!