В интернете и книгах очень размазанно трактуется понятие архитектуры разрабатываемого приложения. Прошу, поделитесь своими мыслями как вы понимаете что же такое архитектура и что она в себя включает (возможно на личных примерах или при помощи аналогий).
по типу с чего начинают фреймворки запуск своего ядра. архитектура разделения веб верстки от кода и т.д
В основном определение состоит из заумных слов, а что за ними стоит не понятно. Бывает вообще встречаются общие фразочки "архитектура - все важные решения". Более менее архитектура описывает ся в книге макконела "совершенный код", там приводится аналогия со строительством зданий. Как я понимаю, архитектура это то на чем будет строиться программа - язык программирования, фреймворк, способ хранения данных, cms и так далее. То есть ключевые моменты, определяющие то, каким будет приложение
Собственно, что непонятно? В рамках одной темы это не описать. Это читается отдельным курсом как Управление IT или планирование ИС и т.п. на менеджерских "вайти" и инженерных/прогерских специальностях в вузах. Есть набор международных стандартов которые объединяют мешок документов и методик по управлению IT, в частности CobiT. Его полистай, чтобы понять нужно ли это тебе или ты просто: соберешь бизнес-требования, карандашиком нарисуешь информационные потоки и модули которые за них будут отвечать и выберешь то, что ты там перечислил для реализации
Потому, что архитектура - это абстракция, а не конкретный класс или инструмент. Если смотреть на приложение как на механизм, то архитектура - это проект этого механизма, план его работы, взаимодействия деталей, логики передачи управления, логики разбиения на подсистемы. Это очень комплексная тема. Был тут один новичок, который решил всех учить правильной архитектуре. В его понимании, проектирование архитектуры начинается с того, что ты создаешь класс, именуешь его, придумываешь методы... Не имея плана. Просто вот, стихийно. А люди прошаренные, как дураки, листик, карандашик или доску с маркером используют, закорючки рисуют. UML какой-то там ковыряют потом. Разве это программирование? Разве стрелочки-кружочки это по-взрослому? То ли дело сразу класс на ровном месте бомбануть. А ведь все на деле еще хуже. Окромя архитектуры приложения надо не забывать про архитектуру модели данных. Про архитектуру клиент-серверного транспорта. Я не про формочкопосылание по ссылке. Я про шлюзование запросов, например.