Быдлокод

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

Быдлокод — программный код, очевидно, написанный каким-то быдлокодером ибо нормальный прогер такое не напишет будучи в здравом уме и трезвой памяти.

Features[править]

Типичный быдлокод может включать следующие моменты:

  • Написание идентификаторов (программных конструкций) на ланге отличном от латиницы и в частности от английского.
  • Название идентификаторов (перемененных, методов, классов, etc) на транслите.
  • Пренебрежение «хорошим тоном программирования».
  • Отсутствие или неправильная структуризация.
  • Неосознанные названия идентификаторов.
  • Отсутствие или неправильное форматирование кода.
  • Использование разных стилей именования идентификаторов в одном проекте.
  • Общие ошибки программирования.
  • Открывающая фигурная скобка на новой строке.

Общие ошибки программирования[править]

В процедурном программировании повторение одного и того же кода вместо вынесения его отдельно в подпрограмму. Игнорирование и как следствие отсутствие инкапсуляции в ООП, etc.

Идентификаторы не на латинице[править]

Некоторые ланги программирования дают возможность писать код на своём ланге, а не на английском. E.g. привычные для Си-подобны лангов циклы «for», «foreach», «while», «do while», например, на расийском называются «для», «длякаждого», «пока», «делать пока». В идеале вообще в программном коде не должно быть ничего кроме латиницы. Однако допускаются комментарии на других лангах. Неправильное форматирование кода

E.g. нет нужных отступов для вложенного кода.

Разные стили именования идентификаторов[править]

E.g. чередование стилей CamelCase и snake_case. А вообще со времён большой популярности ООП и Java в 90-ых модным стилем является CamelCase в то время как snake_case типа устаревший пережиток времён Си.

Неосознанные названия идентификаторов[править]

E.g. ничего незначащие переменные типа w, x, y, z, вместо значащих и с ходу понятных price, customer, students, teachers.

Если все идентификаторы имеют чёткое значение, то и комментарии в коде вообще не нужны. Поэтому в идеальном коде вообще нет комментариев так как всё и так понятно по названиям идентификаторов. Отсутствие комментариев ускоряет написание кода. Проще говоря, если называть все идентификаторы по-человечески, то не надо писать длинные комментарии, а это ускоряет работу.

Отсутствие или неправильная структуризация[править]

E.g. когда в популярном паттерне MVC методы, которые выполняют функции View пишутся в Controller.

Пренебрежение хорошим тоном программирования[править]

Не соблюдать правила хорошего тона программирования. E.g. не ставить букву «I» перед названием интерфейсов и «C» перед названием классов в том же C++.

Открывающая фигурная скобка[править]

Вечным отдельным спором является положение открывающей фигурной скобки в Си-подобых лангах (и ей подобных в других лангах). Некоторые её переносят на новую строку, а код пишут на следующей строке. Некоторые считают, что это дилетантский стиль программирования, то есть признак того самого быдлокода.

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

Когда синтаксис пройден (изучен) эту открывающую фигурную скобку уже не переносят на новую строку чтобы экономить место. То есть люди, которые хорошо изучили синтаксис ланга, уже не переносят открывающую фигурную скобку так как знают что откуда начинается. Это новичкам надо показывать и делать кучу переносов, а обученным людям некогда на это распыляться и они пишут код убористо. Однако многие IDE с настройками «из коробки» форматируют код таким образом, что переносят открывающую фигурную скобку на новую строку. Также некоторым индийским программистам платят за количество строк программного кода и поэтому они всячески стараются его растянуть и поэтому тоже переносят открывающую фигурную скобку на новую строку, что также добавляет вес теории о том, что перенесённая открывающая фигурная скобка это признак быдлокода.

Когда в коде рабочей (продакшин) программы видишь перенесённую на другую строку открывающую фигурную скобку, сразу понимаешь, что писал этот код либо школьник, который только вчера познакомился с лангом программирования, либо индус, которому платят за количество строк программного кода. И то и другое говорит о том, что это быдлокод.

Movax1010h.png Глубокий смысл скрыт в этих неестественных языках
Языки программированияПромышленные: BATC#CC++JavaJavaScript (AJAX) • PascalPerlPHPPythonRubyABAPАссемблерВасикFortran (Профессор)
Эзотерические: BrainFuckHQ9++ErlangForthHaskellLISP (My other car) • PrologTclΤΕΧOracleMySQLGolangВ++Scala
ПрофессииБыдлокодерПрограммистТестировщикХакерХеллоуворлдщикIT-звёзды
Методы и стилиReverse EngineeringАнти-паттернВыстрелить себе в ногуГрязный хакКод (индусский) • КостыльМетод научного тыкаПомолясьСвистелки и перделкиОчередьСпортивное программированиеОбфускацияБета-тестАльфа-тестШаблоныRegReplaceФреймворкБыдлокод
Средства разработкиSublime TextПодсветка синтаксиса кодаUnstable DiffusionAPIPythonTutorCodeWarsDataCampUnity3D
ЛюдиИлья КанторЮрий КлючевскийЭдуард ЛаасЭдвард Сноуден
Прочее++i + ++iDeadline%s640 килобайтCMSDummy modeЕГГОГFoobarGod is real, unless explicitly declared as integerGOTOIfconfigKISSRegExpSICPsql.ruXyzzyДискетаИнжалид дежицеКОИ-8ЛогМанРекурсияСУБДТест ТьюрингаУмение разбираться в чужом кодеФаза ЛуныФатальный недостатокПроблема 2000ТаймстампКэшЗапись в файл без кэша (Perl)Танцы с бубномКодач