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

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

Post on 15-Apr-2017

370 views

Category:

Engineering

1 download

TRANSCRIPT

  • The Top 10 thingsThat any pro PHP developer should be doing

    @Cakper

  • @PhpersPL

  • 1. Test

  • Dont 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

  • its 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:77263Versionsavailable:374917Packagesinstalled:1325712827

    (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

  • Dont 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

    https://twitter.com/cakper