SlideShare uma empresa Scribd logo
1 de 61
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/3202247839
må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/3202247839
må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/3202247839
måndag den 4 april 2011
RESTful URL:s


                    • Thoughtful URL design


                                              http://www.flickr.com/photos/jimg944/3202247839
må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

Mais conteúdo relacionado

Semelhante a Railsify your web development

让开发也懂前端
让开发也懂前端让开发也懂前端
让开发也懂前端
lifesinger
 
Using+javascript+to+build+native+i os+applications
Using+javascript+to+build+native+i os+applicationsUsing+javascript+to+build+native+i os+applications
Using+javascript+to+build+native+i os+applications
Muhammad Ikram Ul Haq
 
Education 2.3 m erwin
Education 2.3 m erwinEducation 2.3 m erwin
Education 2.3 m erwin
Erwin Huang
 
Doctrine In The Real World sflive2011 Paris
Doctrine In The Real World sflive2011 ParisDoctrine In The Real World sflive2011 Paris
Doctrine In The Real World sflive2011 Paris
Jonathan Wage
 
Unwritten ota2008 keynote
Unwritten ota2008 keynoteUnwritten ota2008 keynote
Unwritten ota2008 keynote
Miguel Guhlin
 

Semelhante a Railsify your web development (20)

让开发也懂前端
让开发也懂前端让开发也懂前端
让开发也懂前端
 
Fit botpresentation
Fit botpresentationFit botpresentation
Fit botpresentation
 
Using+javascript+to+build+native+i os+applications
Using+javascript+to+build+native+i os+applicationsUsing+javascript+to+build+native+i os+applications
Using+javascript+to+build+native+i os+applications
 
20110910 WebSig1日2011学校_非サーバサイドエンジニアクラス選択授業_上杉先生
20110910 WebSig1日2011学校_非サーバサイドエンジニアクラス選択授業_上杉先生20110910 WebSig1日2011学校_非サーバサイドエンジニアクラス選択授業_上杉先生
20110910 WebSig1日2011学校_非サーバサイドエンジニアクラス選択授業_上杉先生
 
Intro to Micro-frameworks
Intro to Micro-frameworksIntro to Micro-frameworks
Intro to Micro-frameworks
 
Mobile apps using drupal as base system SumitK DrupalCon Chicago
Mobile apps using drupal as base system   SumitK DrupalCon ChicagoMobile apps using drupal as base system   SumitK DrupalCon Chicago
Mobile apps using drupal as base system SumitK DrupalCon Chicago
 
神戸ITフェスティバル|進化したウェブとの向き合い方〜ビジネス・社会・そして個人〜
神戸ITフェスティバル|進化したウェブとの向き合い方〜ビジネス・社会・そして個人〜神戸ITフェスティバル|進化したウェブとの向き合い方〜ビジネス・社会・そして個人〜
神戸ITフェスティバル|進化したウェブとの向き合い方〜ビジネス・社会・そして個人〜
 
Really Simple Strategies: Keeping Track of your Organization and Issues Online
Really Simple Strategies: Keeping Track of your Organization and Issues OnlineReally Simple Strategies: Keeping Track of your Organization and Issues Online
Really Simple Strategies: Keeping Track of your Organization and Issues Online
 
Data Driven Innovation
Data Driven InnovationData Driven Innovation
Data Driven Innovation
 
Data Driven Innovation
Data Driven InnovationData Driven Innovation
Data Driven Innovation
 
Atlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide DeckAtlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide Deck
 
Education 2.3 m erwin
Education 2.3 m erwinEducation 2.3 m erwin
Education 2.3 m erwin
 
Doctrine In The Real World sflive2011 Paris
Doctrine In The Real World sflive2011 ParisDoctrine In The Real World sflive2011 Paris
Doctrine In The Real World sflive2011 Paris
 
Apache Solr - search for everyone!
Apache Solr - search for everyone!Apache Solr - search for everyone!
Apache Solr - search for everyone!
 
Node js techtalksto
Node js techtalkstoNode js techtalksto
Node js techtalksto
 
How medium uses Neo4j
How medium uses Neo4jHow medium uses Neo4j
How medium uses Neo4j
 
Phorum - PHP Community Conference
Phorum - PHP Community ConferencePhorum - PHP Community Conference
Phorum - PHP Community Conference
 
PyCon 2011 Scaling Disqus
PyCon 2011 Scaling DisqusPyCon 2011 Scaling Disqus
PyCon 2011 Scaling Disqus
 
Unwritten ota2008 keynote
Unwritten ota2008 keynoteUnwritten ota2008 keynote
Unwritten ota2008 keynote
 
