История №1490092
Я всегда скептически относился к рассказам об “индусском коде”, подозревая некоторое преувеличение тупости написанного в Индии кода. Но несколько дней назад убедился в этом непосредственно. Посоветовал коллеге из Индии использовать в одном месте его программы на Go бесконечный цикл с проверкой условий выхода внутри. На следующий день демонстрирует мне следующий код:
n := 1
for n > 0 {…}
да ещё и с выходом из цикла по goto.
На самом деле надо так:
for {…}
и выходить по break.
Пытаюсь подсказать ему правильный вариант, так он мне начинает доказывать, что всё написано правильно, поскольку цикл будет выполняться бесконечно, как и просили. И это старший разработчик с более чем десятилетним стажем работы программистом!
Я теперь не понимаю, как Windows вообще запускается :) Это напоминает историю про работника авиационного завода, который никогда не летает самолётами, посколько видит, как их собирают.
Мне могут возразить, что этот код тоже будет работать. IMHO лучше вообще не писать программы, чем выдавать такое.
Ну просто не знал мужик языка досконально, что там можно в цикле условие продолжения опускать. Другое дело, что он, наверное, мог бы написать for true, что читалось бы не хуже варианта автора.
А что, в Go есть goto? Не знал.
SudokuFan ★➦ystervark• 18.11.24 06:41
Дай им волю, они так каждую строчку писать будут. Хочется привить индийцам правильный стиль. Но их явно больше :)
Привет, коллега! Вариант индуса тоже правильный - и даже тратит примерно столько же ресурсов. Он убивает только читабельность кода. Вас учили поддерживать читабельность, а его нет. Более того, читабельность ведь понятие субъективное - может быть, ему как раз понятнее именно так.
Мы оба видели ТАКОЙ код, что аж волосы дыбом встают. У меня за 30+ лет целая коллекция скопилась :) Так что отстаньте от индуса - он явно учился на Бейсике.