Имя: Пароль:
IT
 
Используете Goto (переход по метке)?
Ø (Волшебник 09.12.2020 10:48)
,
0 Zapal
 
04.12.20
10:32
1. нет! Код должен быть идеален! 46% (26)
2. почти никогда, но пару раз было 30% (17)
3. да! Свободно и без ограничений 18% (10)
4. да, но только когда никто не видит 7% (4)
Всего мнений: 57

немного предыстории, возможно кто-то не в курсе. Считается что использование этой конструкции показывает низкое качество кода. В некоторых языках его просто запретили

написал вот я его недавно и задумался - я один такой плохой или нас много? Насколько это явление вообще распространено в одинэсной среде? В типовых вроде не припомню, возможно им там тоже запретили

и да, давайте сразу договоримся - Прервать, Продолжить и Возврат это другое, здесь нет смысла делать опросы, их используют все. Речь конкретно о команде Перейти
206 Paint_NET
 
07.12.20
09:17
(204) Запросы с циклами - это отдельная дисциплина специальной олимпиады.
Впрочем, тут уже была ветка, в которой демонстрировались некоторые исключительные случаи, когда без этого никак.
207 ДенисЧ
 
07.12.20
09:17
(204) "Программисты 1с требуют покупки нового сервера с быстрым массивом."
А это вариант... Ну, чтобы дев-среду обновили )))
208 Paint_NET
 
07.12.20
09:18
+(206) Т.е. "запросы в циклах".
209 Конструктор1С
 
07.12.20
11:50
(161) никакого улучшения читабельности не увидел
210 Bigbro
 
07.12.20
11:53
(209) если бы там было что-то вроде:
  Массив = Отфильтровать(Массив);
я бы не стал особо спорить.
211 Конструктор1С
 
07.12.20
12:06
(210) это да. Но (161) в плане читабельности ну ничуть не лучше (158), а то и хуже
212 Ботаник Гарден Меран
 
07.12.20
13:12
Забавно смешаны термины.
Код может не использовать Goto и быть противоположностью идеала.
Отказ от goto был связан со структурированием кода, чтобы не размазывать смысл алгоритма.
А сейчас смысл прекрасно размазывается по модулям БСП, но опросов про неидеальность БСП никто не создает.
Просто взяли черный ящик, а алгоритмы основной задачи кувалдой приспособили к БСП приспособили.
Еще великолепную лапшу асинхронности в платформе можно рассмотреть.
P.S.
Да,да, пункт в правилах помним.
Платформа - великолепна. Вжик, вжик, и задача готова.

да! Свободно и без ограничений
213 ДенисЧ
 
07.12.20
13:13
(212) "опросов про неидеальность БСП никто не создает"

А зачем опрашивать про очевидное?
214 Конструктор1С
 
07.12.20
13:24
(212) справедливости ради, БСП нужно рассматривать как фреймворк, а не как часть прикладного кода. Ты же не вникаешь во внутреннюю работу "SELECT ... FROM ...", просто пишешь запрос и работаешь с результатом запроса. Вот и с БСП надо так же - дёрнул нужный API, получит ответ и пошел дальше, не вникая во внутренности БСП
215 tan76
 
07.12.20
13:25
нет, и не вижу необходимости

нет! Код должен быть идеален!
216 Провинциальный 1сник
 
07.12.20
14:58
(214) А завтра БСП поменяется, и всё тобой написанное с использованием БСП работать перестает, потому что процедуру перекинули в другой модуль. И это не сказать чтобы очень редко происходит.
217 fisher
 
07.12.20
15:30
(216) Заюзал как-то в обработочке буквально несколько функций. Причем функции исключительно из публичного API подсистемы "Общая функциональность" в БСП. Фактически с каждым выходом новой БСП что-то ломалось. Зарекся. И не я один такой. Встречал на просторах целые методики по инкапсуляции нужной функциональности БСП, чтобы избежать этих граблей.
Вот такой вот фреймворк. Без обратной совместимости. С другой стороны, если рассматривать его просто как часть одного семейства типовых, то в плюсах то, что легаси не накапливается. Кроят его смело. И ту эволюцию, что я наблюдал - в целом одобряю.
218 Провинциальный 1сник
 
