реклама
разместить

Пост для любителей программной инженерии

Статья для телеграмм канала CDO Club: https://t.me/cdo_club

Первый раз встретил книгу, в которой автор так конкретно и настоятельно рассказывает про методы декомпозиции требований для разработки архитектуры компонентов/сервисов программной системы, сопровождая описание отличной аргументаций и практическими примерами Я таких хороших описаний ранее не встречал (если кто встречал, поделитесь). Да и вообще, тема декомпозиции требований абсолютно не раскрыта в области Computer Science, всех учат больше кодированию, тестированию и системному дизайну с точки зрения отказоустойчивость. В вот в области декомпозиции требований и solution architect основном доминирует метод “функциональной декомпозиции”, который вроде как вообще растет из ООП и примеров в книгах на тему ООП. Собственно его все и используют, хотя по мнению автора (и не могу не согласиться) он сугубо пагубен и не приводит к возникновению элегантных и хороших архитектур программных систем, наоборот, плодя неэффективности и потери времени и денег при разработке и развитии программных систем.

Тут надо сказать, что такое “хорошая архитектура”. Как и то, что “хороший код” это код, который легко менять под изменения требований, “хорошая архитектура” - поддерживает легкое и безболезненное внесение изменений в компоненты системы. То есть задача архитектора так определить структурные компоненты системы, что бы изменение каждого из них минимально влияли на все другие. Вообще то, что изменение требований считается болью ИТ разработчиков не правильно, большинство авторов наоборот пишут о том, что изменения требований - это жизнь, это происходит и это должно быть. А наша задача вести разработку так, что бы эти изменения поддерживать.

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

Автор предлагает использовать другой метод - “декомпозицию на основе нестабильности” (Volatility-based decomposition). Правда тут русский перевод неточен, я бы перевел название как “декомпозиция на основе изменчивости”. Идея тут в том, что бы выделить области в требованиях, вероятность изменений которых велико и инкапсулировать эти изменения в соответсвующие компоненты/сервисы системы. Изменения при этом могут исходить из 2-х “областей”:

  • Изменения требований одного пользователя системы с течением времени
  • Изменения, которые формируются требованиями разных пользователей системы

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

Пост для любителей программной инженерии

Такой подход минимизирует количество изменений, которые надо будет вносить в компоненты системы, при изменении одного из них. Все изменения одной области “инкапсулируются” и макимально изолируются.

Мне такой подход показался очень правильным и элегантным. Это, конечно, краткое изложение идеи, подробнее читайте в первой главе книги "Совершенный софт" Лёве Джувел.

реклама
разместить
Начать дискуссию
Сайт криптобиржи Garantex заблокировали в ходе совместной операции спецслужб США и ЕС

Площадку обвиняют в связях с хакерами-вымогателями.

Сайт криптобиржи Garantex заблокировали в ходе совместной операции спецслужб США и ЕС
55
33
11
реклама
разместить
Президент США Дональд Трамп подписал указ о крипторезерве

Он может состоять примерно из 200 тысяч биткоинов, заявил спецпредставитель по ИИ и криптовалютам Дэвид Сакс.

Источник фото: David Sacks / X
33
11
11
11
Приезжайте к нам в Германию, у нас айтишники живут в коммуналках и пляшут с бубном, чтобы выжить

За 6 лет я успела поработать в трех крупных IT-компаниях, несколько раз меняла жилье и переехала из Мюнхена в Берлин. В статье я расскажу про немецкую бюрократию, налоги и почему даже айтишники с высокими зарплатами живут в коммуналках. А еще, как в Германии искать работу и жилье, сколько стоит здесь жить, как получить медстраховку и как вы можете…

У меня дом 2016 года постройки. Это не лучшее фото фасада — я сделала снимок, чтобы показать последствия новогодних празднований в Берлине. Кто-то запустил фейерверк — квартира сгорела, фасад на несколько этажей закоптился. Но в целом дом чистый и уютный.
66
11
Business Insider рассказало о «чёрных» списках в Meta* — для бывших сотрудников, которых больше не возьмут в компанию

Компания говорит, что в них включают по чётким критериям. Собеседники издания — что попасть в список можно, просто если не понравился менеджеру.

66
44
22
11
«Tether вступил в войну против российского крипторынка»: криптобиржа Garantex рассказала о блокировке кошельков на сумму 2,5 млрд рублей

Платформа временно приостановила все операции, включая вывод средств.

4646
77
55
33
11
11
Я вот не понимаю почему "это стало неожиданным поворотом для платформы" ? Ну вот почему? Пусть владелец Garantex объяснит. Tether обязан блокировать кошельки санкционных лиц и компаний, это известно всем. Почему Менделеев не опустошил кошельки сразу после введения санкций?
Облачные решения для малого бизнеса: детальный и всесторонний обзор
Облачные решения для малого бизнеса: детальный и всесторонний обзор
«АвтоВАЗ» запустил бренд коммерческих автомобилей SKM

И показал две машины из линейки.

Источник здесь и далее: «АвтоВАЗ»
7878
1313
11
Запретили же латиницу. Почему не Добрыня?
[]