Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
К сожалению, есть молодые коллеги, для которых уже вопрос о том, с чего начать проектирование системы, вызывает дрожь. А когда речь идёт об очень сложных системах, оторопь берёт и опытных архитекторов.Т.е. вы предлагаете психотерапевтический приём, предназначенный для того, чтобы успокоиться и перестать дрожать? Ну тогда да, возможно кому-то и будет полезно. Потому что к разработке архитектуры это, уж извините, не имеет отношения.
Выясните [...] к чему будет обращаться Ваша программа. [...] Те, к которым будет обращаться программа (включая БД), — снизу.
Для систем, нарисованных снизу, укажите компоненты, которые будут отвечать за доступ к этим системам. Объедините все эти компоненты одним контуром и обзовите слоем доступа к данным.
Иногда UI тоже может обращаться к API.
В маленьких прямоугольниках внутри этого контура перечислите основные бизнес-задачи. Один компонент Вашей системы будет решать одну бизнес-задачу.
Но самое-то грустное не в этом. Самое грустное в том, что из вашей схемы совершенно не понятно, что именно в реальности надо делать. Она бессмысленна
Но зачем критиковать?
Если есть вопросы, то можно загуглить, скачать книгу, спросить у автора.
Она задаёт общее направление для рассуждений, упорядочивает мысли
заинтересовывает читателя в процессе проектирования.
А зачем? Обычно к книгам по архитектуре приходят люди, которые и так знают, зачем им это надо. А тех, кто не знает. может, лучше и не заинтересовывать?
Вот простой пример, когда спроектировать систему нужно (например, руководство отдало приказ программисту), а знаний не достаточно. На то, чтобы читать книги и аккуратно всё применять на практике, времени в этом случае нет.
А Вы, вместо того, чтобы ему помочь, предлагаете ему пойти подальше.
Если у Вас есть своё решение, предложите его.
Отдавать проектировать систему человеку, у которого для этого недостаточно знаний? И нет времени на самообучение?
Вот пришёл ко мне юный архитектор, вроде как образование профильное и всё такое. Но на практике с разработкой архитектуры он в вузе не сталкивался.
Не работает.
А в соседнем отделе начальство… дало программисту (даже не ведущему) проектировать систему. Приходит ко мне, типа «как быть». Что, послать его учиться? Да его уволят, хотя, заметьте, не он виноват.
Она задаёт общее направление для рассуждений, упорядочивает мысли и заинтересовывает читателя в процессе проектирования. Разве этого мало?
ожидал четко сформулированных задач, которые должна решать будущая система, и список требований, которым должна удовлетворять будущая система
ожидал четко сформулированных задач, которые должна решать будущая система, и список требований, которым должна удовлетворять будущая система.
От tutorial'а для молодых коллег ожидал четко сформулированных задач, которые должна решать будущая система, и список требований, которым должна удовлетворять будущая система.
Оба пользовательских интерфейса предназначены для школ, которые не могут себе позволить разработку своего собственного сайта.
1) Я не считаю работу архитектора не нужной.
2) Я не считаю что работа архитектора — это написание документации (впрочем это одна из вещей которой архитектор занимается в рабочее время, как и многие другие роли в SDLC)
Архитектуру надо придумывать только тогда, когда продукт рефакторится.
До этого создавать самое простое, что возможно; обвешивать датчиками (измерять все что можно) и по необходимости оптимизировать узкие места, покрывать все тестами и чистить код и инфраструктуру от пахнущих кусков.
«Тестирование представляет собой способ определения уровня качества программного продукта, а не способ его обеспечения.»
«Важно, особенно при проектировании и разработке по гибкому процессу, чтобы итерация включала как проектирование архитектуры, так и разработку реализации. Это поможет избежать масштабного проектирования наперёд.»
Плюс интересует каким образом архитектура, придуманая на стадии концепции (когда не известно ни поведение системы под нагрузкой, ни собтсвенно сам характер нагрузки) поможет чего-то избежать
Никто в здравом уме не будет допиливать продукт, который склепал Вася, а оставят его как паблик альфу и сбоку с нуля построят нормальное решение.
проект системы контроля успеваемости для средней школы. Возьму её по двум причинам. Во-первых, все мы учились в школе. Во-вторых, у многих из нас дети сейчас учатся в той же школе. Из-за этого, надеюсь, предметная область будет всем понятна.
когда архитектура создается малой кровью, большая кровь появляется на этапе реализации и сопровождения.
Бизнес-логику в БД в данном случае засунуть не удастся.
Архитектура приложения малой кровью