Самоподобие в программной архитектуре

Чтение лекций — как чтение хорошей книги. Каждое обсуждение материала с аудиторией дает шанс прийти к новым, более глубоким выводам. Скажем, в отношении архитектуры программной системы уровня классов.

Умозрительный обход иерархий наследования и переходы от агрегатов к их частям и обратно наводят на мысль о том, что объектно-ориентированная архитектура многих систем невероятно компактна. Надо только увидеть в ней свертку. Чаще всего свертка архитектуры достигается рассуждениями, которые индуктивны «наружу» и дедуктивны (или точнее — рекурсивны) «внутрь».

Например, в современном ООП в большинстве своем индуктивны и рекурсивны:

  • дисциплина создания и уничтожения экземпляров классов (вызов конструкторов и деструкторов атрибутов и подобъектов);
  • порядок определения атомарных характеристик класса как типа данных (см., скажем, CopyConstructible в C++);
  • критерии безопасности классов и методов (вплоть до базовых операций языка) в отношении исключений;
  • избранные шаблоны объектно-ориентированного проектирования (к примеру, Composite / «Компоновщик» из библиотеки GoF).

Самоподобие объектно-ориентированной архитектуры невозможно не видеть… А как оно бережет от лишних когнитивных усилий хорошего программиста и архитектора!

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.