07.12.20
15:35
(217) Так да. БСП это не инструментарий для доработки конфигураций. Это фреймворк для разработки типовых, и ничего больше. Он облегчает работу фирме 1с, но не нам. Наоборот, за легким доступом куда надо через БСП кроется на порядок более сложное обращение к данным напрямую.
219 Cthulhu
 
07.12.20
17:31
(173): чо???
220 Доктор Манхэттен
 
07.12.20
17:39
(192)
1. Где ты там увидел дублируюшийся код? Твои фантазии не считаются. Реальные аргументы есть?
2. То что ты называешь говнокодом, в действительности является правильным кодом. У тебя понятия искаженные.
3. Ты переводишь внимание на второстепенные детали, упуская самое важное. Еще раз повторяю: мои функции - это условность. Вместо них может быть любой код, выполняющий фильтрацию. То что ты хочешь его написать внутри текущей функции - это уже твои проблемы. Суть исправления вовсе не в создании самих функций, а в выносе логики фильтрации из тела цикла.
4. То что там простое условие - это только твое выдуманное пожелание. Автор вопроса утверждал обратное - что условия могут быть сложные.
Допускаю что там может быть все что угодно, вплоть до извлечения дополнительных данных из базы.
5. Твоя нелюбовь к упорядочиванию кода в виде вынесения логики в отдельные функции говорит о том что ты любишь говнокодить, и твое мнение по качеству кода имеет низкий рейтинг.

нет! Код должен быть идеален!
221 Доктор Манхэттен
 
07.12.20
17:44
(199) >>  Если бы ты действительно разрабатывал что-то высоконагруженное, то знал бы, что месяц работы программиста - 5000-10000$

Ахахаххаха! У вас в конторе по разработке высоконагруженных систем работает всего один единственный программист чтоли? Как называется контора, "хлебный ларек у Ашота"? Ну ты выдумщик, блин, нашел чем меня поразить.
222 Доктор Манхэттен
 
07.12.20
17:53
(203) Выдуманные дополнительные условия. Не засчитывается.
В обоих случаях сложность алгоритма О(n), так что вообще пофиг. Попробуй еще.
Оптимизировать быстродействие нужно только тогда, когда оно на что-то влияет и действительно требуется. Когда будет задача оптимизации, тогда и можно будет рассуждать как переписать для ускорения выполнения. Пока что мы обсуждаем как написать более красиво.
Трата времени программиста должна быть экономически оправдана, а не просто "Вдруг мой массив дней в неделе когда-нибудь вырастет до сотни миллионов, надо заранее заговнокодить чтобы навечно это тут осталось"
223 Доктор Манхэттен
 
07.12.20
17:57
(210) >>   Массив = Отфильтровать(Массив);

Просто вынеси несколько вызовов функций фильтрования в отдельную функцию, и будет то что ты хочешь. Только имя переменной у тебя неправильное, используешь уже занятое, так нельзя делать. Нужно так:

  ОтфильтрованныйМассив = Отфильтровать(Массив);
224 Доктор Манхэттен
 
07.12.20
17:59
(211) А что ты на это скажешь?

ОтфильтрованныйМассив = ПриментьСразуВсеФильтры(ИсходныйМассив);

Для Каждого .. из ОтфильтрованныйМассив цикл
  <делаем что-то полезное>
КонецЦикла;
225 Cthulhu
 
08.12.20
01:14
дружище. ты или соавтором бсп был, или просто им ушиблен неслабо так...
именно что время прона стоит много - а ты своими выносами наружу каждого чиха - именно говнокодишь.
причем, прикольно. что хвалишь себя - гораздо больше собеседников, которых так любишь обвинять в том. что они говорят неправду. это так забавно и лаксусово, спасибо, бро, повеселил, LMAO
226 Bigbro
 
