Код-ревью Middle Расширения, БСП и типовые обновлено
Ревью кода расширения
Вопрос
Разработчик сделал расширение для типового документа. Найдите проблемы.
&Вместо("ОбработкаПроведения")
Процедура Расш1_ОбработкаПроведения(Отказ, РежимПроведения)
// Скопирован весь текст типовой процедуры (400 строк) с правкой одной строки
Движения.ТоварыНаСкладах.Записывать = Истина;
КонецПроцедуры
&После("ПередЗаписью")
Процедура Расш1_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Сообщить("Документ записан");
УстановитьПривилегированныйРежим(Истина);
КонецПроцедуры
Коротко
Правило для расширений: минимальное вмешательство в типовой код, правильный выбор аннотации и та же культура кода, что и в основной конфигурации, включая проверки ОбменДанными.Загрузка и аккуратность с привилегированным режимом.
Что должен найти ревьюер
- Ошибкастрока 1&Вместо с копией 400 строк типового кода: после обновления типовой расширение будет молча выполнять старую логику. Для правки одной строки нужен &ИзменениеИКонтроль.
- Стильстрока 3Копирование большого куска типового кода увеличивает стоимость каждого обновления.
- Ошибкастрока 9Сообщение «Документ записан» в ПередЗаписью ложное: запись ещё не произошла и может быть отменена. Да и не пропущен ли случай ОбменДанными.Загрузка.
- Безопасностьстрока 10Привилегированный режим включается без нужды и не выключается: дальнейший код выполнится без проверки прав.
Разбор
Правило для расширений: минимальное вмешательство в типовой код, правильный выбор аннотации и та же культура кода, что и в основной конфигурации, включая проверки ОбменДанными.Загрузка и аккуратность с привилегированным режимом.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.