39
5 BEST PRACTICES FOR DEVELOPMENT 5 best practices for (web/ software) development

5 best practices for (web/ software) development (2010)

Embed Size (px)

DESCRIPTION

Some of the best practices we've acquired while developing for the web! A presentation for students Communication and Multimedia Design at Noordelijke Hogeschool Leeuwarden in their Discover Web2.0 lecture series.

Citation preview

Page 1: 5 best practices for (web/ software) development (2010)

5 BEST PRACTICES FOR DEVELOPMENT

5 best practices for (web/ software) development

Page 2: 5 best practices for (web/ software) development (2010)

ERWIN ELLING

Page 3: 5 best practices for (web/ software) development (2010)

@erwinelling

“passionate web versatilist”

Page 4: 5 best practices for (web/ software) development (2010)

5 BEST PRACTICES

Page 5: 5 best practices for (web/ software) development (2010)

1:MODEL VIEW

CONTROLLER

http://www.flickr.com/photos/wardofsky/2350781947/

Page 6: 5 best practices for (web/ software) development (2010)

we use the django framework (for python)

Page 7: 5 best practices for (web/ software) development (2010)

there’s also rails (for ruby)

Page 8: 5 best practices for (web/ software) development (2010)

and e.g. cakephp (for php)also other frameworks (non-MVC) save lots of time: ARP (for flash), jquery & prototype (for javascript), ...trend towards more and more abstraction and more human readable code

Page 9: 5 best practices for (web/ software) development (2010)

models

Page 10: 5 best practices for (web/ software) development (2010)

url dispatcher

Page 11: 5 best practices for (web/ software) development (2010)

controllers (called views in django; django prefers to call their framework: MTV)

Page 12: 5 best practices for (web/ software) development (2010)

view (template in django)

Page 13: 5 best practices for (web/ software) development (2010)

2: DO NOTREINVENTTHE WHEEL

http://www.flickr.com/photos/european_patent_office/3364865051

reuse the stuff that’s readily available

Page 14: 5 best practices for (web/ software) development (2010)

DJANGOSNIPPETS

django pluggables for code

Page 15: 5 best practices for (web/ software) development (2010)

google groups for help

Page 16: 5 best practices for (web/ software) development (2010)

do not develop it yourself when it’s already available: ning

Page 17: 5 best practices for (web/ software) development (2010)

wordpress

Page 18: 5 best practices for (web/ software) development (2010)

again frameworks: pinax, framework (combination of apss) on top of django

Page 19: 5 best practices for (web/ software) development (2010)

used pinax for jijmaaktgeschiedenis.nuwanted to add twitter...

Page 20: 5 best practices for (web/ software) development (2010)

someone else had done most of the work for me

Page 21: 5 best practices for (web/ software) development (2010)

hardly had to code myself: just added this; easy

Page 22: 5 best practices for (web/ software) development (2010)

3: DEVELOPMENT INFRASTRUCTURE & VERSION

CONTROL

http://www.flickr.com/photos/11397615@N00/3306159672/

different environments in your infrastructureDevelopment, Test, Acceptance, ProductionIn Dutch OTAP: Ontwikkel, Test, Acceptatie, Productie

Page 23: 5 best practices for (web/ software) development (2010)

http://www.flickr.com/photos/parsingphase/3294364709/version control, e.g. SVN, git, mercurial

Page 24: 5 best practices for (web/ software) development (2010)

blame someone for mistakes! oops, i did it again

Page 25: 5 best practices for (web/ software) development (2010)

let the person who makes mistakes pay for the team’s beers!

Page 26: 5 best practices for (web/ software) development (2010)

4: AUTOMATEhttp://www.flickr.com/photos/denis_fox/3537539725/

think about how many repetitive tasks you perform!

Page 27: 5 best practices for (web/ software) development (2010)

this doesn’t look as much work, but i made some faults and have to do this 10 times a daynow i can do this with one command!

Page 28: 5 best practices for (web/ software) development (2010)

use shortcuts for repeatable tasks

Page 29: 5 best practices for (web/ software) development (2010)

capistrano (in ruby)e.g. for automating deployment and testingrollbacks when things go wrong

Page 30: 5 best practices for (web/ software) development (2010)

buildout, in python

Page 31: 5 best practices for (web/ software) development (2010)

automation is good for avoiding problems. letting people fool around while sudo’ing is dangerous

Page 32: 5 best practices for (web/ software) development (2010)

e.g. sudo rm -rfoops!

Page 33: 5 best practices for (web/ software) development (2010)

5: CLEAN CODE

http://www.flickr.com/photos/ezu/277341190/costs some time at first, saves lots of time later

Page 34: 5 best practices for (web/ software) development (2010)

comments

Page 35: 5 best practices for (web/ software) development (2010)

refactor, refactor, refactorno todo’s in codeget rid of ugly stuffno hacks to “solve” problems

Page 36: 5 best practices for (web/ software) development (2010)

how many fucks in google code?

Page 37: 5 best practices for (web/ software) development (2010)

DRY

http://www.flickr.com/photos/plinton/21543765220Don’tRepeatYourself

Page 38: 5 best practices for (web/ software) development (2010)

fat models, skinny controllers

Page 39: 5 best practices for (web/ software) development (2010)

pair programming, code reviews, read other’s code