1. 4 г. назад

    Почему оператор goto считается быдлокодингом?

    Ответы: (2) (26) (93)
  2. ‹ Ранее
  3. 4 г. назад

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

  4. Что если нужно будет не document.write, а вернуть результат? Тогда твой варик вообще хреновый. Придется еще массив для накопления результатов добавлять.

    Ответы: (114)
  5. Если бы можно было сразу выводить на экран без накопления результатов как это ты сделал, я бы так написал:

    const n = 15
    n % 5 === 0 && document.write('fuzz')
    n % 3 === 0 && document.write('buzz')
    

    Но как я говорил выше, это хреново.

    Ответы: (115) (122) (124) (125) (128)
  6. 01.02.2020 02:08:38 отредактировано Курильщик

    webdev Что если нужно будет не document.write

    Это вообще без разницы ведь.

    Ответы: (116)
  7. (113) этот вариант сильно лучше и действительно не содержит ветвлений.

  8. Курильщик Это вообще без разницы ведь.

    Ну и как ты сделаешь если нужно получить результат целиком? Пример в студию. Я заранее знаю где будет ошибка.

    Ответы: (121)
  9. Куда все слились? Го срачъ!

    Ответы: (119) (120)
  10. Камон, кто следующий?

  11. webdev Куда все слились?

    ответь на (108)

    Ответы: (122)
  12. webdev Куда все слились? Го срачъ!

    Я типа спал.

  13. 01.02.2020 09:29:28 отредактировано Курильщик

    webdev Ну и как ты сделаешь если нужно получить результат целиком? Пример в студию. Я заранее знаю где будет ошибка.

    
    const n = 15
    if (n % 15 === 0) {
      return('fuzzbuzz');
    } else if (n % 5 === 0) {
      return('fuzz');
    } else if (n % 3 === 0) {
      return('buzz');
    }   
    
    
    Ответы: (127)
  14. (119) в (113) нет ифа

    Ответы: (123) (126)
  15. (122) то, что там нет слова "if", делает оператор неусловным (не ветвления)?

    Ответы: (124) (126)
  16. (123) в (113) нет инлайнового ифа. Там по-другому логика построена.

    Ответы: (125) (128)
  17. (124) конкретно в (113) нет

    Ответы: (128)
  18. andrewks (122) то, что там нет слова "if", делает оператор неусловным (не ветвления)?

    Да, как я уже писал. Если нет блоков которые могут пропуститься, а могут и нет, то это проще читать. В примере выше это не заметно, потому что в блоках всего по одной строке. Но может быть и гораздо больше, и чем больше тем сложнее. В то время как отказ от ифов вынуждает все делать в одну строку, и ты не сможешь туда запихать 500 строк, даже если захочешь. Дисциплинирует как бы.

    Ответы: (129)
  19. Курильщик

    
    const n = 15
    if (n % 15 === 0) {
      return('fuzzbuzz');
    } else if (n % 5 === 0) {
      return('fuzz');
    } else if (n % 3 === 0) {
      return('buzz');
    }   
    
    

    Ошибка: Три ретурна. Должен быть только один, в самом конце функции, как Горец.

  20. andrewks (124) конкретно в (113) нет

    В (113) говнокод. Я под Курильщика его подстроил, чтобы ему подошел ответ. Но на самом деле мне он не нравится.

  21. webdev Да, как я уже писал. Если нет блоков которые могут пропуститься, а могут и нет

    webdev const is5 = n % 5 === 0 ? 'fuzz' : ''

    вот это вот не что иное, как
    if (n % 5 === 0) {
    const is5 = 'fuzz'
    } else {
    const is5 = ''
    }

    Ответы: (131)
  22. Нет, это другое. Твой вариант вообще не рабочий.

  23. andrewks вот это вот не что иное, как
    if (n % 5 === 0) {
    const is5 = 'fuzz'
    } else {
    const is5 = ''
    }

    Основное отличие в том, что if ничего не возвращает наружу. То, что объявлено у него внутри блока, там и останется. Выход - использовать внешние переменные, объявленные за пределами блока, чтобы их изменить внутри блока. Что и является говнокодом.

    Ответы: (132)
  24. webdev Выход - использовать внешние переменные, объявленные за пределами блока, чтобы их изменить внутри блока. Что и является говнокодом.

    Ковнокодом является плохо сопровождаемый и/или запутанный код.

  25. Стоп. Ветка о GOTO.
    Приведите пример, когда GOTO предпочтительно

    Ответы: (136) (139)
  26. В bat-файлах использую goto пример приводить не буду, и так все очевидно.

    Ответы: (135)
  27. (134) потому что там по-другому никак :)

    Ответы: (137)
  28. (133) Когда ты гей и твой парень тебе изменяет, тогда предпочтительнее использовать GOTO конечно :)

  29. 1Сергей потому что там по-другому никак

    Все верно

  30. for (i1 = 1; i1 <= d1; i1++)
    {
    for (i2 = 1; i2 <= m1[i1]; i2++)
    {
    for (i3 = 1; i3 <= m2[i1,i2]; i3++)
    {
    for (i4 = 1; i4 <= m3[i1,i2,i3]; i4++)
    {
    if m4[i1,i2,i3,i4] == Yes
    {
    goto Finish;
    }
    }

    }

    }
    }
    Finish:
    cout << "Координаты " << Yes << " = " << i1,i2,i3,i4;

    Быдлокод?

  31. Эльниньо Стоп. Ветка о GOTO.
    Приведите пример, когда GOTO предпочтительно

    Когда нужно написать программу в первую очередь для компьютера, а не для человека, тогда можно говнокодить, и писать что угодно, даже GOTO.
    Например если пишешь программу обработки сигналов в реальном времени под медленный контроллер, который будет работать почти на пределе своих возможностей. Мне когда-то надо было написать умножитель частоты сигналов в 1.5 раза на контроллере стоимостью $1. Уложился в 3 такта, и 10 байт кода. Но без GOTO обойтись было бы сложно, пришлось бы пожертвовать быстродействием.

    Ответы: (142)
  32. 03.02.2020 18:07:01 отредактировано Курильщик

    (138) классический говнокод, да
    Не надо так писать

    Ответы: (141)
  33. Курильщик (138) классический говнокод, да
    Не надо так писать

    Замечание принимаю (в Сях не писал уже более 20 лет).
    Буду благодарен за более изящный код

    Ответы: (143)
  34. webdev Но без GOTO обойтись было бы сложно, пришлось бы пожертвовать быстродействием.

    Если ты про ассемблер то там весь код построен на переходах, по сути гото

    Ответы: (147)
  35. 03.02.2020 18:14:56 отредактировано Курильщик

    (141) я не про синтаксис. Я про гото.
    В тех циклах достаточно добавить флаг о том что надо из циклов выходить. И/или использовать continue в зависимости от тела циклов.
    В коде (138) этого нет, но как правило в си есть выделение памяти, и требуется корректное освобождение памяти.

  36. Т.е. код должен быть готов к тому чтобы без рефакторинга это добавить.

  37. Так переделай (138) как надо

    Ответы: (148)
  38. Эльниньо Быдлокод?

    Вообще жесть :)))

    Ответы: (149)
  39. Курильщик Если ты про ассемблер то там весь код построен на переходах, по сути гото

    Ассемблер - это как раз пример языка для компьютера, так как он низкоуровневый. Очевидно, что читать программу на этом языке сложнее, и разработка дороже. Зато скорость выполнения выше. Чем-то нужно жертвовать чтобы в чем-то выиграть.

  40. (145) ok

    Ответы: (152)
  41. webdev Вообще жесть :)))

    Так переделай (138) как надо
    (ты задачу то хоть понял?)

    Ответы: (150) (151) (188) (257) (516)
  42. (149) почему ты считаешь что все должны броситься и переделывать твой код?

    Ответы: (151)
  43. Курильщик (149) почему ты считаешь что все должны броситься и переделывать твой код?

    Всё просто. Критикуешь - покажи, как надо.
    Вам, профи, западло дать урок быдлокодеру?

    Ответы: (152)
  44. (151) я же написал в (148) - ок

  45. жду

    Ответы: (155)
  46. (138) просто даже не вникая видно несколько логических проблем в коде.
    первое - выход за пределы массива в каждом из циклов обрати внимание на "for (i1 = 1; i1 <= d1; i1++)" i1 растет бесконечно
    второе - i1 <= d1 может никогда не произойти

    Ответы: (156)
  47. (153) можешь эти проблемы устранить? они не связаны с goto

  48. Курильщик (138) просто даже не вникая видно несколько логических проблем в коде.
    первое - выход за пределы массива в каждом из циклов обрати внимание на "for (i1 = 1; i1 <= d1; i1++)" i1 растет бесконечно
    второе - i1 <= d1 может никогда не произойти

    Похоже и ты не понял, какую задачу решает код

    Ответы: (157) (159) (167)
  49. (156) я всё понял, этот код не решает никакую задачу если у тебя будет выход за пределы массива, будет сегфолт.

    Ответы: (167)
  50. или если массивы допустим безграничные то будет исчерпание памяти и в итоге сегфолт

  51. (156) и еще важно иметь ввиду, что говнокод это работающий код, просто некрасиво написанный, в (138) не работающий код, понимаешь о чем я?

    Ответы: (160)
  52. Курильщик и еще важно иметь ввиду, что говнокод это работающий код

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

    Ответы: (161)
  53. (160) если код не рабочий это уже не код

    Ответы: (162)
  54. (161) с чего это? код, выдающий неверный результат, не является кодом?

    Ответы: (164)
  55. даже код, вызывающий 100% сегфолт - это код

    Ответы: (166)
  56. (162) неверный результат это результат. т.е. код отработает но посчитает плохо. а прога которая валится в сегфол при старте это неработающий код.

    Ответы: (165)
  57. Курильщик неработающий код.

    здрасьте. сегфолт является именно результатом работы кода

  58. andrewks сегфолт - это код

    тогда exe-шник нулевого размера это плохо-работающий код.

    Ответы: (168) (172)
  59. Курильщик (156) я всё понял, этот код не решает никакую задачу если у тебя будет выход за пределы массива, будет сегфолт.

    С чего ты решил, что будет выход из массива?

    Ты сейчас напомнил критику моего алгоритма удаления лишних строк в ТЗ крутыми одинэсниками.
    Тоже самое - да оно у тебя зациклится, до он вообще не рабочий...
    Потом - извини невнимательно посмотрел

    Ответы: (175)
  60. (166) не путай непрожаренную яичницу с отсутствием оной вообще

    Ответы: (170)
  61. отверстие нулевого диаметра или нулевой глубины это конечно тоже отверстие

  62. (168) я писал com файлы длиной 2 байта
    первый байт - cli
    второй байт - jmp

    Ответы: (172)
  63. 2 байта - в com файле, отличный код, отлично выполнялся, остановить его можно было только кнопкой РЕЗЕТ.

  64. (170) да. и? какое это имеет отношение к

    Курильщик огда exe-шник нулевого размера это плохо-работающий код.

    Ответы: (173) (178)
  65. (172) я проскочил шаг номер 1 код длиной 2 байта и перешел к коду длиной 0 байт

    Ответы: (176)
  66. 0 байт не сильно отличается от 2 байт.

    Ответы: (177)
  67. Эльниньо С чего ты решил, что будет выход из массива?

    потому что я программист и пишу много кода

  68. (173)

    Компью́терная програ́мма — 1) комбинация компьютерных инструкций и данных, позволяющая аппаратному обеспечению вычислительной системы выполнять вычисления или функции управления (стандарт ISO/IEC/IEEE 24765:2010)[1]; 2) синтаксическая единица, которая соответствует правилам определённого языка программирования, состоящая из определений и операторов или инструкций, необходимых для определённой функции, задачи или решения проблемы (стандарт ISO/IEC 2382-1:1993)[2].

    Первое определение соответствует понятию «исполняемая программа», второе относится к понятию «исходный текст».
    wiki:Компьютерная_программа

  69. (174) и?
    минус 2 байта не сильно отличается от 0 байт.
    бывают ли программы объёмом минус 2 байта?

    Ответы: (180)
  70. (172) еще раз, я, ЛИЧНО я считаю что говнокод это работающий код и делающий то что надо НО написанный плохо - трудно читаемый, с запутанной логикой и т.п. но работающий.
    Код который не работает это вообще не код, как лопата нулевого размера.

    Ответы: (179)
  71. Курильщик Код который не работает

    что значит "код, который не работает"? дай точное определение

    Ответы: (181)
  72. (177) исполняемые файлы исполняются операционной системой и могут иметь длину от 0 до N байт, отрицательную длину они иметь не могут, если конечно ОС не будет проблем с отображением длины

    Ответы: (182)
  73. (179) не работающий код - не работает.

    Ответы: (184)
  74. (180) то, что ты создашь файл "work.com" нулевого размера, не сделает этот файл исполняемым

  75. еще как сделает

    Ответы: (185)
  76. (181) да ну? тогда это вообще не код.
    в отличие от кода, который работает, да неправильно

    Ответы: (189)
  77. (183) нет же

  78. ведь work.com это запись в таблице

  79. а в случае с exe это вообще невозможно - сам стандарт предполагает определённые служебные данные, которые занимают место.
    если ты создашь файл "work.exe" нулевой длины - это будет исполняемый файл?

  80. 03.02.2020 20:38:20 отредактировано webdev

    Эльниньо Так переделай (138) как надо

    Зачем?

    Эльниньо (ты задачу то хоть понял?)

    Нет, я один раз прочитал код, суть задачи не понял даже.

    Ответы: (191)
  81. (184) я предлагаю не уходить в софистику. т.е. если у нас есть гигабайт инсталляции и какая то редкая часть работает криво это плохо но в целом код работает будем считать что это нечто работающее.

    Ответы: (192)
  82. в (138) ключевая часть кода вызывает сегфолт, это неработающий код.

  83. webdev Зачем?
    Нет, я один раз прочитал код, суть задачи не понял даже.

    Понятно. Вот и не пытайся критиковать то, что понять не способен. Программист, [...]

    Ответы: (198)
  84. Курильщик я предлагаю не уходить в софистику

    да. поэтому не подменяй понятия

    Ответы: (193)
  85. andrewks поэтому не подменяй понятия

    я не подменял понятия я дал свое определение говнокоду.

    Ответы: (195) (204)
  86. говнокод - работающий код но написанный так что непонятно как он работает, либо так его просмотр неприятен.

    Ответы: (196) (200) (204)
  87. (193) ты утверждаешь, что говнокод - это правильно работающий, но отвратительно оформленный и/или структурированный код
    я утверждаю, что для говнокода критерий - именно "отвратительно оформленный и/или структурированный", а вовсе не "правильно работающий"

    Ответы: (197)
  88. (194) обфускация - говнокод?

    Ответы: (202)
  89. (195) но если код при запуске тут же валится это ничего не делающий код.

    Ответы: (201) (203)
  90. Эльниньо Понятно. Вот и не пытайся критиковать то, что понять не способен. Программист, [...]

    Почему ты думаешь что я неспособен распознать что твой код говно? Тут ты ошибаешься.

  91. Понеслась [...] по кочкам

  92. любой сжатый exe-файл - говнокод? ведь

    Курильщик непонятно как он работает, либо так его просмотр неприятен

  93. (197) ничего не делающий код при запуске просто неспособен куда-либо свалиться

    Ответы: (203)
  94. andrewks обфускация

    Некоторый так изначально пишут. )

    Но по определению это не говнокод, это если серьезно.

    Ответы: (204)
  95. andrewks (197) ничего не делающий код при запуске просто неспособен куда-либо свалиться

    Ок. Код который даже на 1 процент не делающий то чего от него ожидается.

  96. Курильщик Но по определению это не говнокод

    Курильщик я дал свое определение говнокоду.

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

    Ответы: (207)
  97. Если конечно не ожидалось что первая же инструкция привет к вылету.

  98. 03.02.2020 20:48:28 отредактировано webdev

    Неработающий код тоже может быть говнокодом. Одно другому не мешает.
    Если написать работающий говнокод, а потом добавить в него синтаксическую ошибку, от этого он не перестанет быть говнокодом.

    Ответы: (209) (211)
  99. (204) и?
    Говнокод пишут по неопытности а обфускация умышленное действие. Если я говоря про говнокод упустил это слово то это подразумевать можно. Но я предлагаю не доводить до маразма.

  100. Теоретики, блдЪ

    Ответы: (210) (215)
  101. webdev Неработающий код тоже может быть говнокодом

    Пусть неработающий говнокод хотя бы доберется до кода работающего, но говняного.

  102. (208) ты поправил?

    Ответы: (215)
  103. Новее ›

или зарегистрируйтесь чтобы ответить!