SlideShare a Scribd company logo
A Fireside Chat about Rector
A Fireside Chat about
Rector
Programm
●
Introduction to Rector - Matthias
●
Demo time - Tomas
●
Q & A - You
●
About the book - Matthias
Fireside chat?
The fireside chats were a series of
evening radio addresses given by
Franklin D. Roosevelt [...] [He] spoke
with familiarity to millions of
Americans about recovery from the
Great Depression, [...]
Legacy code
Legacy code
How much pain will you put up with?!
At some point we’d like to
Migrate from Zend 1 to Symfony 5
At some point we’d like to
Go from Active Record to Data Mapper
At some point we’d like to
Use PHP 8 attributes instead of Doctrine
annotations
At some point we’d like to
Mark classes as final if they aren’t extended
At some point we’d like to
Introduce strict types everywhere...
But...
●
Too much work (development &
testing)
●
Priority is always on features
●
For now: just keep things running
However 1
●
Broken windows
●
Halfway migrations
●
Lack of innovation
●
(FO)MO
●
Hiring is hard
However 2
●
Change is scary
●
Change becomes slow
What would you like to do?
We’ll tell you later if Rector can do it
What is Rector?
●
A PHP command-line tool
●
Powered by PHPParser and
PHPStan
●
Created and maintained (mostly) by
Tomas
s
What is Rector?
●
Understands code
●
Improves entire code bases at once
●
Can be fine-tuned to improve what
you want
●
Can be extended by anyone for
specific needs
Continuous Improvement
●
Not just one time upgrades
●
Once you enable a rule it will keep
reinforcing that rule
CI
●
Rules can be checked during the
build
●
Rules can be applied during the
build (Rector as a team member)
Coaching
●
Rector can coach a team to apply
best practices
●
“Don’t forget to ...”
●
“You should do ... instead”
●
“We decided to always do ...”
Coaching
●
If code reviewing becomes
repetitive, automate it
●
(write a Rector rule)
Rector fireside chat - PHPMiNDS meetup
The Future of Refactoring
●
Rector as a Composer plugin
●
Free modern standards
●
There is no legacy code...
The Future of Refactoring
Well...
Let’s switch to Tomas now
The Book
The Book
●
How Rector works
●
Its place in the ecosystem
●
Extend Rector with custom rules
●
Use TDD to safely develop those rules
●
Make Rector a contributing team
member
Buy it, support us
https://bit.ly/2X76GUw

More Related Content

ODP
DevOps Cebu Presentation
PDF
TypeScript
PDF
Powerlang: a Vehicle for Lively Implementing Programming Languages
PDF
Test driven development : software process
PDF
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
PPTX
Malware analysis as a hobby - the short story (lightning talk)
PDF
Technical screening .Net Developer
PPTX
Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...
DevOps Cebu Presentation
TypeScript
Powerlang: a Vehicle for Lively Implementing Programming Languages
Test driven development : software process
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
Malware analysis as a hobby - the short story (lightning talk)
Technical screening .Net Developer
Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...

Similar to Rector fireside chat - PHPMiNDS meetup (20)