Epler slideshow ppt
Epler slideshow pptEpler slideshow ppt
Epler slideshow ppt
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Railsify your web development

  • 1. 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
  • 2. Agenda • About this session • 12 Practices http://www.flickr.com/photos/puntodevista/84796578/ måndag den 4 april 2011
  • 3. About this session http://www.flickr.com/photos/78986993@N00/3335393740/ måndag den 4 april 2011
  • 4. 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
  • 5. About this session • Ruby on Rails is • Simple • Productive • Easy http://www.flickr.com/photos/78986993@N00/3335393740/ måndag den 4 april 2011
  • 6. About this session • This started me asking why http://www.flickr.com/photos/78986993@N00/3335393740/ måndag den 4 april 2011
  • 7. 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
  • 8. 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
  • 9. 12 Practices http://www.flickr.com/photos/kapungo/1408329358/ måndag den 4 april 2011
  • 10. BDD http://www.flickr.com/photos/fredcoree/301890340/ måndag den 4 april 2011
  • 11. 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
  • 12. BDD • Executable specifications http://www.flickr.com/photos/fredcoree/301890340/ måndag den 4 april 2011
  • 13. 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
  • 14. TDD http://www.flickr.com/photos/mroach/2448878900/ måndag den 4 april 2011
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. MVC http://www.flickr.com/photos/spaceamoeba/3044883638/ måndag den 4 april 2011
  • 19. MVC • Splitting logic into (Domain) Model,View, Controller http://www.flickr.com/photos/spaceamoeba/3044883638/ måndag den 4 april 2011
  • 20. 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
  • 21. MVC • Disentangle • Refactor • Un-spaghettize http://www.flickr.com/photos/spaceamoeba/3044883638/ måndag den 4 april 2011
  • 22. Collaborative database development http://www.flickr.com/photos/tomsaint/3051540613/ måndag den 4 april 2011
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. App-private database http://www.flickr.com/photos/evert-jan/72568626/ måndag den 4 april 2011
  • 27. 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
  • 28. App-private database • One more degree of freedom http://www.flickr.com/photos/evert-jan/72568626/ måndag den 4 april 2011
  • 29. App-private database • Long-term architectural work... http://www.flickr.com/photos/evert-jan/72568626/ måndag den 4 april 2011
  • 30. RESTful URL:s http://www.flickr.com/photos/jimg944/3202247839 måndag den 4 april 2011
  • 31. 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/3202247839 måndag den 4 april 2011
  • 32. RESTful URL:s • No cognitive mismatch of App vs. URL • Uniform, standard interface • Stateless • Cacheable http://www.flickr.com/photos/jimg944/3202247839 måndag den 4 april 2011
  • 33. RESTful URL:s • Thoughtful URL design http://www.flickr.com/photos/jimg944/3202247839 måndag den 4 april 2011
  • 34. Devops http://www.flickr.com/photos/jimg944/3123212129/ måndag den 4 april 2011
  • 35. Devops • Dev team = Ops team • T-shaped people http://www.flickr.com/photos/jimg944/3123212129/ måndag den 4 april 2011
  • 36. Devops • Removal of Ops-Devs wall http://www.flickr.com/photos/jimg944/3123212129/ måndag den 4 april 2011
  • 37. Devops • Organizational change http://www.flickr.com/photos/jimg944/3123212129/ måndag den 4 april 2011
  • 38. Convention over configuration http://www.flickr.com/photos/aforero/339031109/ måndag den 4 april 2011
  • 39. Convention over configuration • Minimizing the configuration • Feature level/code level http://www.flickr.com/photos/aforero/339031109/ måndag den 4 april 2011
  • 40. Convention over configuration • Easier to set up and use the app http://www.flickr.com/photos/aforero/339031109/ måndag den 4 april 2011
  • 41. Convention over configuration • Remove default configuration • Take decisions! http://www.flickr.com/photos/aforero/339031109/ måndag den 4 april 2011
  • 42. DRY http://www.flickr.com/photos/paulmannix/286817119/ måndag den 4 april 2011
  • 43. DRY • Don’t Repeat Yourself • Remember: not only for source code! http://www.flickr.com/photos/paulmannix/286817119/ måndag den 4 april 2011
  • 44. 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
  • 45. 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
  • 46. DRY • Cleaner code http://www.flickr.com/photos/paulmannix/286817119/ måndag den 4 april 2011
  • 47. DRY • Smart selection of tools http://www.flickr.com/photos/paulmannix/286817119/ måndag den 4 april 2011
  • 48. Scaling out http://www.flickr.com/photos/geraldford/3078861139/ måndag den 4 april 2011
  • 49. Scaling out • Don’t buy bigger servers, buy more! http://www.flickr.com/photos/geraldford/3078861139/ måndag den 4 april 2011
  • 50. Scaling out • Cheaper scaling http://www.flickr.com/photos/geraldford/3078861139/ måndag den 4 april 2011
  • 51. Scaling out • Shared-nothing • No Session http://www.flickr.com/photos/geraldford/3078861139/ måndag den 4 april 2011
  • 52. OSS http://www.flickr.com/photos/wordridden/3107810417/ måndag den 4 april 2011
  • 53. OSS • Get along with the OSS culture • Use & publish! http://www.flickr.com/photos/wordridden/3107810417/ måndag den 4 april 2011
  • 54. OSS • Publishing: developer good-will • Using: ready-made functionality http://www.flickr.com/photos/wordridden/3107810417/ måndag den 4 april 2011
  • 55. 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
  • 56. Reference management http://www.flickr.com/photos/saragoldsmith/2896007790/ måndag den 4 april 2011
  • 57. Reference management • Structured dependency management http://www.flickr.com/photos/saragoldsmith/2896007790/ måndag den 4 april 2011
  • 58. 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
  • 59. Reference management • Java: Maven/Ivy • .NET: NuGet/OpenWrap http://www.flickr.com/photos/saragoldsmith/2896007790/ måndag den 4 april 2011
  • 60. What not to use? • ActiveRecord pattern • Scaffolds http://www.flickr.com/photos/deapeajay/2143573706/ måndag den 4 april 2011
  • 61. 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