Вход | Регистрация
    1  2  3  4   
Информационные технологии :: Математика и алгоритмы

Используете Goto (переход по метке)?

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

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

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

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

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

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

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

4. нет! Код должен быть идеален!
   Доктор Манхэттен
 
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) А что ты на это скажешь?

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

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

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

на этом дискуссию заканчиваю, без надежды, что до вас дойдет хоть что-то из сказанного.
   Провинциальный 1сник
 
238 - 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 в студию!
   Bigbro
 
242 - 08.12.20 - 08:45
см (164)
   Paint_NET
 
243 - 08.12.20 - 08:46
(239) То есть ты даже не понял комментарий? Да ты тупее, чем кажешься :)
   Конструктор1С
 
244 - 08.12.20 - 09:08
(224) вот уже получше. Только со своими принципами "ни кой раз не прервать!" ты всё равно внутри этого метода выполнишь всё тот же фин ушами

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

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

(222) Если все программисты пишут не оглядываясь на производительность - в итоге оптимизировать там нечего, ибо проще переписать, чем оптимизировать. Так что твой идеальный пример подходит только для мест, где производительность не важна. А где она важна - уже приходится искать компромис между идеальным кодом и скоростью работы еще на этапе разработки. Впрочем, это джунам обычно не показывают, их дрючат идеальным кодом и сроками :)
   Злопчинский
 
250 - 08.12.20 - 14:53
руки прочь от готу!
   dmpl
 
251 - 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) Абсолютно не верно. Не нужно любой чих выносить в отдельную функцию, это не всегда улучшает понимание и простоту. В функцию нужно выносить только конкретные законченные действия, имеющие понятные человеку определения, с соответствующим названием функции. Тогда будет легко понимать что этот код выполняет и какой результат он возвращает.
Для отладки достаточно проверить входные параметры и выходной результат, чтобы сразу было понятно правильно или нет отработала функция, без необходимости входить внутрь функции отладчиком.
Для модульного тестирования то же самое, достаточно вызвать отдельную функцию из тестового модуля с предопределенными входными параметрами, и проверить соответствие возвращенного результата ожидаемому.
 
 Рекламное место пустует
   fisher
 
261 - 08.12.20 - 18:01
(251) Это дзен. "Не любой чих в отдельную функцию". А код естественным образом приобретает совершенный вид. Тут легкими веществами и короткими сроками не обойтись.
Так заповедал гуру дядюшка Мартин (который Фаулер), который долго курил правильную траву и вообще наше все. И вот он говорил, что ежели функция длиннее шести строк, то такая функция уже "попахивает".
   Конструктор1С
 
262 - 08.12.20 - 18:20
(254) а там вариантов не много. Цикл по массиву и проверка. Если будет что-то более сложное, то это будет ахтунг. Получится не избавление от продолжить/прервать, а выстрел себе в ногу. Давай сравним два варианта:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Предлагаю написать тебе феншуйный код сортировки массива, состоящего из ссылок на элементы справочника Номенклатура. Сортировать надо по полю Наименование. Задача практически академическая. По этой же причине использовать запросы нельзя.
   Bigbro
 
281 - 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) Задача очень простая: Ответ: невозможно отсортировать по Наименованию имея только ссылку и не используя запросы к серверу, потому что наименование хранится в базе, а в ссылке его нет.
   sevod
 
287 - 08.12.20 - 23:45
О существовании "Goto" в 1С узнал лет через 6 после того как начал программировать. Долго не мог понять про какую "Метку" мне втирают. Слово "Goto" мне так и не назвали. Последний раз подобное видел в Вильнусовском Бейсике на БК. Был уверен что подобного уже нет. Не понимаю зачем это вообще надо. Все отлично работает из без этого. Если не опыт Бейсика, не понял бы что это такое.
Как вы вообще узнали что подобное в 1С существует? Не в одном обучающем материале этого не видел.

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

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

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

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

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

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

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

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

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


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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.