|
Используете Goto (переход по метке)? Ø (Волшебник 09.12.2020 10:48) | ☑ | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
Zapal
04.12.20
✎
10:32
|
немного предыстории, возможно кто-то не в курсе. Считается что использование этой конструкции показывает низкое качество кода. В некоторых языках его просто запретили
написал вот я его недавно и задумался - я один такой плохой или нас много? Насколько это явление вообще распространено в одинэсной среде? В типовых вроде не припомню, возможно им там тоже запретили и да, давайте сразу договоримся - Прервать, Продолжить и Возврат это другое, здесь нет смысла делать опросы, их используют все. Речь конкретно о команде Перейти |
|||||||||||||
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С? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |