Ответ
Я бы избегал проектов со следующими характеристиками:
- Устаревший стек без плана модернизации: Например, проекты на Objective-C без миграции на Swift или монолитные MVC-контроллеры с нарушением принципа единственной ответственности.
- Отсутствие базовых инженерных практик: Нет CI/CD, код-ревью, автоматических тестов или системы управления задачами.
- Сомнительная предметная область: Криптовалютные схемы или азартные игры из-за этических соображений и высокого риска блокировки в App Store.
- Нереалистичное планирование: Жесткие дедлайны без этапа прототипирования или MVP (например, требование «сделать клон сложного сервиса за месяц»).
Пример антипаттерна в коде:
// God View Controller – антипаттерн, смешивающий логику, сетевые запросы и UI.
class GodViewController: UIViewController {
// 2000+ строк кода, управляющих всем
func fetchData() { /* networking */ }
func processData() { /* business logic */ }
func updateViews() { /* UI updates */ }
}
Я предпочитаю проекты с современным стеком (SwiftUI, Combine), четкой архитектурой (VIPER, Clean Architecture) и адекватным процессом разработки.