08.12.20
04:39
(222) можешь дальше продолжать свои фантазии в вакууме плодить.
а я пишу то что знаю. и если я наступал на грабли с выделением памяти в своем кровавом энтерпрайзе, то учитываю это в дальнейшем.
а ты иди дальше корми розовых пони и рассказывай про сложность алгоритма и какой ты великий разработчик высоконагруженных систем.
хотя уже достаточно очевидно что твои понты пшик.
227 Paint_NET
 
08.12.20
05:11
(220) Да-да, у всех искажённые понятия, выдумки, а вот ты точно знаешь, как надо.
Но пишешь говнокод.
228 Доктор Манхэттен
 
08.12.20
06:31
(225) >> именно что время прона стоит много
Хорошая попытка оправдать говнокод, но мимо. Когда будет поставлена задача сделать хорошо для процессора и плохо для людей, тогда и поговорим. Но пока такой задачи нет, можешь погулять.
229 Доктор Манхэттен
 
08.12.20
06:34
(226) Неоправданная оптимизация - лишение премии и выговор. Я бы именно так с тобой поступал если бы ты у меня говнокодил. Таких у нас не любят. На первом месте в серьезных проектах стоит быстрота написания, простота отладки, легкость тестирования. Ты бы запорол сроки полюбому, не справился с поставленой задачей.
230 Paint_NET
 
08.12.20
06:35
Данный товарисч очень напоминает самомнением Пашо.
231 Доктор Манхэттен
 
08.12.20
06:35
(227) Ты пока ничего не написал лучше. Приведи свой пример, как правильно писать, поржем.
232 Paint_NET
 
08.12.20
06:36
(231) Я тебе уже привёл пример. А ты пишешь говнокод :)
233 Доктор Манхэттен
 
08.12.20
06:38
(232)  Провинциальный 1сник мне привел пример своего говнокода. А ты даже так не смог.
234 Доктор Манхэттен
 
08.12.20
06:39
(230) Второй переход на личности при отсутствии реальных аргументов. Так и быть, на этот раз засчитаю тебе слив.
235 Paint_NET
 
08.12.20
06:40
(233) Разуй зенки и перейди на страницу назад. Я привёл пример, как твой говнокод нужно переписать.
236 Paint_NET
 
08.12.20
06:40
(234) Да плыви уже, ихтиандр :) ЧСВ только своё не забудь.
237 Bigbro
 
08.12.20
06:43
(229) для начала - я не работаю у руководителей которых не уважаю, ты из этой категории. в нее ты попадаешь по своему ничем не обоснованному апломбу, некомпетентности и неумению признавать свои ошибки. это даже не учитывая неумение общаться с людьми, находить общий язык и доносить свои мысли - это необходимые черты для руководителя, так что твои мечты о руководстве на проекте останутся мечтами. потому что если они реализуются - ты прилюдно обосрешься и запорешь дело.

ну и по поводу оптимизации - ее нет в моем коде. я просто решаю задачу наиболее очевидным, простым и не затратным способом. а ваша попытка притянуть за уши "стандарты" - ведет к расходу памяти, ухудшению читаемости, сложностям в отладке. в критичной ситуации с производительностью мой код отработает а ваш сдохнет на наложениях фильтров из за нехватки памяти даже не дойдя до самого цикла, в котором "делается что-то полезное".

на этом дискуссию заканчиваю, без надежды, что до вас дойдет хоть что-то из сказанного.
238 Провинциальный 1сник
 
08.12.20
06:47
(233) Мой как вы выразились "говнокод" понятен при первом же взгляде. Любой специалист при необходимости добавить например новый фильтр или исправить существующий сможет это сделать за минуту. А в вашем нужно полтора часа только разбираться. Действительно, похоже на ЗУП, где ради одной цифры происходит заполнение десяти временных таблиц и обработка тысяч строк данных.
239 Доктор Манхэттен
 
08.12.20
08:37
(235) А, ты имеешь в виду этот твой комментарий про дублирование кода в этом месте:

