Архитектура web-проекта или дизайн второго порядка (дизайн, который не дизайн).

Странные выражения "дизайн второго порядка" и "дизайн, который не дизайн" объясняются во введении.

Архитектура проекта, как и застывшая музыка - обычная архитектура зданий и городов, суть самый общий, но совершенно конкретный план построения программного продукта. От целеполагания и перечисления задач - гуманитарная часть проекта - к реальному проектированию, т.е. к нормальной инженерной работе, пусть и высокого порядка.

Архитекторы городов - элита строителей - в их работе больше творчества, чем в других строительных профессиях. Архитекторам программных продуктов также повезло - им больше всех платят из тех кто работает над проектом.

Цитата:

Архитектуры можно разделить на распределенную и монолитную. А внутреняя структура имеет определенную степень связанности - сильную или слабую.
...
Распределенная архитектура - делает в целом тоже самое, что написание программы разделенное на функции. Мы выделяем определенную задачу и решаем ее необходимым способом.

Слабая связанность - достигается должной степенью абстракций. Отказом от конкретных способов реализации. Т.е. новостную ленту мы можем сделать на Django+MySQL. А вот счетчик посещений реализуем комплексом из C+libevent+NoSQL DB+python+Postgresql.
...
Веб-программисты постепенно объеденили в себе множество профессий: верстальщиков, JS-программистов и флеш-аниматоров, программистов бизнес-логики, DB-администраторов, системных администраторов и местами даже проектировщиков-архитекторов и менеджеров.
...
Идея заложенная в паттерне проектирования MVC - весьма прозрачна. Мы создаем код, который умеет работать с данными (Models/Controllers), мы создаем код который умеет управлять контекстом исполнения (Controller), и пишем код который ответственен за отображение данных (Views/Templates).

При этом мы стремимся к отделению мух от котлет. Работа с данными у нас в одном месте, их обработка в другом. Что и в какой-последовательности в третьем, а создание ненавистных виджетов или генерация HTML в четвертом.

исходник: http://kerah.redpandaz.net/2011/02/creatio-ex-nihilo.html

 

Анализ задачи на примере романа Льва Толстого "Анна Каренина"