Skip to main content

KISS - Делай проще

KISS (Keep It Simple, Stupid) - Делай проще

Описание принципа

Принцип KISS призывает к максимальной простоте кода. Простые решения легче понимать, поддерживать и отлаживать.

Применение

  • Избегайте излишней сложности алгоритмов, когда достаточно прямолинейного подхода
  • Применяйте встроенный функционал платформы, библиотек и типовых подсистем, вместо нетривиальных собственноручно написанных алгоритмов
  • Разбивайте сложные процедуры на более простые и понятные части

Пример

// Плохо: излишне сложно
Функция РассчитатьСуммуДокумента(Документ)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ СУММА(Сумма) КАК Итого ИЗ Документ." + Документ.Метаданные().Имя + ".Товары ГДЕ Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Документ);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.Итого;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции;

// Хорошо: просто и понятно
Функция РассчитатьСуммуДокумента(Документ)
Сумма = 0;
Для Каждого Строка Из Документ.Товары Цикл
Сумма = Сумма + Строка.Сумма;
КонецЦикла;

Возврат Сумма;
КонецФункции;
Обратите внимание

В примере выше простое решение не только понятнее, но и может быть эффективнее для небольших наборов данных.

Рекомендации

  1. Используйте говорящие имена переменных и процедур - имя должно отражать назначение элемента кода.

  2. Избегайте глубокой вложенности - лучше вынести условия в отдельные процедуры или функции.

  3. Комментируйте сложные места - если часть кода нельзя упростить, объясните её в комментарии.

  4. Предпочитайте явные решения скрытым - избегайте неочевидных трюков и неявного поведения.

Типичные ошибки при применении

  • Чрезмерное разбиение на маленькие процедуры, которое усложняет понимание потока выполнения
  • Необоснованное использование запросов там, где достаточно простого цикла
  • Реализация собственных алгоритмов вместо использования встроенных возможностей платформы и библиотек
Предостережение

Простота не должна приводить к дублированию кода. Если код повторяется, следует рассмотреть возможность его выделения в отдельную процедуру (принцип DRY).