Черновик ПЗ
This commit is contained in:
34
Report/includes/ch04-modules.typ
Normal file
34
Report/includes/ch04-modules.typ
Normal file
@@ -0,0 +1,34 @@
|
||||
|
||||
== Детализация реализации по модулям Gradle
|
||||
|
||||
=== Модуль :domain
|
||||
|
||||
Содержит чистую бизнес-логику: `Encryptor`, типы ключей, интерфейсы use case для хранилищ. Не зависит от Android SDK, что позволяет выполнять 12 unit-тестов на JVM без эмулятора. Класс `Encryptor` реализует симметричное шифрование для строк, массивов байт и потоков; метод `generateEncryptionInfo` формирует соль и параметры для проверки пароля без хранения пароля в открытом виде.
|
||||
|
||||
=== Модуль :usecases
|
||||
|
||||
Координирует сценарии приложения: `ManageStoragesEncryptionUseCase`, движок `StorageSyncEngine`, операции с 2FA и текстовыми секретами. Здесь сосредоточена наибольшая доля автоматических тестов (25), так как поведение синхронизации задаётся правилами журнала и блокировок, удобными для изоляции на моках файловой системы.
|
||||
|
||||
=== Модуль :domain-vault
|
||||
|
||||
Инкапсулирует сетевой доступ к Yandex Disk и преобразование исключений Retrofit/OkHttp в доменные коды. Тесты репозитория не обращаются к реальной сети — подставляется фейковый HTTP-слой, что обеспечивает детерминированность CI.
|
||||
|
||||
=== Модуль :ui
|
||||
|
||||
Предоставляет Compose-экраны, ViewModel, навигацию (`WallencDeepLinks`), строковые ресурсы для прогресса задач. Unit-тесты проверяют парсеры и маппинг без поднятия Activity; инструментальные тесты (`androidTest`) валидируют композицию экранов 2FA и секретов.
|
||||
|
||||
=== Модуль :infrastructure-android
|
||||
|
||||
Связывает Room, DataStore, OAuth Activity Result API, реализации репозиториев. Версия схемы БД — 5; миграции отключены (`exportSchema = false`) на этапе прототипа. Инструментальный `YandexAccountRepositoryTest` подтверждает CRUD учётной записи в in-memory БД.
|
||||
|
||||
=== Модуль :task-runtime
|
||||
|
||||
Очередь задач с состояниями `pending`, `running`, `completed`, `failed`, `cancelled`. Используется при длительном шифровании каталогов и будущей синхронизации; UI подписывается на Flow прогресса.
|
||||
|
||||
=== Модуль :vault-contracts и :app
|
||||
|
||||
`:vault-contracts` задаёт точку расширения для новых провайдеров. `:app` — Hilt-модули, `Application`, навигационный граф, сборка APK. Точка входа не содержит бизнес-правил; они делегируются use case.
|
||||
|
||||
=== Журнал разработки и контроль версий
|
||||
|
||||
Исходный код в приватном репозитории Gitea ЮФУ; ветвление по этапам практики. Перед защитой ВКР выполняется полная сборка `./gradlew assembleDebug test` и фиксация отчётов тестирования в `Report/images/` (рис. 27–32).
|
||||
Reference in New Issue
Block a user