С какими типами проектов вы бы отказались работать?

«С какими типами проектов вы бы отказались работать?» — вопрос из категории Софт-скиллы, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

Я бы избегал проектов со следующими характеристиками:

  • Устаревший стек без плана модернизации: Например, проекты на 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) и адекватным процессом разработки.