building rock solid software in the real world

42
Building rock solid software in the real world Improving team workflow to improve your software http://www.flickr.com/photos/preef/32995286/

Upload: omni-adams

Post on 18-Nov-2014

521 views

Category:

Technology


2 download

DESCRIPTION

Though I doubt they'll be that useful without the talk (http://www.ustream.tv/recorded/18398170), here's my slides.

TRANSCRIPT

Page 1: Building rock solid software in the real world

Building rock solid software

in the real world

Improving teamworkflow to

improve your software

http://www.flickr.com/photos/preef/32995286/

Page 2: Building rock solid software in the real world

Omni Adams@omnicolor

Page 3: Building rock solid software in the real world

About me

Page 4: Building rock solid software in the real world

About me

Page 5: Building rock solid software in the real world

About me

Page 6: Building rock solid software in the real world

About me

Page 7: Building rock solid software in the real world

About me

Page 8: Building rock solid software in the real world

http://www.flickr.com/photos/nagamori/56038263/

Page 9: Building rock solid software in the real world
Page 10: Building rock solid software in the real world

Planning

Page 11: Building rock solid software in the real world

Coding

http://www.angryduck.com/pictures/2010_11/Coding_Drunk.jpg

Page 12: Building rock solid software in the real world

Automated checks

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

Page 13: Building rock solid software in the real world

Code reviews

Page 14: Building rock solid software in the real world

Submitting your code

Page 15: Building rock solid software in the real world

$ cd /pub$ more beer

Code gets built You get tanked

After code is submitted

Page 16: Building rock solid software in the real world

Automatic checks

Page 17: Building rock solid software in the real world

Automated checks

• Lint• PHPUnit• PHP_CodeSniffer• PHPMD• PHPCPD• PHPDCD• Code coverage

Page 18: Building rock solid software in the real world

http://www.inquisitr.com/88424/a-hint-you-might-really-need-to-find-a-life-collect-bellybutton-lint/

Automatic checks

Lintphp -l

Page 19: Building rock solid software in the real world

Automatic checks

PHPUnit

Page 20: Building rock solid software in the real world

Automatic checks

PHPCode_Sniffer

Page 21: Building rock solid software in the real world

Automatic checks

http://itsnotenoughitstoomuch.blogspot.com/2011/02/real-mess.htmlhttp://phpmd.org/ 

Page 22: Building rock solid software in the real world

Automatic checks

PHPCPD

Page 23: Building rock solid software in the real world

PHPDCD

Automatic checks

Page 24: Building rock solid software in the real world

Automatic checks

Code Coverage

Page 25: Building rock solid software in the real world

Code reviews

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

Page 26: Building rock solid software in the real world

http://www.reviewboard.org

Code reviews

Page 27: Building rock solid software in the real world

http://codereview.appspot.com

Code reviews

Page 28: Building rock solid software in the real world

Code reviews

Page 29: Building rock solid software in the real world

Code reviews

Page 30: Building rock solid software in the real world

Code reviews

Page 31: Building rock solid software in the real world

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

Page 32: Building rock solid software in the real world

Style guides

http://www.forwardyouremails.com/wp-content/uploads/2010/09/Funny-Hair-Style.jpg

Page 33: Building rock solid software in the real world

Style guides

Page 34: Building rock solid software in the real world

Style guides

•Make your own•Use existing

Page 35: Building rock solid software in the real world

Style guides

Page 36: Building rock solid software in the real world

Style guides

Page 37: Building rock solid software in the real world

Style guides

<?php or <? or <%

$variableName or $variable_name

ClassName or Class_Name

Line length

Ternary operator

Documentation

Page 38: Building rock solid software in the real world

Submitting code

Page 39: Building rock solid software in the real world

After submitting

Page 40: Building rock solid software in the real world

After submitting

Page 41: Building rock solid software in the real world

After submitting

Page 42: Building rock solid software in the real world