fixin (fixin) wrote,
fixin
fixin

Парадокс: Читаемость кода за счет лишних прогонов

У меня был вот такой код, где выполнялось по выбору пользователя N обработок.

И в конце нужно было выдать пользователю подтверждение, какие обработки выполнены.

Сначала я написал код так, но это было неправильно:


Сообщение = "";
Для Каждого
Эл Из МассивОбрабатываемыхЭлементов
 Если НужнаОбработка1 Тогда
 
Сообщение = Сообщение + "Обработка 1" + Символы.ПС;
 
ВыполнитьОбработку1();
 КонецЕсли;
 Если
НужнаОбработка2 Тогда
 
Сообщение = Сообщение + "Обработка 2" + Символы.ПС;
 
ВыполнитьОбработку2();
 КонецЕсли;
 ...
 Если
НужнаОбработкаN Тогда
 
Сообщение = Сообщение + "Обработка N" + Символы.ПС;
 
ВыполнитьОбработкуN();
 КонецЕсли;
КонецЦикла;

Предупреждение("Над " + МассивОбрабатываемыхЭлементов.Количество() + " объектов выполнены обработки:" + Символы.ПС + Сообщение);

Потому что список выполненных обработок повторялся столько раз, сколько в массиве элементов.

Я решил не переписывать код, а вставить в начало цикла строку:


Сообщение = "";

Как вариант, облагородить код можно было бы и по другому:

Добавлять в сообщение строки только на первом прогоне цикла.

Сформировать строку сообщения отдельно от цикла.

Но тогда бы это было более громоздким, вот в чем парадокс. А как бы вы решили эту задачу?

Только не предлагайте все условия и ссылки на обработки загнать в массив. Это очевидное решение, но читается тоже так себе, потому что в 1с нет ссылки на функцию, есть только метод EVAL, выполняющий строку кода. Хотя вариант, конечно.

Tags: , Хороший стиль программирования
Subscribe

Posts from This Journal “1С” Tag

  • 1С и искусственные серверные барьеры

    Заметил, что в управляемых формах 1С принуждает программистов к плохой архитектуре решений. Вкратце упомяну, что теперь большинство внешних…

  • Особенности белорусского Налогоплательщика

    Взял подработку у одного знакомого чувака из Беларуси. Платил мало (я то беру 1500 в час, а там по 800), но знакомый хороший, грех было отказывать,…

  • 1С отрицает очевидное

    Работаю с флагманом 1С, конфигурацией ERP. Вижу, что 1С прошило всю конфигурацию обращениями к модулям, где разработчик, внедряющий 1С может…

promo kibernetika 20:58, yesterday 4
Buy for 40 tokens
Одно время мой закадычный друг в Йемене, Саша Воронин, жил в Сане в типичном йеменском доме, который хозяин через министерство обороны сдавал советским специалистам. Сам хозяин вместе с семьей оставался в этом же доме в полуподвальном помещении. Семья была очень большая, где-то около 12 человек.…
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 31 comments