Спагетти код и что с ним делать #228291


#0 by masky
что делать с множеством вложенных друг в друга if'ов? сейчас дошел до такого кода :
#1 by Omega
вам непонятно, что написано в этой процедуре?
#2 by GrayT
Дошел? Тогда разворачивайся и возвращайся....
#3 by Эльниньо
Переделай в:
#4 by masky
От этого я и ухожу..
#5 by mg-samara
А зачем уходишь? Тебе это непонятно?
#6 by masky
ага.. потом хрен разберешь что зачем..
#7 by kir-g
Пиши пояснения в начале
#8 by mg-samara
Ну это наверное все индивидуально, мне например больше понравился бы
#9 by masky
ЧЕМ??
#10 by GrayT
Представь что у тебя есть серия условий, после которых нужно еще выполнить какой-нить код.... Можно и твоим способом, но вынести серию условий в функцию.
#11 by RomaH
-------------------------------------------------------------------------------- Запрещается использование вместо вложенных конструкций Если...КонецЕсли конструкций типа Если...ИначеЕсли...ИначеЕсли... с «обратными» условиями, как сложные для анализа, модификации и отладки. Пример Конструкция: должна быть заменена на конструкцию:
#12 by masky
это откуда?
#13 by RomaH
Система стандартов и методик разработки конфигураций для платформы 1С Предприятие 8.0 Версия 8.1.0.12
#14 by Господин ПЖ
Стесняюсь спросить... А где в вложенные if ?
#15 by masky
а НЕТУ! я от них ухожу!
#16 by GrayT
Интересный термин "обратные" условия. как родился интересно... Они ему не нравились - - то как он от них избавился
#17 by Господин ПЖ
бугага... валяюсь...
#18 by masky
ф двадцатке..
#19 by Ангел-Хоронитель
скоростью выполнения, например.....
#20 by Guk
Интересно, и типовые будет из-за такой ерунды переписывать? Забавно наверное переписать всё закрытие месяца в бухии, только из-за того что не просекаешь вложенные ифы ;)...
#21 by masky
хм. скорость выполнения и так большая и еще растет (компы боле быстрые становятся), а скорость разработки с увеличением объема все медленнее и дороже.
#22 by masky
не так забавно как кажется..
#23 by Guk
Если ты в трех соснах разобраться не можешь, как же ты в реально сложном коде разбираешся?...
#24 by masky
1) реальный код не дожен быть сложным 2) в реальном коде комментариев должно быть столько же сколько кода
#25 by GrayT
Наивный
#26 by LarsVVS
В 1С код - "самодокументируемый" :)
#27 by zxcvb
Тебе не пофиг (положа руку на сердце)?
#28 by masky
а разве вы так не делаете?
#29 by masky
неа.. потом мне с этим разибраться...
#30 by masky
могу выслать обработку, в которой процедура с 22 если - иначе если , на полторы тыщи строк.. разберитесь в приемлимое время..
#31 by Guk
>>реальный код не дожен быть сложным LOL! Поучи пожалуйста программистов фирмы 1С реальный код в типовых писать ;)...
#32 by masky
если заплатят - с удовольствием..
#33 by zxcvb
Наивный.:) Как тебе такое творчество (последние несколько минут)? //______________________ Разбираться кто-то будет потом... Хотя надо работать, а не разбираться. Если код неподьемный для тебя - переписываешь все нафиг. Бывает такое, особенно в нетиповых, где код разными людьми, переписывался и обрастал костылями.
#34 by masky
тут бы у меня было 5 строчек + 2 процедуры + 10 строчек комментов..
#35 by dk
Если количество строк внутри условия или цикла больше 10, то пишу текст условия в конце условия / цикла    Если Условие2 Тогда
#36 by Guk
А тут?
#37 by zxcvb
Было бы... А я уже запустил - все почти работает. Сейчас подрихтую и через пару минут все пойдет в эксплуатацию. 1С - это быстро-грязная разработка. Редко бывает, что нужен действительно хороший код, да и то, в основном из-за производительности.:)
#38 by zxcvb
Модуль Закрытия месяца - вообще памятник.:)
#39 by masky
я бы уволил...
#40 by Guk
LOL! А Нуралиев то не знает ;)))...
#41 by zxcvb
За, что? Позвольте поинтересоваться.
#42 by masky
за безграмотность...
#43 by GrayT
я валяюся
#44 by masky
мой начальник отдела так в закрытии месяца не разобрался..
#45 by zxcvb
Давайте я у вас буду начальником, удаленно? Не помню сколько раз уже этот модуль правил. Да и судя по всему тоже.:) Так, что модуль тут не при чем.
#46 by Господин ПЖ
Выньте меня из под стула...
#47 by masky
раз вы неопмните сколько этот модуль правили вместо того чтобы переписать - не быть вам у нас начальником..
#48 by GrayT
Маски шоу прям
#49 by zxcvb
Клиенты ведь разные все.
#50 by Господин ПЖ
Ему делать более некуй в жизни... По воробьям стреляете...
#51 by КонецЦикла
+ 1 жесть...
#52 by TEN
:) Работать не будет. Че бум в док присваивать, если не нашли по коду? - наш человек! Идиоты. Слово Case видимо не слышали. Общий подход - совершенно правильный. Обратная логика. Если цикл - все что не нужно - перебирать выносится в начало цикла. После блока фильтров - совершенно понятно, что тут, только то, что нужно обрабатывать. Весь фильтр со всей логикой виден сразу, а не размазан по пятистам страницам кода.
#53 by masky
>Весь фильтр со всей логикой виден сразу, а не размазан по пятистам страницам кода. эт смотря какой фильтр... :(
#54 by Guk
>> мой начальник отдела так в закрытии месяца не разобрался заповедник какой-то ;)))...
#55 by masky
а еще у нас есть линуксоид.. который дома 1С запускает под VM ware
#56 by TEN
Бывает. Что до стиля кода 1С - увы, не пример для подражания. В нормальных конторах, за два вложенных ифа - с программером не разговаривают, а за три - ваще морду бьют! :)
#57 by Guk
В нормальных конторах ифы не считают...
#58 by TEN
В нормальных - смотрят за стилем.
#59 by Господин ПЖ
В нормальных  есть своя нотация и мозги друг другу количеством if на квадратный сантиметр не канифолят.
#60 by Guk
Значит Нуралиев не доглядывает...
#61 by masky
а у вас как с сабжем?
#62 by zxcvb
1. Нашли - Спр.ТекущийЭлемент; Не нашли, создали, все равно -  Спр.ТекущийЭлемент;  Я вот тоже линуксоид, только под Wine семерку запускаю. И при чем здесь код?
#63 by masky
>И при чем здесь код? >заповедник какой-то ;)))...
#64 by zxcvb
Ты странный какой-то. О каком качестве кода в среде 1С может идти речь если предназначение большинства проектов это не создание нетленки а подписание акта и вышибание денег из заказчика? Тут все средства хороши, и даже goto.
#65 by smaharbA
Ниче не понял...
#66 by masky
хм.. а потом еще взять денег за рефакторинг кода?
#67 by smaharbA
А ваапчето Шаблон
#68 by masky
теперь я не понял..
#69 by Господин ПЖ
От ситуации зависит. Есть книжка хорошая "Совершенный код" - стараюсь следовать её рекомендации. Если условия сложные - упрощаем, а если простые - то и так сойдет - меньше шансов заблудиться в переменных (не создавайте сущности без необходимости).
#70 by smaharbA
часто помогает ... Правдо ошибки "сыпать" будет, но отработает
#71 by smaharbA
+
#72 by smaharbA
+ если надо очень
#73 by masky
спасибо, помедитируюю...
#74 by smaharbA
Либо сразу так ... Попытка    ВсеПринтеры.УдалитьЗначение(ВыбранныеПринтеры.НайтиЗначение(ВсеПринтеры.ПолучитьЗначение(ВСеПРинтеры.ТекущаяСтрока))) ;Исключение
#75 by Господин ПЖ
жесть. ;)
#76 by Звездочёт
поддерживаю автора :) мне тоже проще читать код в , чем в .
#77 by ShoGUN
Развод! Стопудово! :) Чтоб разбираться, нужно комментировать при написании, и все понятно будет позже.
#78 by Звездочёт
структура кода и комментарий суть разные понятие.
#79 by ShoGUN
В общем - да. Но речь-то именно о понимании. Мне лично конструкция в понятна, и в аналогичной ситуации она все равно неплохо читается. Модуль закрытия месяца,кстати, ковырял. Может не в самой сложной части, но в общем-то код там вполне читабельный. Хотя с производством алгоритмы не элементарные далеко...
#80 by Барабашек
ап
#81 by smaharbA
Модуль закрытия - это детский лепет, практически "линейное" программирование...
#82 by ShoGUN
Ну может когда разберешься - да. :) Плохо, что алгоритмы не всегда есть перед глазами...
#83 by Obed
триллер прям какой-то...
#84 by VladZ
Правило №0: есть код работает правильно - не трожь. Займись тем, что еще не автоматизировано.
#85 by Guk
По сравнению с модулем процедуры выгрузки проводок из ЗиК, закрытие месяца действительно детский лепет...
#86 by Funny
И дались вам эти IF! Пишите как умеете до комментарий оставляйте c ФИО, чтоб было кого вспоминать матами ;)
#87 by Likan
А я в комментах вообче анекдоты травлю... када сам не могу обьяснить что я тама(в коде) понаписал... %)
#88 by Прохожий
Ага. примерно такое:
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С