Фильтр1
Фильтр2
...

Типа буквы "Ф", "и", "л", "ь", "т", и "р" у меня несколько раз повторились. Ну что ж, признаю свою ошибку, ты действительно предложил свой вариант. Но это просто зашквар, даже комментировать не хочу, и так понятно что ты не в теме.
240 Волшебник
 
08.12.20
08:39
(155)
>> Мои принципы программирования таковы: 1. Не использовать if    2. никаких for

Вы точно умеете программировать?
241 Доктор Манхэттен
 
08.12.20
08:39
(237) Хамишь, так же как Paint_NET, при этом не предложив ничего лучше чем мой вариант. Так любой дурак может. А ты попробуй написать более красиво и по стандартам. Посмотрим. Пример кода от Bigbro в студию!
242 Bigbro
 
08.12.20
08:45
см (164)
243 Paint_NET
 
08.12.20
08:46
(239) То есть ты даже не понял комментарий? Да ты тупее, чем кажешься :)
244 Конструктор1С
 
08.12.20
09:08
(224) вот уже получше. Только со своими принципами "ни кой раз не прервать!" ты всё равно внутри этого метода выполнишь всё тот же фин ушами

ОтфильтрованныйМассив1 = Фильтр1(ИсходныйМассив);
...
ОтфильтрованныйМассивN = ФильтрN(ОтфильтрованныйМассивN-1);

только вместо фильтр() создашь несколько массивов один из другого
245 Bigbro
 
08.12.20
09:56
мне даже любопытно стало как он ветвления реализует без if
246 Провинциальный 1сник
 
08.12.20
09:59
(245) Можно например генерировать перехватываемое исключение по условию и это будет ветвление без Если)
247 Bigbro
 
08.12.20
10:08
угу, подменять указатель стека и использовать возврат.
даешь больше "стандартов"! ))
248 Cthulhu
 
08.12.20
13:10
(228): твое проецирование (тут это слово - термин из психологии/психиатрии) - это так мило и забавно.
сначала ты воешь про свой якобы "правильный" стиль программирования аргументируя свой говнокодинг уменьшением проблем и экономией времени при дальнейшем сопровождении. а когда тебе на пальцах показывают, что твой говнокодинг ведет к утяжелению дальнейшего сопровождения и увеличению трудозатрат на него (при том давая реальный пример из жизни) - ты начинаешь ныть в другую сторону, при том обвиняя собеседника в том, чем сам грешишь. и тут же так мило перескакиваешь на другую тему.
спасибо, дружище, мне как людоведу и душелюбу было познавательно наблюдать подобный экземпляр - хотя в дальнейшем, пожалуй, было бы скучновато... так что - это ты гуляешь мимо, продолжая лелеять свой комплекс неполноценности, демонстрируя себе самому какой ты виконт де-бражелон, lol.
удачи.
249 dmpl
 
08.12.20
14:51
(221) Хм... с чего ты взял, что программист один?

(222) Если все программисты пишут не оглядываясь на производительность - в итоге оптимизировать там нечего, ибо проще переписать, чем оптимизировать. Так что твой идеальный пример подходит только для мест, где производительность не важна. А где она важна - уже приходится искать компромис между идеальным кодом и скоростью работы еще на этапе разработки. Впрочем, это джунам обычно не показывают, их дрючат идеальным кодом и сроками :)
250 Злопчинский
 
08.12.20
14:53
руки прочь от готу!
251 dmpl
 
08.12.20
14:53
(229) Ну и каким образом повышается быстрота написания и легкость отладки при вынесении любого чиха в отдельную функцию?
252 Доктор Манхэттен
 
08.12.20
17:33
(242) Там просто пустые слова, ничего полезного ты не предоставил.
253 Доктор Манхэттен
 
08.12.20
17:34
(243) Теперь ты уже не оправдаешься. Лоханулся, но не признаешь свою ошибку, даже когда я тебя в нее прилюдно ткнул носом.
254 Доктор Манхэттен
 
