АРХИТЕКТУРА ПОРТОВ И АДАПТЕР В ИТЕРАТИВНЫХ РАЗРАБОТКЕ С ОГРАНИЧЕНИЯМИ ПО ВРЕМЕНИ
Ключевые слова:
порты и адаптеры, гексагональная архитектура, слоистая архитектура, луковичное архитектура, итеративная разработка, программное обеспечение (ПО), проектирования программного обеспечения (ППС)Аннотация
Рассмотрено применение архитектуры портов и адаптеров (другие названия луковичное, слоистая, гексагональная) в итеративный разработке программного обеспечения в соответствии с требованиями, которые поступают в хронологическом порядке на практическом примере. Каждая итерация подкреплена схеме архитектуры, возникшими проблемами и их решением. Показана целесообразность применения рассматриваемой архитектуры при итеративной разработке программного обеспечения с ограничениями по времени. Разработана система сбора данных о концентрации углекислого газа среды и температуру воздуха в режиме реального времени с распределенной сети датчиков с заданной геолокации для медицинских учреждений. Сведения о датчиках (идентификатор, дата ввода в эксплуатацию и дата окончания эксплуатации) разместить в таблице Google Sheets. Данные с датчиков собирать на сервере сервисом с REST интерфейсом. Исследован процесс ППС в конкретном проекте по существенными ограничениями по времени, применяя правила и принципы, которые заложены в архитектуре портов и адаптеров, при этом, используя основные метрики, сделать оценку сложности добавления нового функционала, тестирование, параллельной разработки, скорости и простоты разработки; сделать выводы относительно условий, когда целесообразно применять выбранный подход к проектированию ПО, и относительно способности такого подхода воспринимать изменения требований к ПО. Архитектуру портов и адаптеров полезно использовать, если в системе будет множество внешних интеграции (сервис почты, Push-уведомления, БД, система ведения отчетов и т. П.). Односторонняя связь с адаптерами гарантирует целостность главной алгоритмической части програми.Архитектура портов и адаптеров дает возможность параллельной разработки за счет малой связности между слоями. Глубокое знание предметной области позволяет сразу правильно определить слой домена. Построение структуры системы, оптимально отражает предметную область, требует наибольших затрат времени, при этом, исправления ошибок, допущенных на этапе определения слоев системы (интерфейсов и систем взаимодействия), дорого стоить в будущем. Тестирование доменной логики происходит быстро за счет Unit-тестов, другие тесты писать легко за счет малой связности между слоями. Данная архитектура не является кардинально новым подходом, но она берет лучшее из OOP, SOLID, DDD и определяет как применить эти принципы лучшим образом.