Работники решили увековечить шедевральный кусок legacy-кода / it-юмор :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

it-юмор geek 

Работники решили увековечить шедевральный кусок legacy-кода

^summano

^rVes*—	y
i -»“»■ws—
return *yes
return *no
thls.Yesc
°”Vert(*yEs*i,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор
Подробнее
^summano ^rVes*— y i -»“»■ws— return *yes return *no thls.Yesc °”Vert(*yEs*i
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Еще на тему
Развернуть
string.ToLower();
JohnnyZ JohnnyZ 30.09.201812:46 ответить ссылка 10.8
y
и как он тебе вернёт "no" ?)
Foli Foli 30.09.201812:49 ответить ссылка 1.9
Никак. А конвертер и не должен "no" возвращать, его задача - конвертировать. Для проверок валидаторы есть.
Конвертер то может и должен, но у чувака код работает иначе =)
Foli Foli 30.09.201812:59 ответить ссылка 0.4
Именно: toLower() для приведения к единой форме перед проверками, а возвращать специальные константы.
А потом во входном потоке появится русская "e" в yes, и тестировщик сломает мозги, разбираясь, что не так работает.
Выражать логические переменные через строки - мерзость изначальная.
Вот доработкой такой херни сейчас занимаюсь.
Комментов - где-то 1 на пару тысяч строк кода. Документация вида
"функция создания пользователя позволяет создать пользователя; функция вывода списка на страницу выводит список на страницу".
foreach (FageDoc pd in Model.FageDocList)
{
pd.GetSearchList() ; even = lever.;
ЧГ T i nri rl 4
oTrov, О 'HnrF”	• 'ЧпгПНН "
Что с even не так?
Ты не смог в "!even". А в следующей строке название класса тебе ни о чем не говорит?
Ну проясни тупому, о чём оно должно мне сказать?
Происходит инверсия значения even, после чего по нему как селектору формируется строка.
Не совсем понимаю, что тут принципиально некорректного.
У меня, очевидно же, вопрос не к синтаксису, а к логике.
odd и even - нечётное и чётное, варианты - тру/фолз. И тут резко автор говорит, что делаем всё резко наоборот в отношение нечётных. Чётные не трогаем. А потом полагаясь на чётность-нечётность выполняем действия.
С этими yes/no вспомнилась история, от которой до сих пор горю. Решил познакомиться с CentOS, при установке выбрал русскую раскладку клавиатуры, первая перезагрузка и... Появляется запрос, типа, если хотите продолжить работу, нужно согласиться с лиц. соглашением. Согласны? Введите "y" или "n". Весь диалог происходит на русском, раскладка тоже на русском, переключение на латиницу не работает, перепробовал все комбинации клавиш, даже caps lock, "д" или "н" не принимается, даже залогиниться и поправить раскладку невозможно. "Удалить виртуальную машину?" -> "YES"
Alt+121
Не на всех клавиатурах, особенно в ноутах, есть нумпад.
Если нет отдельного нумпада он доступен с использованием дополнительных кнопок, например как в пикрилейтиде
Это частный случай использования текстовых ключей для выражения состояния чего-либо (коды ошибок, например).
А чтобы тестеровщик не ломал голову - нужно проверять все возможные ключи и ругаться в логи, если не один не подошел, а не надеяться на else.
Hellsy Hellsy 01.10.201812:55 ответить ссылка 0.0
И каждый этот частный случай - мерзость.
Состояние, выражаемое через конечные множества - выражаются перечислениями, логический тип - частный случай этого.
В нормальных языках есть изначально полноценные средства для работы с перечислениями.
Это специально сделано для того, чтобы были встроенные механизмы контроля целостности и соответствия на уровне компиляции (или интерпретации, не суть важно).
И использовать текстовые представления оных требуется только в одном случае - для выдачи в интерфейс пользователю.
Но завязывать логику, формируя обработку перечислимых типов через текстовые представления, используя текст "унутре" - за это недопрограммисты будут гореть в геене.
Если какой-либо недоязык не может корректно работать с перечислениями - используют глобальные индексные массивы в общем пространстве имён, где обрабатывается индекс.
Т.е., для логических типов 0/1 - как отсылка к false|true.
Это тоже нехорошо, но ошибок уже много меньше потенциально...
А если вы внутри логики строку передаёте как состояние перечислимого типа, то контроль целостности и соответствия вам придётся проводить каждый раз. На входе блока. И организовывать обработку исключений. А потом удивляемся, куда девается производительность...
Перечисления сделаны для взаимодействия со сторонними приложениями с сохранением человекочитаемых названий полей и кодов ошибок. Классический пример - протокол HTTP. Там все поля запроса и ответа в заголовке являются текстовыми, включая дату. И да, контроль соответствия проводится каждый раз. Добро пожаловать в реальный мир за пределами коробки helloworld.
Hellsy Hellsy 01.10.201815:15 ответить ссылка 0.0
Ну ты гений оптимизации.
if(str.size() == 2)
return "no";
return "yes";
но ведь функция "YesConverter", а вызывается "YesConvert"
Tril Tril 30.09.201813:31 ответить ссылка 4.6
А то, что вызов происходит где-то, похоже, вне метода - это норма?
Как ты собрался метод сам в себе вызывать, без опции выхода? Наркоман штоле?
"вне метода" и "вне того же метода" - разные выражения :-)
alex4321 alex4321 30.09.201814:26 ответить ссылка -0.5
Он тебе все "йес" да "йес",

