HOME JAVA & JEE OPEN SOURCE .NET WEB & RIA CLOUD & GRID ARCHITECTURE & DDD AGILE PM & SCRUM AGILE TESTING & BDD OS, MOBILE & SERVER  
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
PODCAST ONE CODE-BASE, MANY PROJECTS
Digg! StumbleUpon
SPONSORS
Skills Matter Ltd
RIA, AJAX & WEB PODCASTS
Nicolas Yuen:Accessibility API in Flex, nicolas yuen accessibility API in Flex
Nicolas Yuen : 17th Mar 2010
View Podcast: Accessibility API in Flex,
Chris Parsons:Software Craftsmanship Ideas & Eden, Software Craftsmanship Ideas & Eden
Chris Parsons : 10th Mar 2010
View Podcast: Software Craftsmanship Ideas & Eden,
Corey Haines:Software Craftsmanship Terminology, Software Craftsmanship Terminology
Corey Haines : 10th Mar 2010
View Podcast: Software Craftsmanship Terminology,
Cagatay Civici:PrimeFaces: Next Generation JSF Component Suite, PrimeFaces: Next Generation JSF Componen
Cagatay Civici : 3rd Mar 2010
View Podcast: PrimeFaces: Next Generation JSF Component Suite,
Karl Widmer:Integrating JSF with Spring Web Flow, Integrating JSF with Spring Web Flow
Karl Widmer : 3rd Mar 2010
View Podcast: Integrating JSF with Spring Web Flow,
Rick Evans:Flex and Spring Integration:Introducing Spring BlazeDS Integration, Flex and Spring Integration
Rick Evans : 17th Feb 2010
View Podcast: Flex and Spring Integration:Introducing Spring BlazeDS Integration,
Ian Robinson:Hydra and Hypermedia, Hydra and Hypermedia
Ian Robinson : 11th Feb 2010
View Podcast: Hydra and Hypermedia,
Paul Ardeleanu:Rails & iPhone Integration , Rails & iPhone Integration
Paul Ardeleanu : 10th Feb 2010
View Podcast: Rails & iPhone Integration ,
Alex  MacCaw:Bowline: A Ruby GUI Framework, Bowline: A Ruby GUI Framework
Alex MacCaw : 10th Feb 2010
View Podcast: Bowline: A Ruby GUI Framework,
Anup Narkhede:Architecture of Birdpie, a Twitter Application, Architecture of Birdpie, a Twitter Appli
Anup Narkhede : 10th Feb 2010
View Podcast: Architecture of Birdpie, a Twitter Application,
Murray Steele:Fibers in Ruby 1.9, Fibers in Ruby 1.9
Murray Steele : 10th Feb 2010
View Podcast: Fibers in Ruby 1.9,
Murray Steele:Introduction, Introduction
Murray Steele : 10th Feb 2010
View Podcast: Introduction,
Joel Chippindale:Show Off, a Ruby-Based HTML Presentation Software, Show Off, a Ruby-Based HTML Presentation
Joel Chippindale : 10th Feb 2010
View Podcast: Show Off, a Ruby-Based HTML Presentation Software,
Brent  Snook:Decorating the Domain - Wrapping Polymorphic Presentation Logic Around the Model, Decorating the Domain
Brent Snook : 10th Feb 2010
View Podcast: Decorating the Domain - Wrapping Polymorphic Presentation Logic Around the Model,
Ismael Celis:Using Websockets with EventMachine, Using Websockets with EventMachine
Ismael Celis : 10th Feb 2010
View Podcast: Using Websockets with EventMachine,
OTHER RIA, AJAX & WEB EVENTS
:Object-Oriented ActionScript - Beginners,  Object-Oriented ActionScript - Beginners
1 DAY COURSE.
Paris, Tuesday, March 30th
:Introduction to Adobe Flex,  Adobe Flex Intro
1 DAY COURSE.
Paris, Tuesday, April 13th
Alan Cassar:Developing Mobile Applications with Android,  Android Mobile App Development
3 DAY COURSE. Featuring Alan Cassar
London, Wednesday, April 14th
:Adobe Flex for Flash Developers,  Adobe Flex for Flash Developers
1 DAY COURSE.
Paris, Monday, April 19th
Andrew Chalkley:Core RoR: Web Development With Ruby on Rails,  Ruby on Rails Web Development
4 DAY COURSE. Featuring Andrew Chalkley
Paris, Tuesday, April 20th
:Developing Mobile Applications with Android,  Android Mobile App Development
3 DAY COURSE.
Paris, Wednesday, April 21st
Peter Lubbers:HTML5 Communication: Using Web Sockets and more to build real-time Web applications,  HTML5 Communication: Using Web Sockets & more too
3 DAY COURSE. Featuring Peter Lubbers
London, Wednesday, April 21st
:Beginning Adobe AIR - Building your first applications,  Adobe AIR Intro
1 DAY COURSE.
Paris, Monday, April 26th
© Copyright 2003-2010, Skills Matter Ltd
  Web development by You In Control
About Us  Jobs  Find Us  Meeting & Training Rooms  Newsletter  Community  Community-FR  Apress  1st Teach  Jobs: Sales Executive  Jobs: Student Podcaster  jobs - marketing assistant  Spring Certification