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
© 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