Удобство и простота обслуживания
Удобство и простота обслуживания – способность системы изменяться. Это касается
изменения компонентов, сервисов, функций и интерфейсов при добавлении или изменении
функциональности, исправлении ошибок и реализации новых бизнес-требований. Удобство и
простота обслуживания также может влиять на время, необходимое на восстановление
работоспособности системы после поломки или снятия с эксплуатации для обновления.
Улучшение удобства и простоты обслуживания системы может повысить доступность и снизить
влияние дефектов времени выполнения. Удобство и простота обслуживания приложения
часто является функцией всех параметров качества в целом, но существует ряд ключевых
факторов, которые могут напрямую влиять на удобство и простоту обслуживания:
Слишком большая зависимость между компонентами и слоями и несоответствующее
связывание с конкретными классами усложняет замену, обновления и внесение
изменений и может привести к тому, что изменение отдельных классов будет влиять
на систему в целом. Правильно разделяйте системы на слои или функциональные
области, которые четко обозначают функциональность UI, бизнес-процессов и доступа
к данным системы. Реализуйте зависимости слоев с помощью абстракций (таких как
абстрактные классы и интерфейсы), а не конкретных классов, и максимально сократите
количество зависимостей между компонентами и слоями.
Использование прямого взаимодействия является препятствием при изменении
физического развертывания компонентов и слоев. Правильно выбирайте модель,
формат и протокол связи. Проектируя интерфейсы, обеспечивающие возможность
использования подключаемых модулей или адаптеров для улучшения гибкости и
расширяемости, создавайте подключаемую архитектуру, которую легко обновлять,
обслуживать и тестировать.
Использование собственных реализаций функций, таких как аутентификация и
авторизация, препятствует повторному использованию и затрудняет обслуживание.
Чтобы избежать этого, максимально используйте встроенные функции и возможности
платформы.
Несвязность кода логики компонентов и сегментов усложняет их обслуживание и
замену и создает ненужные зависимости от других компонентов. Проектируйте
связные и слабо связанные компоненты, чтобы обеспечить максимальную гибкость,
упростить их замену и повторное использование.
Объемный, трудно поддающийся управлению, хрупкий или слишком сложный код,
затрудненная реструктуризация из-за требований обратной совместимости.
Проектируйте системы, правильно разделяя их на слои или функциональные области,
которые четко обозначают функциональность UI, бизнес-процессов и доступа к
данным системы. Продумайте, как будете реализовывать внесение изменений в
бизнес-процессы и динамические бизнес-правила, возможно, через использование
подсистемы управления бизнес-процессами, если предполагается их изменение.
Реализуйте правила с помощью бизнес-компонентов, если предполагается изменение
только значений бизнес-правил. Используйте внешний источник, такой как обработчик
бизнес-правил, если предполагается изменять правила принятия бизнес-решений.