А меж тем все ест да ест.

Отвернись — он пол-Расеи

Заглотнет в один присест!
Radekk Radekk 30.09.201814:44 ответить ссылка 4.8
GavriKos GavriKos 30.09.201814:55 ответить ссылка 3.4
Бесконечная рекурсия неизбежна
bear4862 bear4862 30.09.201814:56 ответить ссылка -0.8
последняя строчка это просто пример вызова метода, который приводит к ошибочному результату.
сорри за капитанство.
Бля, точно. Скобка-то закрыта.
Спасибо, капитан!
>написал yEs
>получил "no"
какой то
ПРОФЕССИОНАЛЬНЫЙ
■ЙНЁннй!
a_erm a_erm 30.09.201815:46 ответить ссылка 19.2
у пусть я словлю минусы, но... КЭП!?
Короче этот кусок кода конвертирует слова с регистром "Yes" и "YES" в обычный вид без регистров("yes"). Типа программист поставил защиту от людской тупости невнимательности.
Но кто-то решил конвертировать слово "yES" (такая ситуация возникает, когда у человека включён капс, но он не знает об этом и пишет "Yes", но получает "yES") . Эта ситуация не предусмотрена в коде, и программа думает, что там написано "no".
действительно
hmww hmww 30.09.201819:55 ответить ссылка 0.0
Пока не увидел что string с маленьких букв, а названия функций с заглавных, думал что это Java и не мог понять, как вообще этот код может работать корректно.
Daniel Daniel 30.09.201816:10 ответить ссылка -0.3
Пока не увидил string вторым же словом в коде? :)
ruhmwald ruhmwald 30.09.201816:48 ответить ссылка -0.2
Пока не обратил внимание, так лучше?
Daniel Daniel 30.09.201817:40 ответить ссылка 0.0
Проще с no учесть все комбинации, чем с yes.
NO || nO || No || no
else
yes
вот вы ржете а может бизнес требования были именно такие!
imhos imhos 01.10.201810:11 ответить ссылка 0.2
Скажи "yes".
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
One morning you wake up find out you have access to God’s developer console. What’s the first thing you do with this power?
Discussion
♦ 154 +	W 479	& Share
^ BEST COMMENTS ▼
I like forks • 5h
hehe3301 • 7h
sudo rm -rf oceans/*/contents/
*.plástic
sudo rm -rf people/*/*.cáncer sudo rm -rf v
подробнее»

it-юмор geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор без перевода it humor geek it юмор

One morning you wake up find out you have access to God’s developer console. What’s the first thing you do with this power? Discussion ♦ 154 + W 479 & Share ^ BEST COMMENTS ▼ I like forks • 5h hehe3301 • 7h sudo rm -rf oceans/*/contents/ *.plástic sudo rm -rf people/*/*.cáncer sudo rm -rf v
¿i
OR IS IT TESTING ME?
Й