08.12.20
17:35
(244) Не могу сказать как конкретно я реализую эту часть кода, пока не будет известно точное описание задачи. Ты тем более не можешь знать как я сделаю, поэтому даже не пытайся выдавать свои выдумки за мои действия
255 Доктор Манхэттен
 
08.12.20
17:37
(245) Так же как и мне любопытно как ты реализуешь переход к метке без GOTO. Намек понял?
256 Доктор Манхэттен
 
08.12.20
17:38
(246) Применять исключения не по назначению - говнокод
257 Доктор Манхэттен
 
08.12.20
17:38
(247) >> угу, подменять указатель стека и использовать возврат.

Как же ты далек от понимания красивого кода...
258 Доктор Манхэттен
 
08.12.20
17:40
(249) За десятку вряд ли согласится работать более одного программиста, разве что индусов пачку наймете.
259 Доктор Манхэттен
 
08.12.20
17:41
(249) >>  Так что твой идеальный пример подходит только для мест, где производительность не важна.

Ну наконец-то хоть до одного дошло, и то радует
260 Доктор Манхэттен
 
08.12.20
17:56
(251) Абсолютно не верно. Не нужно любой чих выносить в отдельную функцию, это не всегда улучшает понимание и простоту. В функцию нужно выносить только конкретные законченные действия, имеющие понятные человеку определения, с соответствующим названием функции. Тогда будет легко понимать что этот код выполняет и какой результат он возвращает.
Для отладки достаточно проверить входные параметры и выходной результат, чтобы сразу было понятно правильно или нет отработала функция, без необходимости входить внутрь функции отладчиком.
Для модульного тестирования то же самое, достаточно вызвать отдельную функцию из тестового модуля с предопределенными входными параметрами, и проверить соответствие возвращенного результата ожидаемому.
261 fisher
 
08.12.20
18:01
(251) Это дзен. "Не любой чих в отдельную функцию". А код естественным образом приобретает совершенный вид. Тут легкими веществами и короткими сроками не обойтись.
Так заповедал гуру дядюшка Мартин (который Фаулер), который долго курил правильную траву и вообще наше все. И вот он говорил, что ежели функция длиннее шести строк, то такая функция уже "попахивает".
262 Конструктор1С
 
08.12.20
18:20
(254) а там вариантов не много. Цикл по массиву и проверка. Если будет что-то более сложное, то это будет ахтунг. Получится не избавление от продолжить/прервать, а выстрел себе в ногу. Давай сравним два варианта:

без продолжить

Процедура ЧёткаяОбработкаДанныхПоФеншую(ИсходныйМассив)

    ОтфильтрованныйМассив = Новый Массив;
    Для каждого Элемент Из ИсходныйМассив Цикл
        Если ТоЧтоНадо(Элемент) Тогда
            ОтфильтрованныйМассив.Добавить(Элемент);    
        КонецЕсли;    
    КонецЦикла;
    
    Для каждого Элемент Из ОтфильтрованныйМассив Цикл
        
        // Полезный код
        
    КонецЦикла;

КонецПроцедуры

с "запрещенной" продолжить

Процедура ВарварскаяОбработкаДанных(ИсходныйМассив)

    Для каждого Элемент Из ОтфильтрованныйМассив Цикл
        
        Если Не ТоЧтоНадо(Элемент) Тогда
            Продолжить;    
        КонецЕсли;
        
        // Полезный код
        
    КонецЦикла;

КонецПроцедуры

даже если в первой процедуре ты вынесешь фильтрацию в отдельный метод, код не станет читабельнее второй процедуры
263 Конструктор1С
 
08.12.20
18:21
* во второй процедуре в цикле будет обходиться ИсходныйМассив
264 ДенисЧ
 
08.12.20
18:23
(262) А если
Процедура ПолуВарварскаяОбработкаДанных(ИсходныйМассив)

    Для каждого Элемент Из ОтфильтрованныйМассив Цикл
        
        Если ТоЧтоНадо(Элемент) Тогда
        // Полезный код
        КонецЕсли;
        
        
    КонецЦикла;

