Признаки плохого программирования Ключевые слова: программирование, стиль
Функции с большим числом параметров
К сожалению, в 1С нет возможности обращаться к параметрам по имени, поэтому нужно стараться избегать по возможности функций с большим числом параметров и использовать вместо списка параметров структуры.
1. Можно перепутать позицию параметра.
2. Если изменяется число параметров, например добавляется новый параметр, приходится переписывать все вызовы функции.
Пример плохого стиля:
ПеретаскиваниеВНовуюОбластьДанных(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка, ПраваДоступаПользователей, МодифицированностьФормы)
Использование в коде программы конкретных данных
Пример плохого стиля:
Если ИмяПользователя="Иванов_С" Тогда ... КонецЕсли
Представьте потом, что если пользователь уволится, нужно будет найти все случаи, где встречается Иванов_С и сделать замену на нового сотрудника.
Пример плохого стиля:
Если Справочник.Код=17 Тогда ... КонецЕсли
Конфигурация должна быть написана так, чтобы можно было наложить ее на пустую базу и она была работоспособна. А в данном случае, если в базе нет элемента с кодом 17, или нужный элемент будет под другим кодом, программа будет работать неверно.
Использование глобальных переменных
Такой прием, хоть и часто используется, но снижает возможности повтороного использования кода.
Если функция не использует глобальных данных, а оперирует только переданными в нее данными, ее легче контролировать, изолировать и повторно использовать в другом коде.
Дублирование кода
Весь дублирующийся функционал нужно выносить в процедуры и функции:
Сравните:
А=Макс(Х,-Х);
Б=Мин(Y,-Y);
Против:
А=Модуль(Х);
Б=-Модуль(Y);
Замена индекса массива кодом
В коде начинающих программистов часто встречаются конструкции вида:
А1=0;
А2=0;
А3=0;
А4=0;
А5=0;
Против:
Для Каждого Эл из А Цикл
Эл=0;
КонецЦикла;
На самом деле примеры бывают ужаснее (по 100, 200 элементов), просто нет под рукой ссылок.
Имена переменных, процедур и функций
Часто очень приходиться разбирать чужой код. И очень многие забывают о том, что после них будут работать другие люди и читаемость кода зависит от того какие имена переменным, процедурам и функциям мы даем.
Начинающие в большинстве (из-за лени) дают вот таки имена:
Не правильно.
А1, А2
Эл, Пр, Спр, Док
Из-за этого код становиться сложно читаемым.
Правильно
Без локализации.
Счетчик, СправочникКонтрагенты
С локализацией.
//гл - глобальная, ф - форма, м - общая модуль, л - локальная процедура/функция, сз - список значений и т.д.
лСчетчик, мСправочникКонтрагенты, лсзСправочникТМЦ
Более детально можно почитать в любой книге по программированию + на ИТС достаточно подробно описаны данные правила (дайте пожалуйста название темы на ИТС, не нашли).
Еще можно почитать здесь: Книга знаний: Kazakh Notation (Казахская нотация) В программировании это называется "венгерская нотация".
Явное объявление локальных переменных
Желательно явно объявлять локальные переменные, как ни лениво это делать. Это дает возможность увидеть вам список переменных, используемых в функции и избежать конфликтов с глобальными переменными.
Использование текущей даты в функциях
Иногда встречаешь код, где внутри функции используется вызов ТекущаяДата().
Во-первых это нарушает изолированность функции, т.к. используются данные, которые не передаются в
фунцию.
А во-вторых это лишает нас возможности получить результаты функции на указанную дату, а часто если вначале такое и не нужно, то потом требуется. Пример из жизни: функция вычисляла на текущую дату накопленную сумму покупок покупателями для расчета текущего рейтинга. А затем понадобилось узнать, какая сумма была накоплена на дату Х, чтобы проверить, правильно ли был рассчитан рейтинг. Пришлось переделывать функцию.
Прочее
Напишите здесь ваши мысли.
|