Best way to organise a large application

Hey folks i am starting to build a very large complex application and at
this stage i would like to start it with Ruby on Rails 3.0 as soon as
the master release is ready.
Now the application would to me get very complex following the standard
MVC pattern compared to how i would it normally be organised by guys a
little more versed in Rails development.

I was looking into Zend Framework and there way was very logical using
something called HMVC where each part of the application is given its
own module with its own MVC and there is a master MVC for application
wide code.

I am much happier working with Ruby however as its nicer to work with
the language and easier on my text-speach reader.

David R. wrote:

Hey folks i am starting to build a very large complex application and at
this stage i would like to start it with Ruby on Rails 3.0 as soon as
the master release is ready.
Now the application would to me get very complex following the standard
MVC pattern compared to how i would it normally be organised by guys a
little more versed in Rails development.

I was looking into Zend Framework and there way was very logical using
something called HMVC where each part of the application is given its
own module with its own MVC and there is a master MVC for application
wide code.

I am much happier working with Ruby however as its nicer to work with
the language and easier on my text-speach reader.

What’s your question? How do you know the structure of the app at this
stage?

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

Well just now using Zend Framework i would structure my app based on my
documentation and my experience in the following way.

application
layouts
configs
models
controllers
modules
default
models
views
controllers
forum
models
views
controllers
stories
models
views
controllers
blog
models
views
controllers
gallery
models
views
controllers

This allows the sub applications to work with the main application, now
i am not quite sure how i would do something similar to logically
separate the sub applications with Rails.

David R. wrote:

Well just now using Zend Framework i would structure my app based on my
documentation and my experience in the following way.

application
layouts
configs
models
controllers
modules
default
models
views
controllers
forum
models
views
controllers
stories
models
views
controllers
blog
models
views
controllers
gallery
models
views
controllers

This allows the sub applications to work with the main application, now
i am not quite sure how i would do something similar to logically
separate the sub applications with Rails.

You’re assuming that you’d want similar structures in Zend and Rails.
That may or may not be true.

You can do a structure with Rails such as you’ve described. Whether
you should depends on your application.

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

What i would be the standard for this type of app, i don’t want say the
forum categories and the stories categories stepping on each others toes
or worse being impossible for my junior to spend 20 minutes looking for
the sub application he is working on.

Please quote when replying – otherwise it’s impossible to follow the
discussion.

David R. wrote:

What i would be the standard for this type of app, i don’t want say the
forum categories and the stories categories stepping on each others toes
or worse being impossible for my junior to spend 20 minutes looking for
the sub application he is working on.

Depends on the individual application. Namespaces, plugins, and engines
are all possibilities; so is something like the eco_apps gem. But I’d
advise you not to set up the whole big structure at the beginning –
rather, refactor as the application grows. Otherwise you’ll wind up
with a small application collapsing under the weight of a
big-application infrastructure.

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

Have ever you heard about or use Trailblazer gem? I think it will meet your needs in developing a large application. I have a gem HMVC architect for build applications. They are built on the trailblazer model
HMVC gem: GitHub - TOMOSIA-VIETNAM/hmvc-rails: HMVC Rails provides a top-tier model for Rails' MVC design

This is the HMVC model that our company has developed and is currently using. We have applied it to hundreds of projects and saved a lot of effort in development and bug fixing. We are based on the Trailblazer concept but it is important to maintain a simple and not overly magical nature to accommodate all learners.