PPTX
Simplifying training deep and serving learning models with big data in python...
PPTX
Writing clean scientific software Murphy cleancoding
PDF
Instant LAMP Stack with Vagrant and Puppet
PDF
Some of my best friends are localisers
PPTX
Go fundamentals
PPTX
The Professional Programmer
PDF
LCE12: Intro Training: Upstreaming 101
PDF
Upstreaming 1013
PDF
LCA13: Upstreaming 101
PPTX
Software Engineering Primer
PPTX
Pair Programming Styles
PPTX
Extreme Programming (XP): Revisted
PDF
TDC2016POA | Trilha DevOps - DevOps Anti-Patterns
PDF
Agile Development: Key to smart software development
ODP
Java Memory Consistency Model - concepts and context
ODP
4Developers 2015: Java Memory Consistency Model or intro to multithreaded pro...
PDF
Coding with AI - Understanding LLMs and how to use them
PDF
DevOps Anti-Patterns
PDF
I Know What You Did Last Summer
Simplifying training deep and serving learning models with big data in python...
Writing clean scientific software Murphy cleancoding
Instant LAMP Stack with Vagrant and Puppet
Some of my best friends are localisers
Go fundamentals
The Professional Programmer
LCE12: Intro Training: Upstreaming 101
Upstreaming 1013
LCA13: Upstreaming 101
Software Engineering Primer
Pair Programming Styles
Extreme Programming (XP): Revisted
TDC2016POA | Trilha DevOps - DevOps Anti-Patterns
Agile Development: Key to smart software development
Java Memory Consistency Model - concepts and context
4Developers 2015: Java Memory Consistency Model or intro to multithreaded pro...
Coding with AI - Understanding LLMs and how to use them
DevOps Anti-Patterns
I Know What You Did Last Summer
Ad

More from Matthias Noback (20)

PDF
Service abstractions - Part 1: Queries
PDF
Hexagonal Symfony - SymfonyCon Amsterdam 2019
PDF
Advanced web application architecture - PHP Barcelona
PDF
A testing strategy for hexagonal applications
PDF
Advanced web application architecture - Talk
PDF
DPC 2019, Amsterdam: Beyond design patterns and principles - writing good OO ...
PDF
Layers, ports and adapters
PDF
Beyond design principles and patterns (muCon 2019 edition)
PDF
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
PDF
Advanced web application architecture Way2Web
PDF
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
PDF
Beyond Design Principles and Patterns
PDF
Building Autonomous Services
PDF
Advanced Application Architecture Symfony Live Berlin 2018
PDF
Designing for Autonomy
PDF
Docker workshop
PDF
Docker swarm workshop
PDF
Docker compose workshop
PDF
Building autonomous services
PDF
Designing for autonomy
Service abstractions - Part 1: Queries
Hexagonal Symfony - SymfonyCon Amsterdam 2019
Advanced web application architecture - PHP Barcelona
A testing strategy for hexagonal applications
Advanced web application architecture - Talk
DPC 2019, Amsterdam: Beyond design patterns and principles - writing good OO ...
Layers, ports and adapters
Beyond design principles and patterns (muCon 2019 edition)
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Advanced web application architecture Way2Web
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Beyond Design Principles and Patterns
Building Autonomous Services
Advanced Application Architecture Symfony Live Berlin 2018
Designing for Autonomy
Docker workshop
Docker swarm workshop
Docker compose workshop
Building autonomous services
Designing for autonomy
Ad

Recently uploaded (20)

PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Nekopoi APK 2025 free lastest update
PPTX
Introduction to Artificial Intelligence
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
medical staffing services at VALiNTRY
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
AI in Product Development-omnex systems
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
ai tools demonstartion for schools and inter college
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
System and Network Administration Chapter 2
PPT
Introduction Database Management System for Course Database
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Nekopoi APK 2025 free lastest update
Introduction to Artificial Intelligence
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
medical staffing services at VALiNTRY
How to Migrate SBCGlobal Email to Yahoo Easily
Which alternative to Crystal Reports is best for small or large businesses.pdf
Odoo POS Development Services by CandidRoot Solutions
Upgrade and Innovation Strategies for SAP ERP Customers
Operating system designcfffgfgggggggvggggggggg
AI in Product Development-omnex systems
2025 Textile ERP Trends: SAP, Odoo & Oracle
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Odoo Companies in India – Driving Business Transformation.pdf
ai tools demonstartion for schools and inter college
L1 - Introduction to python Backend.pptx
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
System and Network Administration Chapter 2
Introduction Database Management System for Course Database
Internet Downloader Manager (IDM) Crack 6.42 Build 41

Rector fireside chat - PHPMiNDS meetup