Когда вы затеваете что то большое, то не можете представлять, чем это все может закончится? Я знаю - обычно это заканчивается тем, что приходится переписывать все с начала. Вы знаете, что я хочу написать? Нет и я тоже не знаю. Почему так, давайте разберемся. Когда я учился в институте, все преподаватели твердили одну и туже истину, про метод разработки программного обеспечения. Принцип его заключался в иерархическом подходе. Как это работает? Изначально существует конечная цель проекта, потом она разбивается на крупные подзадачи, каждая из них на более мелкие и т.д.. Метод этот называется по научному "Декомпозиция" - приводит он к тому, что на нижнем ярусе так называемой пирамиды образуются элементарные задачи, которые очень просто решить, решая и собирая их в кучу, мы двигаемся вверх по пирамиде пока не достигнем вершины - это и будет конечной целью. В веб программировании такой подход абсолютно не применим. Почему? Интернет проекты не имеют конечной цели, они постоянно модерниз