Transcript

The Top 10 thingsThat 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

Packagesregistered:77 263Versionsavailable:374 917Packagesinstalled:1 325 712 827

(since2012-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


Top Related