Обложка канала

Александр Кунташов — про 1С и не только

Заметки про разработку и смежные штуки. 1С, Битрикс24, 1Script, PHP, Linux, JS и другое

Александр Кунташов — про 1С и не только

6 лет назад
Открыть в
💩 Две простейшие строчки кода, логику которых не поймешь с первого раза

На скриншоте за "самодокументирующимся" кодом (ну так гипердлинные идентификаторы обычно оправдывают) прячется вот такая красота:

НеПрервано = Прервано();
Если НеПрервано = Ложь Тогда
...

Такое ощущение, что специально сделали поперек всей логики, чтобы читателю голову сломать, эдакая обфускация.

Этот код можно было бы еще "улучшить", добавив отрицание вместо явного сравнения с Ложью. Но к нашему счастью, метод Прервано() тоже спроектирован не удачно и может вернуть не только значение булева типа, поэтому тут обошлось без Если Не НеПрервано Тогда... (а было бы веселее!)

Ну и, очевидно, с такой кривой логикой "повествования" (НеПрервано = Прервано()) какие-либо длинные "самодокументирующиеся" имена становятся не только бесполезными, но и вредят, т.к. в таком идентификаторе при беглом чтении кода "Не" можно и не заметить, или даже наоборот, увидев его в одном идентификаторе, на автомате прочитать во втором, похожем.

(Если что, это из модуля 1С:Синхронизация с Битрикс24 для УТ 10.3)

#говнокод #codesmell