The Top 10 things
That any pro PHP developer should be doing
@Cakper
@PhpersPL
1. Test
Don’t be
F5 kind-of-tester
Be lazy
in a good way
UI Tests
✓ Hard to debug
✓ Not efficient
✓ Easy to break
✓ Combinatorial explosion of tests
(a + b)! > a! + b!
Tools available in PHP
- PhpUnit
- PhpSpec
- Behat
- Mink
- Codeception
10 minutes rule
1 minute rule
Never trust
your suite
Validate
business value
Testing teaches
you how to design
2. Design
Learn Design
Patterns
Gang of Four
Creational
- Abstract Factory
- Factory Method
- Builder Pattern
Structural
- Adapter
- Bridge
- Decorator
- Facade
- Proxy
Behavioral
- Command
- Mediator
- Observer
- State
- Strategy
Domain-Driven
Design
it’s about focusing on the domain
and letting it affect the software
very much
Jimmy Nilsson
Functional
programming
Design better
functions
3. Practice
Practice does not make perfect.
Only perfect practice makes perfect.
Vince Lombardi
Deliberate practice
10 000 hours
Dreyfus model of skill acquisition
1. Novice
2. Advanced Beginner
3. Competent
4. Proficient
5. Expert
Code Kata
Code Kata
- Time to improve your skills
- Focus on the process, not results
- Practice
- Repetition
- TDD
Code Kata
- Uninterrupted
- Challenging
- No pressure
- Mistakes are good
- Baby steps
Kata Ideas
- String Calculator
- Code Breaker
- Argument Parser
- Bowling Game
- Fizz Buzz
Code Retreat
Code Dojo
Code Club
4. Reuse
PHP-FIG
PSR-0
PSR-4
Composer
& Packagist
Packages	registered:	77 263	
	Versions	available:	374 917	
	Packages	installed:	1 325 712 827	
(since	2012-04-13)
Satis
Toran Proxy
5. Contribute
Why Contribute?
✓ Gain Experience
✓ Build Resume
✓ Give Back
✓ Be Recognised
✓ Fulfil Ambitions
GitHub
Blog
IRC
StackOverflow
Facebook Groups
Speak
Organise a Meetup
6. Network
Conferences
Learn
Get Inspired
Meet People
Give Feedback
Always
Twitter
Direct access to
people and brands
7. Tools
Tools are part of you
IDE
Learn how to use it
efficiently
But know what happens
under the hood!
Coding Standards
php-cs-fixer
Profiling
& Debugging
Xdebug
Phpdbg
Xhprof
Blackfire
Shell
Fish
Provisioning
Hosting
Digital Ocean
Heroku
8. Continuity
Continuous
Integration
Code Reviews
Jenkins
Travis CI
Scrutinizer CI
Continuous
Deployment
Capistrano
Continuous
Delivery
Codeship
Continuous
Improvement
Always leave the campground
cleaner than you found it.
Boy Scout Rule
Continuous
Learning
9. Learn
Invest in yourself!
Me
Read
Technical books
- Clean Code / The Clean Coder
- TDD by Example
- Growing Object-Oriented Software, Guided By Tests
- Domain-Driven Design
- Working Effectively with Legacy Code
- Agile Software Development PP&P
Management & Methodologies
- The Lean Startup
- Impact Mapping
- The Deadline
- Rework
- Getting Things Done
Psychological books
- Thinking Fast & Slow
- The Power of Habit
- Outliers
- The Kaizen Way
Study
Study Online
- Coursera/CanopyLab
- Open University
- MIT/Stanford Websites
10. Team Player
Communication
Don’t be a d***
when reviewing code
Pair Programming
Synergy effect
1 + 1 > 2
Question
Compromise
Deliver
Be Pragmatic
Recap
1. Test
2. Design
3. Practice
4. Reuse
5. Contribute
6. Network
7. Tools
8. Continuity
9. Learn
10. Team Player
Thanks!

@cakper

The top 10 things that any pro PHP developer should be doing