КонецПроцедуры
265 Провинциальный 1сник
 
08.12.20
18:38
(264) Так красивее безусловно, но отлаживать сложнее будет, придется нырять в ТоЧтоНадо для отладки фильтров.
266 Конструктор1С
 
08.12.20
18:38
(264) вложенностью циклов и условных операторов тоже не стоит злоупотреблять. Это усложняет восприятие кода

Процедура СделатьВсёСразу()

    Для каждого <...> Цикл        
        Если Условие Тогда        
            Если Условие Тогда         
                Для каждого <...> Цикл                
                    Если Условие Тогда                    
                        // Чё та делаем    
                    КонецЕсли;                
                КонецЦикла;
                // Снова чё та делаем
            ИначеЕсли Условие Тогда                
                Для каждого <...> Цикл                
                    Если Условие Тогда                    
                        // ... Лять, где я и зачем тут оказался?                    
                    КонецЕсли;     
                    // Тут запрячем трудновоспроизводимую багулину
                КонецЦикла;    
            КонецЕсли;        
        КонецЕсли;    
    КонецЦикла;

КонецПроцедуры
267 Провинциальный 1сник
 
08.12.20
18:40
(266) Вот, я это и имел в виду. Намного нагляднее цепочка Если с Продолжить, чем огромной вложенности Если.
268 Злопчинский
 
08.12.20
18:42
(266) ненавижу такие этажерки. если такая хрень получается предпочитаю обратными условиями  превращать в линейный код. и ветку иначе делать не внтури если . а после конецЕсли
269 Конструктор1С
 
08.12.20
18:46
(268) а я код насколько можно разлинеиваю, а насколько неможно выношу в отдельные методы
270 fisher
 
08.12.20
18:48
Есть мнение, что Иначе и ИначеЕсли  - это зло. Которого часто можно избежать.
271 Конструктор1С
 
08.12.20
18:57
(270) главное чтобы цепочка еслей была не сильно длинная и не сильно вложенная. Т.е. "Если" и "КонецЕсли" должны быть как можно ближе друг к другу

Процедура ВыбратьПризвание()

    Если НравитсяПисатьКод() Тогда
        ПойтиВПрограммисты();
    ИначеЕсли ЕстьДизайнерскиеНавыки() Тогда
        ПойтиВДизайнеры();
    ИначеЕсли ЕстьВодительскиеПрава() Тогда
        ПойтиВТаксисты();    
    Иначе
        УбитьсяОбСтену();    
    КонецЕсли;

КонецПроцедуры

вот так нормально читается. Но если между началом и концом логического блока будет 100 строк кода, а точек принятия решения останется столько же, то код всё равно станет труднее для восприятия
272 Доктор Манхэттен
 
08.12.20
19:17
(262) Первый вариант вообще некрасивый. Ты создаешь переменную типа массив, причем изначально пустую, а потом много раз в цикле ее модифицируешь. Тут феншуем даже не пахнет.
273 mistеr
 
08.12.20
19:19
Реализовывал какой-то численный алгоритм, детали уже не помню.

почти никогда, но пару раз было
274 Конструктор1С
 
08.12.20
19:36
(272) надо полагать, феншуй это (161)?
275 Free_soul
 
08.12.20
19:44
да, писал я батники, cmd'шники.. какую только дрянь не писал.
Для кронов и прочей нечисти..
Стыдно.
И мыло уже теперь не то.. то ли дело было хозяйственное!

да, но только когда никто не видит
276 Злопчинский
 
08.12.20
19:56
(271)   ПойтиВПрограммисты();
- вот нихрена не понятно, за этим кодом еще будет что-то выполняться? логика кода закончена или это только часть?
277 Доктор Манхэттен
 
08.12.20
20:36
(274) Там тоже не феншуй, ибо есть цикл, остался от автора кода. Это только пример того как фильтровать массив до отправки в обработку.
278 Bigbro
 
