5 best practices for (web/ software) development (2010)
-
Upload
erwin-elling -
Category
Technology
-
view
4.242 -
download
2
description
Transcript of 5 best practices for (web/ software) development (2010)
![Page 1: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/1.jpg)
5 BEST PRACTICES FOR DEVELOPMENT
5 best practices for (web/ software) development
![Page 2: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/2.jpg)
ERWIN ELLING
![Page 3: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/3.jpg)
@erwinelling
“passionate web versatilist”
![Page 4: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/4.jpg)
5 BEST PRACTICES
![Page 5: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/5.jpg)
1:MODEL VIEW
CONTROLLER
http://www.flickr.com/photos/wardofsky/2350781947/
![Page 6: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/6.jpg)
we use the django framework (for python)
![Page 7: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/7.jpg)
there’s also rails (for ruby)
![Page 8: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/8.jpg)
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)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/9.jpg)
models
![Page 10: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/10.jpg)
url dispatcher
![Page 11: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/11.jpg)
controllers (called views in django; django prefers to call their framework: MTV)
![Page 12: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/12.jpg)
view (template in django)
![Page 13: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/13.jpg)
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)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/14.jpg)
DJANGOSNIPPETS
django pluggables for code
![Page 15: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/15.jpg)
google groups for help
![Page 16: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/16.jpg)
do not develop it yourself when it’s already available: ning
![Page 17: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/17.jpg)
wordpress
![Page 18: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/18.jpg)
again frameworks: pinax, framework (combination of apss) on top of django
![Page 19: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/19.jpg)
used pinax for jijmaaktgeschiedenis.nuwanted to add twitter...
![Page 20: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/20.jpg)
someone else had done most of the work for me
![Page 21: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/21.jpg)
hardly had to code myself: just added this; easy
![Page 22: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/22.jpg)
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)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/23.jpg)
http://www.flickr.com/photos/parsingphase/3294364709/version control, e.g. SVN, git, mercurial
![Page 24: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/24.jpg)
blame someone for mistakes! oops, i did it again
![Page 25: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/25.jpg)
let the person who makes mistakes pay for the team’s beers!
![Page 26: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/26.jpg)
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)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/27.jpg)
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)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/28.jpg)
use shortcuts for repeatable tasks
![Page 29: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/29.jpg)
capistrano (in ruby)e.g. for automating deployment and testingrollbacks when things go wrong
![Page 30: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/30.jpg)
buildout, in python
![Page 31: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/31.jpg)
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)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/32.jpg)
e.g. sudo rm -rfoops!
![Page 33: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/33.jpg)
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)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/34.jpg)
comments
![Page 35: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/35.jpg)
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)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/36.jpg)
how many fucks in google code?
![Page 37: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/37.jpg)
DRY
http://www.flickr.com/photos/plinton/21543765220Don’tRepeatYourself
![Page 38: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/38.jpg)
fat models, skinny controllers
![Page 39: 5 best practices for (web/ software) development (2010)](https://reader034.fdocuments.us/reader034/viewer/2022051815/540903da8d7f723b058b45e5/html5/thumbnails/39.jpg)
pair programming, code reviews, read other’s code