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