Как общее практическое правило (не зависит от языка), вы должны сначала определить, что именно вы хотите, чтобы сайт делал / предоставлял в первую очередь. Из этого выясните, какие действия может выполнять пользователь и какие ответы они могут ожидать.
Исходя из этого, вы сможете определить свои данные (модели) и уметь воспроизводить дизайн / макет вашего сайта (запускать грубые эскизы).
Теперь вы готовы к тому, чтобы кодировать, как пользователь изменяет и получает информацию с сайта (теперь вы выполняете контроллеры).
Наконец, вы можете преобразовать свои наброски и черновики пользовательского интерфейса в реальную работу над пользовательским интерфейсом (просмотры)
tldr;
Проектирование системы от пользователя до внешнего интерфейса и внутреннего интерфейса (просмотр, затем контроллеры, а затем модели).
Теперь внедрите систему из серверной части обратно к пользователю ( Модели, затем Контроллеры, затем Представления ).
Примечание: Это, конечно, мое скромное мнение, и ваш пробег может отличаться. Кроме того, на всякий случай, я тоже не адвокат ...