Help getting started with application design

Hey everyone,

I want to learn how to properly architect the code structure of an application/website. For example, how should I organize my classes, script files, file folders, etc?

Learning the syntax of a programming language is relatively easy, it’s putting it all together in a well organized way that I don’t know much about.

Does anyone know of any examples or project-based books/tutorials that illustrate best practices for application engineering? I’m very much a “learn by hands-on examples” type of person, so project-based approaches would work best for me.

Any thoughts or advice?

You should start a project and learn by doing it. I recommend you read anything you can find on Design Patterns, Unit Testing, DDD . Then choose a framework to master, because you don’t want to start form scratch every time.

Is there anything specific you would recommend?

For instance, I think a good starter project for me would be the creation of a simple forum system which can then be expanded into a full blown social network as I go.

Where would you recommend I start in terms of reading material that would be most relevant to the planning and structuring of a project like that?

MVC - Model/View/Controller, I believe this is the best way to go. Allows for scalability and code reuse… Clean and organized.

I found this along with a few other similar tutorials.

http://www.phpro.org/tutorials/Model-View-Controller-MVC.html

It seems that the best way to practice this is to build your own framework (maybe not for commercial use, but to get the point of MVC), but there is obviously more than one way to do so. How do you know when you’re doing it right, and when you’re doing it wrong? It’s easy to write PHP code that works. It’s quite a different thing to design a PHP application that minimizes the writing and works in a scalable way.

Any more thoughts?