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

promo fixin december 28, 2020 16:57 1385
Buy for 30 tokens
Добро пожаловать в журнал Осипова Сергея Александровича, известного также как Fixin и Гений 1С. Рекомендую ознакомиться с Часто Задаваемыми Вопросами обо мне. Что я хочу в подарок - список. Мой проект " Секс за Ваши". Если вы хотите написать пост обо мне или почитать, что пишут…
  • 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