Как стать автором
Обновить

Комментарии 42

Конечно писали! И это нормально! Просто надо всегда быть в развитии и учиться, а не впаривать свой код за мегапупер крутой когда указывают на явные ошибки!
я бы сказал что каждый программист постоянно пишет говнокод. через какое то время он его смотрит, «включает» знание полученный за это время и говорит — КОШМАР! переделать!..
Говнокодер — это временное состояние, а никак не постоянная характеристика человека. Расслабьтесь, все порой говнокодят, когда например баги на скорости правят. :)
Нет ничего более постоянного, чем временное.
это стиль мышления, поэтому именно характеристика человека, начинающий != говнокодер по определению, есть даже четкая грань между джуниором и кодером (я не имею в виду что среди кодеров все говнокодеры, просто разные мотивации и образ мышления)
Ага, когда надосрочнапоправитьвсегоритбегомбегомуволювсех, то тут уже ничего не поделаешь: говнокодю и плачу.
Думаю, что заметные отличительные черты в портрете гуано-кодера следующие:
— отсутствие критического отношения к собственному коду («а, сойдет, не себе же»);
— непринятие конструктивной критики («да я аж 2 cms сделал, и они работают, что вы мне тут советуете!»);
— игнорирование best practices («все эти книжки и статьи только заумничают; их авторы ничего не понимают на практике»).

Покодить так пару месяцев (особенно если работать не в команде, а самостоятельно), и этого станет вполне достаточно, чтобы начать выдавать «дурнопахнущий продукт», и даже не замечать этого.
НЛО прилетело и опубликовало эту надпись здесь
Скажи ему, что в C# имена переменных можно задавать на кириллице. И даже иероглифами
bool 医中核集团总经理康日新严重违纪被免职 = true;
НЛО прилетело и опубликовало эту надпись здесь
Некоторых вещей вот лучше не знать :)
Зато какой знатный обфускатор получается! :)
В tcl можно что угодно как угодно называть — команды, переменные, массивы, пространства имён… И в javascript тоже можно (не уверен насчёт функций, переменные можно).
вы сначала ответьте себе что такое говнокод — потом придет и понимание где разница.
НЛО прилетело и опубликовало эту надпись здесь
Ахаха, зашёл. Теперь знаю, что буду читать вместо баша, спасибо.
Просто некоторые постоянно развиваются и стараются улучшать свой код, пусть даже не ранее написанный, а только новый, но они совершенствуют свои знания/навыки, это программеры, которые когда-то пытались воплотить в жизнь свои идеи, хотя бы и плохим кодом, это нормально. А некоторые вроде и развиваются, а вроде и нет, так как продолжают писать свой говнокод, который писали пару лет назад, когда только начинали с Hello world, вот таких можно называть говнокодерами. Но тут тоже есть грань, человек может не уметь, может не понимать, может только учиться и т.д., а говнокодеры пишут свой код, считают что он по меньшей мере не хуже, чем у остальных и готовы зарабатывать на нём при этом даже не пытаясь улучшить.
Типичная фраза говнокодера (и не только кодера) «Вам шашечки или ехать?» очень хорошо по-моему характеризует таких людей.
Брррррр, меня аж в дрожь бросает при таких словах и я теряю интерес к этому человеку надолго.
говнокодеры смотря на свой код не испытывают ужаса
То есть правильные кодеры испытывают ужас от своего кода? :)
Тут недавно пробегало на CodingHorror — если программист на интервью на вопрос «what was the worst code you've ever seen?» сразу не отвечает «my own» — интервью можно заканчивать сразу :)
Грань как правило в простом правиле: Если через год этот код можно читать и поддерживать — то все хорошо. Если через год сам автор смотрит в этот код и говорит «ОМФГ, ЧТО ЭТО?» то такой код не есть гут.

В принципе есть еще ряд метрик — длина функций в строках, количество ветвлений, контроль ошибок, единый стиль наименования и дизайна, coupling всякие — но это уже, ИМХО, технические детали. Я видел код, который бы не прошел большинство метрик и при этом он хорошо читался и расширялся. А видел обратные примеры — когда вроде все что по метрикам положено есть, а код без поллитры не понять и без титанических усилий не изменить. Где-то так.

Все вышеизложенное, конечно же, мое скромное ИМХО, основанное исключительно на моем личном опыте и опыте многих моих коллег.
Ну естественно все пишут говнокод, кто-то чаще, кто-то реже, разница в том что говнокодер этого не осознает, для него принцип «главное чтобы просто работало» перебивает все остальные. Первокурсник-программист — это учащийся, познающий на практике новое. Говнокодер же считает себя состоявшимся и свои подходы правильными. Вот и разница.
Кто учился писать на программируемых калькуляторах с размером исполняемого кода в 114 шагов — говнокода не писал, не до того было
114 — это многовато

