Ответ
Основные принципы, обеспечивающие качество и поддерживаемость кода:
- DRY (Don't Repeat Yourself) – избегание дублирования логики. Повторяющийся код выносится в функции, утилитарные классы или расширения.
- KISS (Keep It Simple, Stupid) – предпочтение простых, прямолинейных решений сложным и «умным».
- Принципы SOLID – особенно:
- Single Responsibility (SRP): Класс/модуль должен иметь одну и только одну причину для изменения.
- Dependency Inversion (DIP): Зависимости должны строиться на абстракциях (протоколах), а не на конкретных реализациях.
- Чистое именование – имена переменных, функций и классов должны явно отражать их назначение.
- Самодокументируемый код – комментарии пишутся только для объяснения почему (неочевидная бизнес-логика), а не что делает код.
Пример:
// Неясное именование
func process() { ... }
// Ясное, самодокументируемое именование
func loadUserProfile(completion: @escaping (Result<User, Error>) -> Void) { ... }