• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How do you plan your CI applications?

I would like to know how everyone sits down and plans there application before writing any code. I'm working on a project and have developed the high level user requirements for what the system must do. Keep in mind these are really high level and somewhat abstract. Now I'm trying to take those requirements and break them down further into controllers/actions. What is the best way to do this?

I was thinking of creating a word document table that would have four columns. Column one would be the the name of the controller, column two would have the actions, column three would have the name of the view that is specific to the action, and the fourth column would show which users had access to that action. Does this sound like a good idea?

I like the interface first approach to building an application, but realistically, I need to know what views I need before I can create a prototype interface.

Could anyone help me out with how they go about planning there app and any documentation that might help?

What i do is i have a private wiki. Which is really handy, supports code embedding. Can have as many pages as possible. Versions of the same page and it has acl so i can give certain people access to certain parts. I currently use dokuwiki. I found it to be the best.

A small snippet from the page where i am developing some classes to provide the backend functions for an api implementation.

If its a small/medium project, I don't generally do that much planning
Just a high level overview (1 or 2 paragraphs to sum up all the functionality)
Then make a list of the basic sections (controllers) and what functionality that section needs, which transkates roughly to functions... I then plan the UI, do the code and DB and then move on
This whole process is ongoing, instead of all upfront

I'm currentlyl doing my first big scale CI project, and its my 3rd year project at Uni (If you have any ideas for a PMS, submit them in my sig) so I'm having to do a lot more planning then I'd do on my own Sad

[eluser]Colin Williams[/eluser]
I typically start to sketch out the app on paper and then in code, and at a certain point I stop and begin writing documentation. Anytime you take on the role of explaining your app to others, inconsistencies, poor organization, and bad API decisions rear their ugly heads.

when planning out your app, and specifically the controllers/actions breakdown, how do you arrive at figuring out those controllers? Does it help to have an idea of what your model is going to look like?

[eluser]Colin Williams[/eluser]
Quote:how do you arrive at figuring out those controllers?

Typically there is one controller per resource. Let's say we're making a CMS. Depending on how you design it, let's say your resources are Pages, Users, and Categories. This lends to a Page controller, User controller, and Category controller. That's a very basic example but I hope it explains the idea. Models typically follow suit but are more burdened with the complexities of these resources.

Quote:how do you arrive at figuring out those controllers?
With certain application, I sometimes find it easier to work backwards, and start with the database schema.
This gives me a series of 'object' tables and a set of many to many relationship tables... I will then typically have one controllers and model per main object table

This is often an easier approach with database/data heavy sites IMO

That makes sense to me, but what happens when your controllers do not neatly fit into that model = object approach. Say for instance the homepage of your application that may need to access many models. Would you create a homepage controller on it's own, since it might need to interact with a news model, a comments model, etc. It's pretty easy to understand when your talking about a crud type object that interacts with it's own model. But when thinking in terms of planning my app, Things like the homepage don't fit into that nice "object" or "resources" approach. At least not to me, unless I'm missing something which I may well be Smile

I tend to start with the content (i.e the database design), and then work out from that. I'd like to say this works well for me, but with my sporadic thoughts, it does not...

[eluser]Yorick Peterse[/eluser]
I first start with a general idea, what has to be done, how, etc
Once that's done I start coding the basic application, while at the same time I'm building the database. To cut a long story short, I love multitasking Tongue

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  

  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2021 MyBB Group.