08.12.20
20:53
доктор балабол так и не показал свою реализацию ветвления без if или я пропустил?
279 Доктор Манхэттен
 
08.12.20
21:02
(278) Повторю для тех кто в танке: После того как бигбро балабол покажет переход по метке без GOTO
280 dmpl
 
08.12.20
21:05
(258) И? Развивай мысль. С чего ты взял, что только 1 программист? Затраты в 10k$ дают выхлоп в сотни k$. Потратишь больше - и выхлоп будет больше. В исходном сообщении речь шла об эффекте от 1 человеко-месяца, потраченного на написание более эффективного кода.

(260) Так а кто сказал, что код из (158) не является законченным неделимым действием? Может там условие зависит от предыдущей итерации.

(272) Ну так попробуй сразу создать отфильтрованный массив, состоящий только из нужных элементов - без модификаций.

Предлагаю написать тебе феншуйный код сортировки массива, состоящего из ссылок на элементы справочника Номенклатура. Сортировать надо по полю Наименование. Задача практически академическая. По этой же причине использовать запросы нельзя.
281 Bigbro
 
08.12.20
21:24
(279) а пузо медом не намазать? с чего бы вдруг я тебе что-то показывал. где я обещал такое показать? пруф на мой пост балаболка.
а вот ты тельняшку на груди рвал что так плохо так не по стандартам.
вот показывай как по стандартам делать ветвления без if
доктор порожняк.
282 Доктор Манхэттен
 
08.12.20
22:17
(280) >> Ну так попробуй сразу создать отфильтрованный массив, состоящий только из нужных элементов - без модификаций.

Всегда так и делаю
283 Доктор Манхэттен
 
08.12.20
22:18
(281) Ты же меня просишь показать хрень. Я тебя тычу носом в то что ты сам не сможешь сделать то же самое что требуешь от меня, балаболка.
284 Доктор Манхэттен
 
08.12.20
22:19
(281) >> вот показывай как по стандартам делать ветвления без if
В третий раз повторяю: Сразу после того как ты покажешь как сделать переход по метке без перехода по метке. Не тупи, скучно уже от твоих одинаковых сообщений
285 Доктор Манхэттен
 
08.12.20
22:21
(281) >> а вот ты тельняшку на груди рвал что так плохо так не по стандартам.

Ответь тогда на вопрос, ты считаешь правильно использовать GOTO или нет, братец балаболка?
286 Доктор Манхэттен
 
08.12.20
22:24
(280) Задача очень простая: Ответ: невозможно отсортировать по Наименованию имея только ссылку и не используя запросы к серверу, потому что наименование хранится в базе, а в ссылке его нет.
287 sevod
 
08.12.20
23:45
О существовании "Goto" в 1С узнал лет через 6 после того как начал программировать. Долго не мог понять про какую "Метку" мне втирают. Слово "Goto" мне так и не назвали. Последний раз подобное видел в Вильнусовском Бейсике на БК. Был уверен что подобного уже нет. Не понимаю зачем это вообще надо. Все отлично работает из без этого. Если не опыт Бейсика, не понял бы что это такое.
Как вы вообще узнали что подобное в 1С существует? Не в одном обучающем материале этого не видел.

нет! Код должен быть идеален!
288 Доктор Манхэттен
 
09.12.20
05:02
Нашел способ как сделать аналог GoTo на JS. Ох щас поразвлекаемся!
289 Paint_NET
 
09.12.20
05:48
Покажи, как без if делаешь ветвления, о гуру.
290 Bigbro
 
09.12.20
05:59
(289) там клиника, он требует от меня показать как делать переходы по метке, при том что я их не использую))
но сам на прямой вопрос не отвечает)
291 Конструктор1С
 
09.12.20
06:01
(276) тут суть в чём

Если НравитсяПисатьКод() Тогда
    ПойтиВПрограммисты();

