Сергей Петров поделился системным взглядом на проектирование сложных программных продуктов (на примере программ для сотрудников отделений почтовой связи).
«Часто многие требования на самом деле являются не требованиями, а ограничениями. В чём же отличие? Требования — это чёрный ящик, они ничего не говорят про устройство системы внутри. А любые требования, предъявляемые к тому, как система устроена внутри, ограничивают инженерные и конструкторские решения. Это уже не требования к системе, а требования к подсистемам внутри неё. Такие ограничения надо выявлять, отслеживать и обсуждать, а часто — снимать».
«Архитектурное рассмотрение позволило увидеть модули нашей системы (UI софта):
— Контролы — рукоятки, за которые дёргает пользователь, взаимодействуя с надсистемой (софт) через нашу систему (UI);
— Компоновка — варианты размещения контролов для их успешного использования. Зависят от навигации, локаций и контекстов;
— Навигация — принципы перемещения между локациями».
«Результат нашего труда — описание. Даже результат труда разработчиков, которые воплощают описанный нами UI, — это описание того, как будет работать система в жизни. Воплощение софта и его UI происходит только в ходе эксплуатации. Справедливости ради, воплощением можно с натяжкой признать все тестовые запуски».
«Мы не конструируем элементы нашей системы: UI-компоненты, навигацию и компоновки. Это делает кто-то другой, а значит, нам надо держать в фокусе работу смежных команд и много коммуницировать».
https://habr.com/ru/company/posttech/blog/567170/
Post #806
6.91K