|Think about Loose Coupling|
The mission was to write a basic message board on the company web store where customers can login, leave public messages and answer other people's public messages.Great, now what kind of data about the customers will you be gathering? How are you going to store it? Security?
After studying all the right O'Reilly books and learning which modules I need to use and how to use them - it occurs to me that I have no idea where to start on the actual project itself, even though I can see the final picture I want to create and how it fits together. It just feels too big to offer a starting point, if that makes sense?What modules? You say you have a picture in your head, well the first step is to try and write it down as best you can, and when you do that, it will become even more clearly defined. You build you application around a a toolset: what is your toolset?
I could just start hacking away piece at a time, but it feels like I should be doing some kind of design first. I don't want to fall into the trap of creating a hard-to-maintain disaster that so many others have. I want to be able to add features later easily. I want it to be reliable and the code to be "clean".Now you're thinking. When you say HACK it almost immediately implies lack of discipline/reliability/cleanliness. You recognize your needs (design) and that is a kickass step in the right direction, but you're wasting time, you should be writing things down already ;).
What are the first steps to planning the implementation of a largish project like this?Setting down minimal criteria -- minimal functionality, and you've got it:
1) customers login, which means authentication and possibly state
2) they leave/answer public messages, which means you have to store/format these messages
3) there has to be a user interface, in which the users views/contributes to the forum
Now you've got the beginnings of a tree, expand each of the items into subitems and so on and so forth, and by the time you draw that picture, you've got yourself one heck of a map for a great plan.
So there you have it, asses, asses, asses, get a 2nd opinion, and asses, and tree, and plan, and revise, and revise and revise, and review, and get a 2nd opinion .... you get the picture. Keep your timetable in mind ... read web site design, or lack thereof for wisdom.
That's all I could muster up, enjoy (and I wouldn't even think of suggesting you adapt the everything2 engine)
In reply to (crazyinsomniac) Re: Writing a web message board from scratch