Пора с этим разобраться! Чтобы я этого дерьма больше не видел! Кто, по-твоему, поддерживает твой г / commitstrip :: программисты :: Смешные комиксы (веб-комиксы с юмором и их переводы)

commitstrip Комиксы программисты 
Пора с этим разобраться!
Чтобы я этого дерьма больше не видел! Кто, по-твоему, поддерживает твой говнокод? Я, вот кто!
CowwitStrip.COW,commitstrip,Смешные комиксы,веб-комиксы с юмором и их переводы,программисты
Подробнее
Пора с этим разобраться! Чтобы я этого дерьма больше не видел! Кто, по-твоему, поддерживает твой говнокод? Я, вот кто! CowwitStrip.COW
commitstrip,Смешные комиксы,веб-комиксы с юмором и их переводы,программисты
Еще на тему
Развернуть
Влажные мечты разработчиков...
Korsar_U Korsar_U 06.10.201619:33 ответить ссылка -5.5
Ну вот, теперь ему придется заставлять себя писать говнокод, даже если есть очевидное нормальное решение, чтобы не вызвать парадоксов :-)
alex4321 alex4321 06.10.201619:52 ответить ссылка 4.8
С ударенной головой плохо думать, это событие стало причиной говнокода.
Даже больше, он не научится писать нормально не изучив говнокод.
Alex23 Alex23 06.10.201620:10 ответить ссылка 2.6
Прошу народ, объясните суть говнокода и хорошего кода, просто для меня коды в программировании сложны в понимании.
Хорошо, а как бы это сделал нормальный человек?
Если обычный АСКИ, то задал бы if на сравнение с диапазоном кодов букв. Или бы просто использовал библиотечную функцию
Аски коды?
jorus jorus 06.10.201621:03 ответить ссылка 0.0
Даже если абстрагироваться от библиотечных функций и диапазона символов - можно было объявить статический массив из букв и сделать 1 проверку на принадлежность массиву вместо 26 кейсов (или 52 если с верхним регистром)
Ветвление в цикле??? Страаааашна.
jorus jorus 06.10.201621:39 ответить ссылка 0.3
Если массивом и ascii, то немного не так. Делается заранее массив, где код символа - номер элемента массива. Каждый элемент заполняется типом литерала, например a[65]=1, где 65 - это ascii код символа "А". После этого в процессе разбора строки подставляем код символа в индекс массива и получаем тип.
Стрельба в ногу чистой воды:)
jorus jorus 07.10.201600:45 ответить ссылка -0.6
С чего бы?
Ну, мы, обитатели Сигмы Лебедя, сказали бы, что эта функция будет при внешней простоте крайне тяжелой и неочевидной. Замена говнокода на индусский код.
Тут дело даже не в коде, тут просто способ получения результата - проктологические процедуры. Самый простой и читаемый способ - диапазоны аски.
jorus jorus 07.10.201611:12 ответить ссылка 0.1
Разница в том, что массив быстрее, собственно, ради этого и делается. Вполне рабочий алгоритм при построении синтаксических анализаторов. Но почему-то обозвали индусским кодом и выстрелом в ногу.
> Хорошо, а как бы это сделал нормальный человек?

bool IsBukva(char symbol) {
return isalpha(symbol);
}
phlush phlush 07.10.201600:38 ответить ссылка 0.1
Ну, это при условии, что нам нужно проверить только на принадлежность к символам. А если проверить, относится ли символ к латинице, и, быть может, даже находится ли буква в том или ином регистре. Потому, в зависимости от задачи, этого решения может быть недостаточно. А код, который мы видим на картинке, проверяет только на принадлежность к строчным латинским буквам от a до m. Потому, по умолчанию, задача решается в пределах имеющейся информации.

P.S. Никогда не недооценивай способность пользователя неправильно понимать и использовать любую программу, всегда делай ошибочное использование физически невозможным. Просто диву порою даешься тому, что могут ввести пользователи в инпут.)
Ок, [a-z] :-)
Если символы аски то в php и js ord(char) > 127 это уже не буквы (латиницы). в С и java достаточно просто преобразовать тип, (int) char, если больше 127 то это не буква (латиницы). Если нужны другие языки, нужно просто модифицировать проверку другими диапазонами.
Почему нет goto?
Nazim Nazim 06.10.201621:57 ответить ссылка 1.0
Если абстрагироваться от учебников, где написано, что goto - плохо, то само по себе использование в нужном месте делает куда проще жизнь. Само собой, таких мест немного, и конкретно здесь лучше сделать с массивом, как писали выше, но goto само по себе не есть плохо.
А ещё Goto упрощает реверс-инжиниринг, каким бы не казалось это странным... Что, впрочем, волнует только программистов действительно мощных контор.

