• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Railsify your web development
 

Railsify your web development

on

  • 1,623 views

My presentation on Scandinavian Developer Conference

My presentation on Scandinavian Developer Conference

Statistics

Views

Total Views
1,623
Views on SlideShare
1,485
Embed Views
138

Actions

Likes
2
Downloads
0
Comments
0

2 Embeds 138

http://blog.thomaslundstrom.com 135
http://feeds2.feedburner.com 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Railsify your web development Railsify your web development Presentation Transcript

    • Railsify your web development Thomas Lundström, Softhouse @thomaslundstrom Scandinavian Developer Conference, Gothenburg April 4, 2011 http://www.flickr.com/photos/mtl_shag/320960018/måndag den 4 april 2011
    • Agenda • About this session • 12 Practices http://www.flickr.com/photos/puntodevista/84796578/måndag den 4 april 2011
    • About this session http://www.flickr.com/photos/78986993@N00/3335393740/måndag den 4 april 2011
    • About this session • Day job: consultant, .NET/Java • Rails dev at night http://www.flickr.com/photos/78986993@N00/3335393740/måndag den 4 april 2011
    • About this session • Ruby on Rails is • Simple • Productive • Easy http://www.flickr.com/photos/78986993@N00/3335393740/måndag den 4 april 2011
    • About this session • This started me asking why http://www.flickr.com/photos/78986993@N00/3335393740/måndag den 4 april 2011
    • About this session • Answer: part practices, part Ruby • Can we steal the practices? http://www.flickr.com/photos/78986993@N00/3335393740/måndag den 4 april 2011
    • About this session • Disclaimer: the practices aren’t invented in Rails, but they are in the culture http://www.flickr.com/photos/78986993@N00/3335393740/måndag den 4 april 2011
    • 12 Practices http://www.flickr.com/photos/kapungo/1408329358/måndag den 4 april 2011
    • BDD http://www.flickr.com/photos/fredcoree/301890340/måndag den 4 april 2011
    • BDD • Writing automated acceptance test suites • Focus on users’ needs • Drive the outer layer (UI, Web Services, API) http://www.flickr.com/photos/fredcoree/301890340/måndag den 4 april 2011
    • BDD • Executable specifications http://www.flickr.com/photos/fredcoree/301890340/måndag den 4 april 2011
    • BDD • .NET: Specflow/Cucumber • Java: JBehave/Cucumber • Application- and tech-specific driver http://www.flickr.com/photos/fredcoree/301890340/måndag den 4 april 2011
    • TDD http://www.flickr.com/photos/mroach/2448878900/måndag den 4 april 2011
    • TDD • We all know this, right? • However ... how to do it well? http://www.flickr.com/photos/mroach/2448878900/måndag den 4 april 2011
    • TDD • “Build Quality In” (Deming) • Hands-on process that helps designing the software http://www.flickr.com/photos/mroach/2448878900/måndag den 4 april 2011
    • TDD • TDD is an acquired skill • One or two in the team spearheads the TDD drive http://www.flickr.com/photos/mroach/2448878900/måndag den 4 april 2011
    • MVC http://www.flickr.com/photos/spaceamoeba/3044883638/måndag den 4 april 2011
    • MVC • Splitting logic into (Domain) Model,View, Controller http://www.flickr.com/photos/spaceamoeba/3044883638/måndag den 4 april 2011
    • MVC • Splitting of different types of logic • Known structure in your web app http://www.flickr.com/photos/spaceamoeba/3044883638/måndag den 4 april 2011
    • MVC • Disentangle • Refactor • Un-spaghettize http://www.flickr.com/photos/spaceamoeba/3044883638/måndag den 4 april 2011
    • Collaborative database development http://www.flickr.com/photos/tomsaint/3051540613/måndag den 4 april 2011
    • Collaborative database development • Easy setup of a private database • Your structural change is yours only until committed http://www.flickr.com/photos/tomsaint/3051540613/måndag den 4 april 2011
    • Collaborative database development • Simple database refactorings • “I can’t work since the change made by John put the DB in a strange state” http://www.flickr.com/photos/tomsaint/3051540613/måndag den 4 april 2011
    • Collaborative database development • Migrations • .NET: Migrator.NET • Java: Flyway, DBDeploy, mybatis (comparison at https://code.google.com/ p/flyway/) http://www.flickr.com/photos/tomsaint/3051540613/måndag den 4 april 2011
    • App-private database http://www.flickr.com/photos/evert-jan/72568626/måndag den 4 april 2011
    • App-private database • Previously: devs in one team share one DB • Here: different products share one DB • Integration #fail http://www.flickr.com/photos/evert-jan/72568626/måndag den 4 april 2011
    • App-private database • One more degree of freedom http://www.flickr.com/photos/evert-jan/72568626/måndag den 4 april 2011
    • App-private database • Long-term architectural work... http://www.flickr.com/photos/evert-jan/72568626/måndag den 4 april 2011
    • RESTful URL:s http://www.flickr.com/photos/jimg944/3202247839måndag den 4 april 2011
    • RESTful URL:s • Readable and understandable HTTP-based interface • GET http://app.com/users/thomas/view • PUT http://app.com/users/thomas/ edit.json http://www.flickr.com/photos/jimg944/3202247839måndag den 4 april 2011
    • RESTful URL:s • No cognitive mismatch of App vs. URL • Uniform, standard interface • Stateless • Cacheable http://www.flickr.com/photos/jimg944/3202247839måndag den 4 april 2011
    • RESTful URL:s • Thoughtful URL design http://www.flickr.com/photos/jimg944/3202247839måndag den 4 april 2011
    • Devops http://www.flickr.com/photos/jimg944/3123212129/måndag den 4 april 2011
    • Devops • Dev team = Ops team • T-shaped people http://www.flickr.com/photos/jimg944/3123212129/måndag den 4 april 2011
    • Devops • Removal of Ops-Devs wall http://www.flickr.com/photos/jimg944/3123212129/måndag den 4 april 2011
    • Devops • Organizational change http://www.flickr.com/photos/jimg944/3123212129/måndag den 4 april 2011
    • Convention over configuration http://www.flickr.com/photos/aforero/339031109/måndag den 4 april 2011
    • Convention over configuration • Minimizing the configuration • Feature level/code level http://www.flickr.com/photos/aforero/339031109/måndag den 4 april 2011
    • Convention over configuration • Easier to set up and use the app http://www.flickr.com/photos/aforero/339031109/måndag den 4 april 2011
    • Convention over configuration • Remove default configuration • Take decisions! http://www.flickr.com/photos/aforero/339031109/måndag den 4 april 2011
    • DRY http://www.flickr.com/photos/paulmannix/286817119/måndag den 4 april 2011
    • DRY • Don’t Repeat Yourself • Remember: not only for source code! http://www.flickr.com/photos/paulmannix/286817119/måndag den 4 april 2011
    • DRY - SASS .content-navigation { border-color: #3bbfce; color: #2b9eab; } .border { padding: 8px; margin: 8px; border-color: #3bbfce; } http://www.flickr.com/photos/paulmannix/286817119/måndag den 4 april 2011
    • DRY - SASS $blue: #3bbfce $margin: 16px .content-navigation border-color: $blue color: darken($blue, 9%) .border padding: $margin / 2 margin: $margin / 2 border-color: $blue http://www.flickr.com/photos/paulmannix/286817119/måndag den 4 april 2011
    • DRY • Cleaner code http://www.flickr.com/photos/paulmannix/286817119/måndag den 4 april 2011
    • DRY • Smart selection of tools http://www.flickr.com/photos/paulmannix/286817119/måndag den 4 april 2011
    • Scaling out http://www.flickr.com/photos/geraldford/3078861139/måndag den 4 april 2011
    • Scaling out • Don’t buy bigger servers, buy more! http://www.flickr.com/photos/geraldford/3078861139/måndag den 4 april 2011
    • Scaling out • Cheaper scaling http://www.flickr.com/photos/geraldford/3078861139/måndag den 4 april 2011
    • Scaling out • Shared-nothing • No Session http://www.flickr.com/photos/geraldford/3078861139/måndag den 4 april 2011
    • OSS http://www.flickr.com/photos/wordridden/3107810417/måndag den 4 april 2011
    • OSS • Get along with the OSS culture • Use & publish! http://www.flickr.com/photos/wordridden/3107810417/måndag den 4 april 2011
    • OSS • Publishing: developer good-will • Using: ready-made functionality http://www.flickr.com/photos/wordridden/3107810417/måndag den 4 april 2011
    • OSS • Use 3rd party plugins in infrastructure • Harvest infrastructure • .NET devs: don’t focus on MS tools only http://www.flickr.com/photos/wordridden/3107810417/måndag den 4 april 2011
    • Reference management http://www.flickr.com/photos/saragoldsmith/2896007790/måndag den 4 april 2011
    • Reference management • Structured dependency management http://www.flickr.com/photos/saragoldsmith/2896007790/måndag den 4 april 2011
    • Reference management • Simple and easy dependency mgmt • Finding • Updating • Control of transitive deps http://www.flickr.com/photos/saragoldsmith/2896007790/måndag den 4 april 2011
    • Reference management • Java: Maven/Ivy • .NET: NuGet/OpenWrap http://www.flickr.com/photos/saragoldsmith/2896007790/måndag den 4 april 2011
    • What not to use? • ActiveRecord pattern • Scaffolds http://www.flickr.com/photos/deapeajay/2143573706/måndag den 4 april 2011
    • Thanks! • Thomas Lundström, Softhouse • thomas.lundstrom@softhouse.se • @thomaslundstrom • http://blog.thomaslundstrom.com http://www.flickr.com/photos/mtl_shag/320960018/måndag den 4 april 2011