Другие языки программирования и технологии

Что такое архитектура в программировании? И чем собственно архитектор занимается?

Я вроде как представляю что это, но хотелось бы услышать объяснение упрощённым языком, и с примерами.
Я думал, что архитектура - это что-то вроде фундамента приложения. Т. е. пишешь архитектуру приложения, а потом на этой самой архитектуре можно строить другие приложения. Т. е. добавляя новые компонеты, подключая библиотеки, и тд. Т. е. архитекрута, это своего рода своеобразный код, написанный программистом для программистов, которые будут на него одевать всякие модули. Поправьте если не прав.
Человек состоит из костей, мышц, органов чувств, пищеварительной и дыхательной систем, половой системы и тп - это архитектура.
А количество и расположение родинок на пятой точке - это детали имплементации. Примерно так.

Помиомо создания архитектуры, архитектор много еще чем занимается. Обычно он - технический мозг компании, свобода действий у него большая, но цель у него - вполне понятная. Сделать так, чтоб софт был хорошим. Насколько стоит увлекаться расширяемостью софта или чем-то еще [возможно] важным - в каждом конкретном случае архитектору виднее (если повезло с архитектором) . Архитектура kiss (keep it stupid, simple) зачастую важнее любого оверинжиниринга и расширяемости бывает, все зависит от задач.
АК
Артемка Косиков
19 662
Лучший ответ
Архитектура - это общее устройство кода приложения: библиотеки, модули, классы, функции и их отношения. Т. е. общее описание. А программисты пишут конкретный код в этой архитектуре.
Качественная архитектура приложения должна быть расширяемой. т. е. позволять добавлять новые части.
ДМ
Дим Мим
83 810
Архитектура это не кракас, конечно, но также ИМХО не стратегия развития, от умных дяденек с бумагами. ИМХО архитектура, это общий план структуры: где, что, и как связано. Например: в 1-й подсистеме работаем с файлами и обработка текста, во 2-й подсистеме связь с БД, в 3-й главный интерфейс юзера, в 4-й вычисления, с отдельным интерфейсом, и тд.
Если хорошо продумано, на этапе проектирования, то система легко развивается, много лет. Но если плохо, то каждая версия, новая, более запутана, в конце уже нельзя ничего понять, вообще, и система умирает: никто уже не может дополнять и изменять разумно.
На пальцах: архитектура приложения - это принципы, по которым живёт и развивается это приложение или даже программно аппаратный комплекс.

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

Ни в коем случае архитекторы НЕ ДОЛЖНЫ писать код. Теоретиков опасно пускать в реализацию. Их задача объяснить ЧТО НАДО делать, а не делать самим.

Программисты для программистов - это одна из моделей разработки, при которой разработчики делятся на прикладников и системщиков. К архитектуре приложения эта модель имеет мало отношения.
Kuka ***
Kuka ***
11 112