А вне этого goto плохо только по двум причинам:
1. Путает код, делая его поддержку невообразимо сложной.
2. Позволяет недопустимые выходы из процедур, что, зачастую, губит проверки и ограничения, позволяя случаться разным неприятным исключениям.
В каждом языке программирования - говнокод имеет разные ипостаси, смысл в том что когда ты берешься за свой код спустя энное количество времени, ты хватаешся за голову, плачешь, вытераешь свои кровавые слёзы, немного ностальгируешь, иронично улыбаешься, пару раз передергиваешь, в качестве зарядки, и начинаешь писать все заново. Тоже самое и если говнокод чужой, разве что настольгия превращается в острое желание убивать. Вся мякотка в том, что любой нормальный кодер когда-то писал говнокод - это аксиома. Поэтому все мы, в прошлом, настоящем и будущем - говнокодеры для нас самих в зависимости от определенного промежутка временного континуума.
jorus jorus 06.10.201621:27 ответить ссылка 2.9
Ты написал плохой код:
- никто кроме тебя не способен понять как он работает
- ты не заглядывал в этот код 2-3 недели и теперь, заглянув, ты и сам не в силах понять как он работает
- ты не можешь добавить в этот код какую-нибудь новую фичу/функцию, это слишком сложно
- ты все-же добавил новую функцию, но при этом сломал старые (наплодил новых багов) - теперь фикси

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

Похожие посты
CowmitSrip.cow 				
	4		II Ж	
		^ г			
CowmitStrip.com Разработчик драйверов для принтеров
Разработчик АНБ
Разработчик Веселой фермы
Разработчик защиты В1и-кау
Разработчик Oracle
Разработчик IE 6
Хмм, этот метод недоста точно раздут.. Добавим еще десяток строк..
¡00 (<-саде/
¡Пб№<Р
С
wnô
iïlCX
CowwitStrip.com
подробнее»

commitstrip Смешные комиксы,веб-комиксы с юмором и их переводы программисты

Разработчик драйверов для принтеров Разработчик АНБ Разработчик Веселой фермы Разработчик защиты В1и-кау Разработчик Oracle Разработчик IE 6 Хмм, этот метод недоста точно раздут.. Добавим еще десяток строк.. ¡00 (<-саде/ ¡Пб№<Р С wnô iïlCX CowwitStrip.com
Ага, он казался хорошим парнем хорошим отцом
Никогда бы не подумал..
Точно
Но такому нет оправдания
Ты
монстр
Убийца!
Вот он идет
Признан виновным в хранении незашифрованных паролей
в базе данных, что карается..
Вломи
ему!
ComimitStrip.com
подробнее»

commitstrip Смешные комиксы,веб-комиксы с юмором и их переводы программисты

Ага, он казался хорошим парнем хорошим отцом Никогда бы не подумал.. Точно Но такому нет оправдания Ты монстр Убийца! Вот он идет Признан виновным в хранении незашифрованных паролей в базе данных, что карается.. Вломи ему! ComimitStrip.com
Как мне стоит запускать мои тесты
Как я на самом деле запускаю мои тесты
Так, сейчас я отправлюЧ ¡пбех.рЬр на продакшн, свистни, если что, ок2*
шибок
Ошибка 500, 500!! Откатывай! ОТКАТЫВАЙ!-
Давай, но будь готов к вазелину..
^ОТКАТЫ!
CommitStrip.com
подробнее»

commitstrip Смешные комиксы,веб-комиксы с юмором и их переводы программисты

Как мне стоит запускать мои тесты Как я на самом деле запускаю мои тесты Так, сейчас я отправлюЧ ¡пбех.рЬр на продакшн, свистни, если что, ок2* шибок Ошибка 500, 500!! Откатывай! ОТКАТЫВАЙ!- Давай, но будь готов к вазелину.. ^ОТКАТЫ! CommitStrip.com