2 Модуль А - Спринт-1
root edited this page 2026-03-31 22:07:31 +03:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Разработка UIKit должна вестись как независимый модуль со следующими характеристиками:
Характеристика	Описание
Изолированность	Библиотека существует как самостоятельный проект с собственной системой контроля версий, не зависящий от основного приложения
Повторное использование	Компоненты могут быть подключены к нескольким приложениям, в том числе и через менеджер пакетов
Независимое версионирование	Библиотека имеет собственный жизненный цикл и версии 
Инкапсуляция	Внутренняя реализация скрыта, наружу доступен только четко определенный API

Необходимо соблюдать SOLID и DRY.
SOLID в контексте UIKit
Принцип	Применение в UIKit
S (Single Responsibility)	Каждый компонент отвечает только за свою функцию: Button — только за отображение кнопки, не содержит логики бизнес-процессов
O (Open/Closed)	Компоненты открыты для расширения (через пропсы/параметры), но закрыты для модификации
L (Liskov Substitution)	Дочерние компоненты (например, PrimaryButton, SecondaryButton) должны заменять базовый Button без изменения поведения
I (Interface Segregation)	Компоненты не должны зависеть от интерфейсов, которые не используют. Каждый компонент получает только необходимые параметры
D (Dependency Inversion)	Зависимости направлены на абстракции (интерфейсы/протоколы), а не на конкретные реализации
DRY (Don't Repeat Yourself)
•	Единый источник истины: темы, цвета, типографика определяются в одном месте
•	Переиспользование стилей: общие стили выносятся в базовые классы/миксины
•	Фабрики компонентов: создание вариаций через параметры, а не копирование кода
•	Общие утилиты: хелперы для работы с размерами, цветами, анимациями