Почему говнокод — это норма в IT: мнения опытных разработчиков

Рекрутер пожаловалась в линкедине, что кандидата, на которого она сделала ставку, — отвергли, потому что он «большую часть времени работал в стартапах». Для нанимающего менеджера это — red flag, так как в стартапах всё собирают дешёво и быстро «из г… и палок». В комментариях — дискуссия: кто-то согласен, а кто-то, наоборот, говорит, что в крупных компаниях говнокода больше.

@devby спросил у комьюнити: грязный код — это ок?

Виктор, начал работать программистом ещё в 1995 году, сейчас — консультант в ИТ:

— Говнокод не просто «бывает», это в индустрии — норма. А вот красивый код — скорее, исключение из правил. И так и должно быть.

Объясню, почему. Но прежде сделаю оговорку: говнокод — это не про «руки не из того места» и не про квалификацию. Работающий говнокод пишут все — и стаффы принципалы и джуны. Потому что говнокод ограничен прежде всего временем. Если вам надо «завтра или никогда», то вы будете писать, как быстрее, а не красивые абстракции и вычисления типов.

В сущности, единственная область, где красивый код в приоритете — это open source.

Да, мы помним: говнокод — это издержки на модификацию и развитие, и весьма часто его приходится выбрасывать целиком и заменять таким же, но другим… говнокодом. И вот это и даёт нам ключ к пониманию.

Если вы не планируете менять что-то вот в этом конкретном месте — то именно здесь говнокод разумен, эффективен и полезнее красивого кода (потому что дешевле). А если планируете — то наоборот.

Мы все стараемся писать красивый и поддерживаемый код, и все практики построены на том, чтобы код не был говнокодом. Но всё в мире стоит денег.

  • И ваш лид, который полдня ревьюил код, ровно те же полдня не писал код сам — это издержки.
  • Ваше полное покрытие юнит тестами — это время, не потраченное на написание полезного бизнес-кода, это большие издержки.

Поэтому истинное искусство программирования и состоит в тонком балансе между простотой, понятностью и красотой кода, между издержками «сегодня» и издержками «завтра». Между корпоративными процессами и «херак-херак — и в продакшен».

Выбор делает тот, кто распоряжается деньгами, даже если он не делает этот выбор и идет на поводу у команды.

Алесь, фулстек-разработчик на JS\TS и Python (в профессии с 2021 года):

— Как и в любом творчестве, всё начинается с наброска — и после нескольких итераций код может превратиться в шедевр. Но для кого-то и черновой набросок — отличное работающее решение. Иногда нет времени делать красиво, нужно «вчера». А разработчик с плохой базой не знает, что можно бы сделать лучше и по-другому.

Хорошо протестированный и отлаженный говнокод будет работать годами, и вряд ли кто-то заметит, что что-то не так. Да, код мог выполнить операцию не за 1 секунду, а за треть. Но если у приложения нет такого объёма данных или такой нагрузки, где это становится критичным, — то зачем заказчику тратить на это время и деньги?

Текст целиком

А что вы думаете по поводу кода?

Читать дальше

Вы должны всегда въезжать в Беларусь по беларускому паспорту — даже если у вас двойное гражданство

МИД Беларуси разъясняет, что граждане страны с двойным гражданством обязаны въезжать и выезжать по белорусскому паспорту. Справка на возвращение даёт право лишь на однократный въезд, для выезда нужен паспорт.

Учитываются ли командировки ИП за пределами Польши при подсчёте 5 лет для статуса резидента? Ответ ужонда

Учитываются ли командировки ИП за пределами Польши при подсчёте 5 лет для статуса резидента? Ответ ужонда

Разъяснение Управления по делам иностранцев Польши о том, засчитываются ли командировки индивидуальных предпринимателей (B2B) за границей в 5-летний срок для получения статуса долгосрочного резидента ЕС. Объяснение основано на буквальном толковании закона и различиях между трудовыми и гражданско-пра