Вопрос проверяет умение писать простой, понятный и поддерживаемый код без избыточной архитектурной сложности.
Принцип KISS означает, что решения должны быть максимально простыми и очевидными. Код должен легко читаться и пониматься другим разработчиком без дополнительных объяснений. Избыточные абстракции, сложные иерархии и «умные» решения ухудшают поддержку. Простота снижает количество ошибок и ускоряет разработку. Сложность допустима только тогда, когда она действительно необходима.
Принцип KISS лежит в основе качественного инженерного мышления и напрямую влияет на долгосрочную поддержку проекта.
Под простотой понимается не примитивность, а:
минимальное количество сущностей
очевидные зависимости
прозрачный поток выполнения
Простой код:
легче читать
проще тестировать
быстрее изменять
На практике принцип выражается в следующих решениях:
использование знакомых паттернов вместо экзотических
отказ от преждевременной универсальности
минимизация уровней абстракции
Пример:
// Плохо: лишняя абстракция без реальной пользы
protocol DateProviding {
func now() -> Date
}
// Хорошо: простое и понятное решение
let currentDate = Date()
KISS напрямую влияет на:
выбор архитектуры
глубину слоёв
количество модулей
Чем проще требования — тем проще должна быть архитектура.
KISS помогает удерживать код в рабочем и понятном состоянии. Если решение сложно объяснить — скорее всего, оно слишком сложное.