HOME SCALA & F# JAVA .NET WEB GROOVY & GRAILS ANDROID & IOS NOSQL ARCHITECTURE AGILE & SCRUM AGILE DEVELOPER  
London Ruby User Group:One Code-Base, Many Projects
One Code-Base, Many Projects
Jason Cale offered to run a talk / discussion on how to cope with evolving a single project into a maintainable code-base for multiple projects. That's not a great distilation of his idea, so here are his words:

The basic premise of what I have now is a (yet another) custom CMS / E-commerce system that an agency commissioned me to build ..

The system serves both flash websites (via restful apis), and a couple of html based ones .. I'm currently trying to work out the best way to keep a single code base that can serve present development, and future ones .. be flexible and 'hackable' and maintainable .. at the moment its a mix of plugins, config files and theme based extensions.
I certainly don't have all the answers .. but with a bit of research I could present what I've come up with so far, other ideas I've come across (most things online I've found just mention it is hard) and then open it up for discussion.

At the moment instead of it being 'lessons learned' etc, it would still be very present tense, because these problems are ones I'm still working through.

Review:
In this November 2008 LRUG meeting we have Jason Cale introducing how he's managed the transition from a single project to a code-base being used in many projects. He does this using the real world experience he had in creating a custom-CMS code-base for multiple projects.

From the off Jason makes it abundantly clear that he hates CMS's. This provided a great starting point for Jason to explain why he then decided to take on the project and how this viewpoint shapes his creation. In explaining the three different projects the application would have to function for, it's clear what a challenge creating a custom CMS is - especially one that can perform a lot of very different functions well.

Jason then introduces the method he used to create the custom CMS. Using many libraries such as make_resourceful, theme-support and haml makes the task a lot easier too manage as a lot of the hard work has already been done. In order to be successful in a many project code-base source code management is essential and Jason explains the benefits of git and how it makes branching very easy.

Finally, Jason outlines the architecture he used for his application. His advice is to leave Rails alone and use the plug-in architecture, as it makes it easier to both maintain the source code and support future developers using the source code.
Review by David Mulholland
Download the slides here

ABOUT JASON CALE
Jason works with Ruby (w/ Rails and Merb) Application development, iPhone Apps and all sorts of trickery (flash, video production, etc).
More about Jason Cale

ABOUT THE LONDON RUBY USER GROUP
LRUG is the London Ruby User Group; a community of ruby developers based in and around London. We meet up at least once a month; on the 2nd Wednesday of the month we have meetings with talks, demos and such-like and then we have pub-based meetups organised on an ad-hoc basis (roughly half-way between meetings).
More about the London Ruby User Group
PODCAST ONE CODE-BASE, MANY PROJECTS

This session took part at the LRUG Meeting, November. You can view the other 1 podcast here.
SPONSORS
Skills Matter Ltd
JAVASCRIPT & HTML5 PODCASTS
Christophe Coenraets:Cross-Platform Mobile Apps with HTML, JavaScript and PhoneGap, Cross-Platform Mobile Apps
Christophe Coenraets : 24th May 2012
View Podcast: Cross-Platform Mobile Apps with HTML, JavaScript and PhoneGap,
Paul Ardeleanu:Native vs HTML5 - why, when and how to use them, Native vs HTML5
Paul Ardeleanu : 22nd May 2012
View Podcast: Native vs HTML5 - why, when and how to use them,
Luke Daley: Managing JavaScript with Gradle, JavaScript with Gradle
Luke Daley : 22nd May 2012
View Podcast:  Managing JavaScript with Gradle,
Elise   Huard:Ruby’s bin men: a closer look at the garbage collector, Ruby’s bin men: a closer look at the gar
Elise Huard : 14th May 2012
View Podcast: Ruby’s bin men: a closer look at the garbage collector,
Tom Stuart:Dependency Injection, the Dependency Inversion Principle, and You, Dependency Injection
Tom Stuart : 14th May 2012
View Podcast: Dependency Injection, the Dependency Inversion Principle, and You,
Tom McMillen:CouchDB at the Hut Group, CouchDB at the Hut Group
Tom McMillen : 9th May 2012
View Podcast: CouchDB at the Hut Group,
John Zablocki:The Couchbase Server Tutorial, The Couchbase Server Tutorial
John Zablocki : 9th May 2012
View Podcast: The Couchbase Server Tutorial,
Peter Martischka:Etherpad Lite: Make Collaborative Editing the Standard on the Web, Etherpad Lite
Peter Martischka : 8th May 2012
View Podcast: Etherpad Lite: Make Collaborative Editing the Standard on the Web,
Tiago Rodriguez:Continuously integrated JS development with Buster.js and Phantom.js, Buster.js and Phantom.js
Tiago Rodriguez : 8th May 2012
View Podcast: Continuously integrated JS development with Buster.js and Phantom.js,
Gavin  Bell:Is Everything Social?, Is Everything Social?
Gavin Bell : 8th May 2012
View Podcast: Is Everything Social?,
Brian Sletten:Information Resources : Moving Beyond Objects, Moving Beyond Objects
Brian Sletten : 3rd May 2012
View Podcast: Information Resources : Moving Beyond Objects,
Brian Sletten:Information Resources: Moving Beyond Objects (Part 2), Moving Beyond Objects
Brian Sletten : 3rd May 2012
View Podcast: Information Resources: Moving Beyond Objects (Part 2),
Brian Sletten:Testing REST with BDD, REST & BDD
Brian Sletten : 2nd May 2012
View Podcast: Testing REST with BDD,
Dmitry Buzdin:State of the Web, State of the Web
Dmitry Buzdin : 1st May 2012
View Podcast: State of the Web,
Lukas  Oberhuber:Lightning Talks: Simply Business, Simply Business
Lukas Oberhuber : 23rd Apr 2012
View Podcast: Lightning Talks: Simply Business,
OTHER JAVASCRIPT & HTML5 EVENTS
Progressive .NET Tutorials 2012, Progressive .NET Tutorials 2012
CONFERENCE (3 DAYS)
London, Tuesday, May 29th BOOK NOW!
The London Python Group:A Python code review of multilango.com, The London Python Group
FREE EVENT: Python code review
London, Wednesday, June 6th
Dutch Mobile Conference, Dutch Mobile Conference
CONFERENCE (3 DAYS)
Amsterdam , Thursday, June 7th BOOK NOW!
London Ruby User Group:ElasticSearch, London Ruby User Group
FREE EVENT: ElasticSearch
, Monday, June 11th
Gavin  Bell:Gavin Bell's Creating Social Applications,  Gavin Bell's Social Applications
2 DAY COURSE. Featuring Gavin Bell
London, Thursday, June 14th
QCon New York 2012, QCon New York 2012
CONFERENCE (3 DAYS)
New York, Monday, June 18th BOOK NOW!
:Typesafe's Fast Track to Play,  Typesafe's Fast Track to Play
1 DAY COURSE.
London, Friday, June 22nd
Damjan Vujnovic:Damjan Vujnovic's Advanced JavaScript Workshop,  Damjan Vujnovic's Advanced JavaScript Workshop
2 DAY COURSE. Featuring Damjan Vujnovic
London, Monday, June 25th
© Copyright 2003-2011, Skills Matter Ltd
  Web development by You In Control
About Us  Jobs  Find Us  Meeting & Training Rooms  Newsletter  Jobs: Sales Executive  Jobs: Student SkillsCaster  jobs - junior event coordinator  Speed Coding 2011  Open Source Journal  Ticket Raffle  Agile Expert Series  Jobs: Sponsorship Development  jobs: Marketing & Sales Graduate Internship