Что такое архитектура ПО, чем она отличается от "дизайна", и что же все-таки является входными данными для разработки архитектуры. Дискуссия на РСДН по данному вопросу была изумительна.
Оказывается, распространено мнение, что мол принципиальных отличий между "архитектурой" и "дизайном" нет. Некоторые идут дальше, и заявляют, что "архитектура"
(
Read more... )
Reply
Другое дело, что влияние архитектурных решений на сроки разработки может на порядок превосходить эффект от "дизайнерских" ходов. С чем вероятно, также все согласятся :). Так что архитектура, возможно, не единственный, но однозначно наиболее сильно влияющий на сроки фактор из обсуждаемых.
Reply
К примеру веб разработка, какая нибудь CMS. Авторы решили, что СУБД будет использоваться MySQL ("потому что стоит на любом хостинге"). Получается архитектурное решение. Но проектирование системы в плане дизайна производяет уже после выбора СУБД. Вроде как начинают думать над дизайном.
Reply
Reply
Может я тогда что-то не так уловил... Выбор конкретной (Р)СУБД это архитектурное решение которое приводит нас к определенным ограничениям, так?
Просто я беру это как типичный пример. Еще ни строчки вообще ни какого кода не написано, еще ни какой декомпозиции не провели, но выбрали тот же MySQL только потому, что знаем его лучше. Разве не получается, что сначала было принято архитектурное решение и лишь потом мы беремся за дизайн? И если в будующем общие требования к производительности повысятся, а дизайн был спроектированн верно, то переход на другую СУБД будет выполнен малой кровью и потребуется переписать только часть кода который относится к работе с MySQL вместе переписывания системы в целом.
Ну может конечно пример сильно утрированный, но так мне проще понять.
Reply
Reply
А вообще существует ли какой определенный набор признаков по которым я, рассматривая какую либо систему (которую не я писал), могу скачать, что вот это архитектурное решение, а вот тут дизайн? Потому что на примере стека я бы скорее подумал, что это дизайн. Разве мысль разделить системы на ряд слоев и создание OSI сетевой модели это не дизайнеркое решение? Ведь разработчики могли все запихать и в один протокол, вот DoD ограничился только 4-мя уровнями.
Reply
Reply
- или вообще требованием. Тут, опять же, все зависит от точки зрения. "Архитектура" и "дизайн" - не существуют сами по себе. "Архитектура" и "дизайн" - это _свойства_ конкретных вещей, в определенном контексте, а не отдельно существующие вещи или артефакты.
Непонимание этого - также причина путаницы. Вот рядом меня спрашивает Локотков - есть ли архитектура у приложения, у которого пропали исходники? Занятный вопрос, не так ли? А вот я задам встречный вопрос - мы приложение еще не написали, но продумали - у него кода нет, а архитектура - есть или нет?
При понимании того, что "архитектура" на самом деле не "существительное", а "прилагательное" ;) такие вопросы не встают :).
Reply
Reply
С другой стороны, выделение этих принципов в явном виде, размышление над ними, и следование им при дизайне - позволяет Вам сделать устройство системы более простым, логичным, понятным, и не запутаться при этом.
Reply
Leave a comment