Presented on June 2nd 2016 at the GroningenPHP Meetup, Groningen, The Netherlands.
http://www.meetup.com/GroningenPHP/events/228763161/
---------------------------------------------------------------
Ever had to go back to code you did over a year ago ? And… did you like it ?
We all *love* well documented, testable, easily readable and understandable code. But how do you write it ? and what tools are available to help you ?
What can you do *now* to make your life and the life of your successor(s) and users easier ?
Learn how to avoid a build up of technical debt and make your good code awesome!
---------------------------------------------------------------
If you download the slides, the links should be clickable. Unfortunately they don't seem to be in the online deck, so here's a list of the links:
Slide 2:
Pluralsight: https://www.pluralsight.com/courses/regular-expressions-fundamentals
Slide 10
Technical debt in PHP projects: http://blog.insight.sensiolabs.com/2014/11/04/technical-debt-relevant-projects.html
Slide 11
Types of Technical Debt: http://www.martinfowler.com/bliki/TechnicalDebtQuadrant.html
Slide 12
How Quality affects software costs: http://www.sqgne.org/presentations/2010-11/Jones-Nov-2010.pdf
Slide 14
PHPUnderControl: http://phpundercontrol.org/
Sonar: http://www.sonarsource.com/
Slide 19
PSRs: http://www.php-fig.org/
Slide 20 - Debugging tools:
XDEBUG: http://xdebug.org/
PHP lint: http://www.icosaedro.it/phplint/
JS lint + hint: http://www.jslint.com/ , http://www.javascriptlint.com/ , http://www.jshint.com/
Firebug: http://getfirebug.com/
Profile: https://github.com/joehoyle/Time-Stack
Slide 21 - Educate yourself:
PHP manual: http://php.net/manual
PHP The Right Way: http://phptherightway.com/
ClearPHP: https://github.com/dseguy/clearPHP/blob/master/rules/README.md
phpcheatsheets.com: http://phpcheatsheets.com/
OWASP top 10: http://owasp.org/
Slide 28
PHP Code Sniffer: http://pear.php.net/package/PHP_CodeSniffer/
PHP CS-Fixer: http://cs.sensiolabs.org/
Slide 30
PHP cross-version compatibility ruleset for PHPCS: https://github.com/wimg/PHPCompatibility
Slide 38
PHPDocumentor: http://www.phpdoc.org/
PHPDox: http://phpdox.de/
ApiGen: http://www.apigen.org/
Slide 43
PHPUnit: http://phpunit.de/
Slide 45
Codeception: http://codeception.com/
Behat: http://behat.org/
PHPSpec: http://www.phpspec.net/
Selenium: http://docs.seleniumhq.org/
Slide 48
pDepend: http://pdepend.org/
PHPLOC: https://github.com/sebastianbergmann/phploc
Slide 49
PHP Mess Detector: http://phpmd.org/
Slide 50
PHP Copy Paste Detector: https://github.com/sebastianbergmann/phpcpd
Slide 51
PHP Dead Code Detector: https://github.com/sebastianbergmann/phpdcd
Slide 56
Git hooks: http://git-scm.com/docs/githooks.html and http://git-scm.com/book/en/Customizing-Git-Git-Hooks
Phing: http://www.phing.info/
Robo: http://robo.li/
GrumPHP: https://github.com/phpro/grumphp
Grunt: http://gruntjs.com/
Capistrano: http://capistranorb.com/
Gulp: http://gulpjs.com/
Slide 57:
Sonar: http://www.sonarsource.com/
Jenkins: http://jenkins-ci.org/
Travis: https://travis-ci.org/
Scrutinizer CI: http://scrutinizer-ci.com/
Circle CI: https://circleci.com/
PHP-CI: https://github.com/block8/phpci
Atlassian Bamboo: https://www.atlassian.com/software/bamboo
Exakat: http://www.exakat.io/online-demo/
Codeship: https://codeship.com/
Slide 62
Geek and Poke: http://geek-and-poke.com/
OSNews: http://osnews.com/comics
Slide 63:
Slides - well, you found them already ;-)
Feedback: https://joind.in/18322
Contact me: https://twitter.com/jrf_nl