Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building Rock Solid Software in the Real World

3d55a954b25a01f3f895eb20f7c48714?s=47 Omni Adams
November 08, 2011

Building Rock Solid Software in the Real World

As a professional developer, you already do all of the best practices. You store your code in a source control and write unit tests. You already know all of the patterns and when to use them. Your code is perfect and beautiful. Then you hire another developer. He puts his braces in the wrong place and uses different formating then you. He keeps committing broken code to your code base. Then you add another two members to your team along with a junior developer. All of your beautiful code is getting ugly, brittle, poorly documented, and hard to maintain. We'll discuss some of the pitfalls and strategies when developing software in the real world, from style guides to code reviews to automated checks that keep your team from imploding in ego-driven angst.

3d55a954b25a01f3f895eb20f7c48714?s=128

Omni Adams

November 08, 2011
Tweet

Transcript

  1. Building rock solid software in the real world Improving team

    workflow to improve your software http://www.flickr.com/photos/preef/32995286/
  2. Omni Adams @omnicolor

  3. About me

  4. About me

  5. About me

  6. About me

  7. About me

  8. http://www.flickr.

  9. None
  10. Planning

  11. Coding http://www.angryduck.com/pictures/2010_11/Coding_Drunk.

  12. Automated checks http://www.bbc.co.uk/comedy/littlebritain/images/gallery/sunsearchers.jpg

  13. Code reviews

  14. Submitting your code

  15. $ cd /pub $ more beer Code gets built You

    get tanked After code is submitted
  16. Automatic checks

  17. Automated checks •Lint •PHPUnit •PHP_CodeSniffer •PHPMD •PHPCPD •PHPDCD •Code coverage

  18. http://www.inquisitr.com/88424/a-hint-you-might-really-need-to-find-a-life-collect-bellybutton-lint/ Automatic checks Lint php -l

  19. Automatic checks PHPUnit

  20. Automatic checks PHPCode_Sniffer

  21. Automatic checks http://phpmd.

  22. Automatic checks PHPCPD

  23. PHPDCD Automatic checks

  24. Automatic checks Code Coverage

  25. Code reviews http://cache.ohinternet.com/images/b/b1/Doing-it-wrong.jpg

  26. http://www.reviewboard.org Code reviews

  27. http://codereview.appspot.com Code reviews

  28. Code reviews

  29. Code reviews

  30. Code reviews

  31. Things the tools can't catch: •Logic errors •Off-by-one errors •Obvious

    performance problems •Refactoring opportunities •Bad/misleading documentation Things the tools missed: •Style problems •Syntax errors •Typos •Unreachable code •Useless tests •Missing tests Code reviews
  32. Style guides http://www.forwardyouremails.com/wp-content/uploads/2010/09/Funny-Hair-Style.jpg

  33. Style guides

  34. Style guides •Make your own •Use existing

  35. Style guides

  36. Style guides

  37. Style guides <?php or <? or <% $variableName or $variable_name

    ClassName or Class_Name Line length Ternary operator Documentation
  38. Submitting code

  39. Update dashboards Build documentation Run unit tests Calculate code coverage

    Build reports Sends emails Repository Build server After submitting
  40. After submitting

  41. After submitting

  42. None