Website Architecture - Part 1 : Introduction
Saturday, December 16th, 2006
The majority of the programming discussion on the forum is related to specific problems people run in to with their projects. I thought I'd write a few posts about development at a higher level, good practices for project architecture as an example.
These aren't specific to any one language/platform and we don't have an Architecture section of the forum so I'll post them in Other Programmin Languages. You can apply this to ASP.NET, Java, PHP, or any other language with OOP support.
So before I get started, what's the point in all this? You build sites and they work, so why change your approach? Some of the benefits of good architecture really don't mean a lot to the average website developer, they benefit large teams working on big projects. For us good architecture means less bugs, an easier to maintain site, and an easier to modify site.
It's rare that I build a web application without the client giving me new or changed information part way through development. Naturally I also want my clients to add new features to their sites over time as it puts money in my pocket.
With the typically method of building a site, those changes, updates, and additions often result in having to rewrite huge amounts of code, and you often get into situations where fixing one problem breaks something else. A downward spiral of bugs and massive rewrites follows until at some point you probably think to yourself, "I need to restart this whole thing from scratch".
Putting a little extra effort in at the beginning of a project can help you avoid all of those problem, make your clients happier, make development more enjoyable, and put more money in your pocket.
I'm going to break this into a couple posts:
1) Introduction (this post)
2) Basics of OOP
3) Refactoring
4) Design patterns
5) Layered architecture concepts
6) Domain driven design approach
7) Building a 4 layer web application
8) Shortcuts (O/R Mapping, code generating tools, etc)
These aren't specific to any one language/platform and we don't have an Architecture section of the forum so I'll post them in Other Programmin Languages. You can apply this to ASP.NET, Java, PHP, or any other language with OOP support.
So before I get started, what's the point in all this? You build sites and they work, so why change your approach? Some of the benefits of good architecture really don't mean a lot to the average website developer, they benefit large teams working on big projects. For us good architecture means less bugs, an easier to maintain site, and an easier to modify site.
It's rare that I build a web application without the client giving me new or changed information part way through development. Naturally I also want my clients to add new features to their sites over time as it puts money in my pocket.
With the typically method of building a site, those changes, updates, and additions often result in having to rewrite huge amounts of code, and you often get into situations where fixing one problem breaks something else. A downward spiral of bugs and massive rewrites follows until at some point you probably think to yourself, "I need to restart this whole thing from scratch".
Putting a little extra effort in at the beginning of a project can help you avoid all of those problem, make your clients happier, make development more enjoyable, and put more money in your pocket.
I'm going to break this into a couple posts:
1) Introduction (this post)
2) Basics of OOP
3) Refactoring
4) Design patterns
5) Layered architecture concepts
6) Domain driven design approach
7) Building a 4 layer web application
8) Shortcuts (O/R Mapping, code generating tools, etc)