starting a new ruby on rails development
DESCRIPTION
Starting a new ruby on rails development can be confusion. I've tried, for this talk to summarize all the different choices you'll have to make.TRANSCRIPT
![Page 1: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/1.jpg)
Starting new Rails development ?
not_act_as_sheep
![Page 2: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/2.jpg)
Ruby
![Page 3: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/3.jpg)
Ruby 1.8.x
● Exists since 2003
● Current stable version
● All gems should be compatible
● Slowest version
● Problems with garbage collector
![Page 4: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/4.jpg)
Ruby Enterprise edition
● Developed by Phusion team
● Fully compatible with Ruby 1.8.6
● Memory print optimisation
● Garbage collection improvement
![Page 5: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/5.jpg)
Ruby 1.9.x
● Stable (since 1.9.1)
● Memory print improvement
● Garbage collector improvement
● Not all gems are compatible
![Page 6: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/6.jpg)
Web server and App server
![Page 7: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/7.jpg)
Web servers and App servers
● Web server● Apache● Lighthttpd● Nginx
● App server● Mongrel● Thin● Passenger (aka Mod_Rails)
![Page 8: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/8.jpg)
Databases
![Page 9: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/9.jpg)
Different databases available
● Sqlite3
● Mysql
● PostgreSql
● Oracle
![Page 10: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/10.jpg)
Testing
![Page 11: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/11.jpg)
TDD vs BDD
● What's Test-Driven Development ?
● Software design method● Short development iteration
● What's Behaviour-Driven Development ?● Software design method● Use comprehensive specification in your native
language
![Page 12: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/12.jpg)
Testing Frameworks (and friends)
● Testing frameworks
● Test::Unit
● Rspec
● Shoulda
● Mocking
● Mocha
● Flexmock
● RR
● Working with fixtures
● Fixtures
● Factory girl
● Machinist
![Page 13: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/13.jpg)
Templating
![Page 14: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/14.jpg)
Templating format
● Html/Erb
● HAML
● Textile (using RedCloth)
● Markaby
● Markdown (using BlueCloth)
![Page 15: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/15.jpg)
Plugins
![Page 16: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/16.jpg)
Authentication
● Restful_Authentication
● Historically the oldest● Probably currently the most used● The most complete
● Cleareance
● Easy setup● Easy syntax
● Authlogic
● Lighter implementation
![Page 17: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/17.jpg)
Attachment
● Attachement_fu● Historically the first Rails attachment plugin● Polymorphism● Complex but customizable
● Paperclip● Newer● Lighter● No polymorphism● Works without Rmagick
![Page 18: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/18.jpg)
Other useful plugins
● Will_paginate
● act_as_rated
● act_as_comentable
● Thinking Sphinx
![Page 19: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/19.jpg)
Conclusion
![Page 20: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/20.jpg)
What should I choose ?
There is not better solution than the one you're comfortable with !!
not_act_as_sheep
![Page 21: Starting a new ruby on rails development](https://reader033.vdocuments.net/reader033/viewer/2022060111/556669a6d8b42a3d3f8b4e2d/html5/thumbnails/21.jpg)
Slides provided by Nicolas Alpi
Credits
http://www.flickr.com/photos/kattenmeisje/501105007/Nuovola icons