I could never find a decent article that could break down how to build an extensible, well architected cms. I was also looking for quite some time until I decided to just jump in and sweat some blood.
It was by all means the best decision I've ever made. If one cannot build an awesome, functionally rich cms, forum, social networking and e-commerce site from scratch (the most common requests by customers), one cannnot call himself (herself) a web developer.
Reinventing the wheel every single day and night until you are comfortable with your craft is the only way period. No one can learn to create software by reading books or watching videos. The brain simply does not work that way. Hands on is the only way to create long term memory that will allow you to think critically and to synthesize the information you have retained.
Being able to write code is only 10% percent of a job well done. The rest is critical thinking (problem solving) and research.
- What worked for me personally is to
find some good open source cms
packages that I could download,
study and pick apart until I saw what
the rationale behind it was, and how the pieces fit together. At this
stage I realized that there was no
strict standard and that each cms was
a blueprint/fingerprint or direct
reflection of the person(s) mind who
created it. Problem solving is as
unique to the individual as their
fingerprint (or brain neural-network
print(BNNP)).
- You must think about every little
functionality that you wish
incorporated and the best architectural
method that will allow extensibility.
- Because a decent cms is composed of
thousands of functions /
instructions, you can't formulate
these or keep these in your head.
Therefore you have two choices:
- 1.) Trial and error aka do it as one idea begets another, which requires a
great amount of revision, or..
2.) Create a detailed flow-map.
The later makes more sense but it is infinitely more difficult to achieve unless it is only a general outline.
The first one makes little sense to most people but it is infinitely more powerful simply because of the amount of thinking and coding involved, which effectively reinforces the ideas thus allowing you to create long term memory through contextual understanding (seeing the bigger picture).
Practice makes perfect! Even if you do your best to study other peoples work, your first cms will only be good until you start the next one. Everything can be improved upon no matter how fantastic it seems. It is simply the nature of things.