с большой долей вероятности следующему программисту не будет интересна логика похода в программисты. Возможно его интересует совсем другой участок кода. Через данную процедуру он просто добирается к нужному коду. Читающему нужно будет просто пробежаться глазами по блоку Если и занырнуть в нужную процедуру. А если будет типичноодиэсное:

Процедура ВыбратьПризвание()

    Если НравитсяПисатьКод() Тогда
        // Длинная портянка кода
    ИначеЕсли ЕстьДизайнерскиеНавыки() Тогда
        // Длинная портянка кода
    ИначеЕсли ЕстьВодительскиеПрава() Тогда
        // Длинная портянка кода    
    Иначе
        // Длинная портянка кода    
    КонецЕсли;

КонецПроцедуры

то читающий код вынужден будет перечитать все эти портянки кода. По крайней мере пробежаться по ним глазами, тратя время и интеллектуальные ресурсы. Ему это нафиг не нужно, но размашистым кодом мы обрекаем читателя кода на погружение в лишние детали. Каждому программисту периодически приходится перечитывать тонны кода ради того, чтобы найти пару нужных строчек. Такого бессмысленного и беспощадного перечитывания кода не будет, если код будет хорошо структурирован
292 Paint_NET
 
09.12.20
06:04
(290) Да вижу. Но потыкать палочкой-то надо, чтоп дальше веселил :)
293 Доктор Манхэттен
 
09.12.20
06:29
(290) >> он требует от меня показать как делать переходы по метке, при том что я их не использую))

О! Наконец-то до тебя начинает понемногу доходить в чем твоя ошибка! Продолжи мысль, не останавливайся. Что ты там от меня хотел?
294 Доктор Манхэттен
 
09.12.20
06:30
(289) >> Покажи, как без if делаешь ветвления, о гуру.    

Еще один.
Ок, покажу, если ты сможешь показать как сделать переход по метке без goto.
295 Провинциальный 1сник
 
09.12.20
06:37
Ветвление в 1с без Если (для людей без ЧЮ - это чисто для прикола, в реальности не применять!)


Попытка
    ы=1/Число(<булево выражение условия>);
    // условие выполнено
    <действия по "тогда">
Исключение
    // условие не выполнено
    <действия по "иначе">
КонецПопытки
296 Paint_NET
 
09.12.20
06:43
(294) Ты совсем поехал? Почему я должен тебе это показывать, если я этим не пользуюсь и не планирую?
297 Paint_NET
 
09.12.20
06:43
Дурачок какой-то, чот даже скучно.
298 Paint_NET
 
09.12.20
06:44
(295) Ага, предлагали уже :)
299 Paint_NET
 
09.12.20
06:47
Мне, кстати, кажется, что это один из адептов фузины, те такие же упёртые и глупые :)
300 Доктор Манхэттен
 
09.12.20
07:21
(296) Бинго! Дошло наконец? Скажи что дошло, мне трудно общаться с глупыми людьми.
301 Доктор Манхэттен
 
09.12.20
07:22
(295) Использование исключений не по назначению - говнокод
302 dmpl
 
09.12.20
07:26
(283) Там и запишем: в (155) - хрень.

(286) Вот. Ты не можешь. А настоящие программисты сделают. И да, ты опять додумал. Нигде не было условия не использовать запросы к серверу. Было условие не использовать запросы.
303 Paint_NET
 
09.12.20
07:29
(300) Ты идиот? Ты сам же писал, что не используешь для ветвления if, покажи, как ты реализуешь ветвление.
304 Paint_NET
 
09.12.20
07:30
Очередная балаболка, в общем. Чот школьников тупых всё больше и больше :)
305 fisher
 
09.12.20
10:44
(303) > Ты сам же писал, что не используешь для ветвления if
Точная цитата "Условия тоже стараюсь не использовать если это функция, а не процедура."
Что совсем не одно и то же.
Правда, я тоже не очень понял, какие у него в 1С инструменты для избегания ветвления. В других языках есть способы для ряда случаев. Паттерн-матчинг там, функции высшего порядка, наследование...
А в 1С?
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.