Dotting your i's and crossing your t's - how to make good code great

Dotting your i's and crossing your t's - how to make good codeĀ great

Presented on October 3rd 2015 at the PHP North West, Manchester, United Kingdom.
http://conference.phpnw.org.uk/phpnw15/
---------------------------------------------------------------
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 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/
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/
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/

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/15432
Contact me: https://twitter.com/jrf_nl

2776198ea9584b6c0d4b494293b8d635?s=128

Juliette Reinders Folmer

October 03, 2015
Tweet