У меня был Б3-34 — 94 шага, и МК-61 — 105 шагов.
А я все равно все ячейки не использовал, так что шло и на БЗшке
Вобщем, меня все поняли ;)
Там еще часть кода можно было распихать по регистрам :)
Скажу на своём примере, в универе, когда преподаватели подгоняли всех и сроки продлить было не так уж и просто, иногда не было выбора, как вставить кусок говнокода в программу, с целью скорей сдать работу, но, к счастью, когда делались работы типа курсовых и т.п., то преподаватели более лояльно относились к срокам и там говнокода не было, потому как код перелопачивался туеву хучу раз.
Думаю хороший программист практически обязан считать свой код, написанный месяц/пол года/год/несколько лет назад, в некотором смысле говнокодом ))

В том смысле, что «Блин, ну я лох, это ведь лучше делать совсем не так!»
Безусловно.
Например, в Павлово-Посаде. Меня подводят к дамам и представляют так:
– А вот это тот самый знаменитый Веничка Ерофеев. Он знаменит очень многим. Но больше всего, конечно, тем знаменит, что за всю свою жизнь ни разу не пукнул…
– Как!!! ни разу!!! – удивляются дамы и во все глаза меня рассматривают. – ни ра-зу!!!
Я, конечно, начинаю конфузиться. Я не могу при дамах не конфузиться. Я говорю:
– Ну как то есть ни разу! Иногда… Все-таки…
– Как!!! – еще больше удивляются дамы. – Ерофеев – и… Странно подумать!.. «Иногда все-таки!»
Я от этого окончательно теряюсь и говорю примерно так:
– Ну… А что в этом такого… Я же… Это ведь – пукнуть
– это ведь так ноуменально… Ничего в этом феноменального нет
– в том, чтобы пукнуть…
– Вы только подумайте! – обалдевают дамы.
(с) Венедикт Ерофеев. МОСКВА – ПЕТУШКИ.
разница большая, если категория творителей которым не важно как главное за сколько — им не не стыдно за свои произведения, главный девиз по жизни «стыдно когда видно», отличительная особенность — вопрос «что сейчас лучше выучить, где больше денег получится», книг умных никогда не читали (они денег не дают), другая категория набирается опыта, совершенствуется, читает умные книги, слушает умные советы, когда понимает что что-то может и это не очень стыдно показать начинает этим зарабатывать, первые никогда не станут вторыми и они и являются говнокодерами
У нас в универе есть профессор, который говорит на лекции по разработке ПО (и пишет в методичке) так: «Программа либо работает, либо не работает. Если работает — задача выполнена». Надо сказать, его код соответствует принципам. Вот это, на мой взгляд, и есть говнокодерство.
Говнокодер — это тот кто пишет говнокод зная, что в нем придется копаться другим.
«Первокурсник-программист» звучит так же нелепо, как и «врач-первокурсник» или «профессор-пятиклассник»
Вам передают приветы и поцелуи призёры международных олимпиад ACM ICPC. Лично знаю 2 первокурсников, взявших там серебро. Звучит нелепо, да.
Говнокод — код на одном или нескольких языках программирования, который в себе содержит признаки велосипедности, завышенного самомнения программиста, который этот код писал, лени программиста, программирования на коленке, плохого проектирования и пофигическое отношение к паттернам и идеологии заложенной в языке программирования и инструментах, которые применяются.

Говнокодер — любой программист, код которого по разным оценкам на >50 % состоит из говнокода и кода, реализующего всего лишь несколько, порой не самых удачных в тех разных случаях, алгоритма работы с данными, но, который одновременно не осознаёт свои недочёты, просчёты, или осознаёт, но при этом выдаёт неадекватную реакцию в виде нежелания что-то менять или агрессии по отношению к просьбам переписать (поправить).

Ученик — любой программист, который пишет код, содержащий в себе любое колличество говнокода, но относящийся к своей работе критично, готовый что-то переписать и исправить допущенные ошибки при первой же возможности, готовый всегда узнавать что-то новое из различных источников информации и готовый применять полученные навыки на практике в будущих разработках и переделке текущих.

Специалист — ученик, колличество говнокода которого по разным оценкам меньше 10 % от общего объёма кода.
Хе-хе. Как минимум 6 человек узнало свой стиль.
Да, точно такой же код можно написать на любом языке, PHP — не причем.
НЛО прилетело и опубликовало эту надпись здесь
Это что, некоторые красавцы еще и менеджменту стучат, что соработники их «оскорбляют, унижают и вызывают чувство собственной неполноценности» привет экстернелам из киевского Люксофта! ;-)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории