Ответ 1
Как общее правило (языковой агностик), вы должны сначала определить, что именно вы хотите, чтобы сайт выполнял/предоставлял в первую очередь. Из этого следует, какие действия пользователь может сделать и какие ответы они могут ожидать.
Из этого вы сможете определить свои данные (модели) и иметь возможность разыгрывать дизайн/компоновку вашего сайта (начинать рисовать наброски эскизов).
Теперь вы можете указать, как пользователь изменяет и извлекает информацию с сайта (теперь вы делаете контроллеры).
Наконец, вы можете преобразовать свои эскизы и черновики черновика пользовательского интерфейса в работу реального пользователя (представления)
TL;DR;
Создайте систему от пользователя к интерфейсу до внешнего (см. далее Контроллеры, затем Модели).
Теперь верните систему из back-end обратно пользователю (Модели, затем Controllers then Views).
Примечание. Это, конечно, мое скромное мнение, и ваш пробег может отличаться. Кроме того, на всякий случай, я также не юрист...