Re[3]: Как объяснить программеру, что он пишет говнокод?
От: MachoMuchacho  
Дата: 24.09.09 15:45
Оценка: +1 -10 :))) :))) :))) :))) :))) :))) :)))
Здравствуйте, AndrewJD, Вы писали:

AJD>Здравствуйте, MachoMuchacho, Вы писали:


MM>>кстати, то что программер пишет говнокод и у него большое самомнение не есть признаки плохого программера


AJD>А какие признаки хорошего программера?


* желание и умение учиться
(проверяется по школьным и вузовским данным — необходимо наличие одного из следующих пунктов — золотая/серебряная медаль, математическая спецшкола, красный диплом)
* развитой интеллект — проверяется тестом на IQ
* склонность к сидячей одиночной работе
* наличие творческого хобби
* и, собственно, желание работать в этой области

всему остальному можно научить или научиться
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: bkat  
Дата: 24.09.09 15:25
Оценка: +1 -1 :))) :))) :))) :))) :)
Здравствуйте, AndrewJD, Вы писали:

AJD>Здравствуйте, MachoMuchacho, Вы писали:


MM>>кстати, то что программер пишет говнокод и у него большое самомнение не есть признаки плохого программера


AJD>А какие признаки хорошего программера?


Использование слов "говнокод" и "быдлокодер" по отношению к другим
Re: Как объяснить программеру, что он пишет говнокод?
От: hexamino http://hexamino.blogspot.com/
Дата: 24.09.09 14:27
Оценка: 25 (3) +7
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому.


Не устраивает — увольняйте на испытательном сроке.
Если он действительно имеет неправильные представления о том, как надо писать код — его уволят еще с пары мест и он сам задумается.
Если же у него просто не сходятся представления с вашими — он найдет подходящее место и будет доволен.
Re: Как объяснить программеру, что он пишет говнокод?
От: Tekk  
Дата: 24.09.09 16:49
Оценка: +3 :))) :))) :)
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно.


А почему ты решил, что это говнокод? Надо больше данных, с иллюстрациями.

PS Если пишет говнокод и медленно — это не страшно, вопрос решаем. Вот когда человек пишет говнокод и очень быстро — это реальная проблема. Такой может легко подмять под себя весь проект и обречь его на долгое и мучительное умирание.
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: LaptevVV Россия  
Дата: 25.09.09 05:34
Оценка: 30 (1) +5 -3
Здравствуйте, MachoMuchacho, Вы писали:

MM>* желание и умение учиться


MM>(проверяется по школьным и вузовским данным — необходимо наличие одного из следующих пунктов — золотая/серебряная медаль, математическая спецшкола, красный диплом)

Полная фигня!
MM>* развитой интеллект — проверяется тестом на IQ

Нифига тест IQ не проверяет...
MM>* склонность к сидячей одиночной работе

Это да.
MM>* наличие творческого хобби
Не обязательно
MM>* и, собственно, желание работать в этой области
Творческий чел найдет творчество в любой сфере.
Или просто не будет этим заниматься. Как я бухгалтерией не занимаюсь и никогда не буду.
MM>всему остальному можно научить или научиться
Не все ХОТЯТ учиться. Таких научить невозможно.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: Gaperton http://gaperton.livejournal.com
Дата: 01.11.09 15:36
Оценка: 22 (3) +3 :)))
Здравствуйте, Vzhyk, Вы писали:

>> V>Представил: 5 классов в день, 25 в неделю, 100 в месяц, 1200 в год.

>> V>Комментировать не буду.
>> Да ну, гражданин, вы зря цепляетесь к цифрам, они же взяты сугубо с
>> потолка, исключительно для наглядной иллюстрации.
V>Вот я и представил, эту наглядную иллюстрацию.
V>А вообще, чем бы вы не меряли, сотрудники всегда найдут способ
V>обеспечить правильный размер, да еще на вашей глупостью смеяться будут.

Да только хуже будет. Не также — хуже. "Говнокодер" превратится в "быдлокодера". "Строки кода плохо, классы лучше". Представляю себе "говнокодера", которому объяснили, что его код — говно, потому, что он мало классов сделал . Код размыть, чтобы плотность дефектов упала, нашпиговав его на ровном месте говноклассами — бррр... А потом еще говнотестами это накрыть, чтобы метрику покрытия догнать . Жесть.
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: Quadri  
Дата: 25.09.09 07:39
Оценка: 6 (1) +1 :))) :))) :)
Здравствуйте, Pepel, Вы писали:

P>согласен, особенно по поводу первого, я б только оговорился — это скорее признак "генетики" хорошого проектировщика либо тестера .. хорошим кодерам присуща некая придурковатость


Ага, а еще зеркалка, КПК и велосипед да?
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: x905  
Дата: 25.09.09 04:43
Оценка: 3 (3) +3 -2 :)
Здравствуйте, MachoMuchacho, Вы писали:

MM>* желание и умение учиться

MM>(проверяется по школьным и вузовским данным — необходимо наличие одного из следующих пунктов — золотая/серебряная медаль, математическая спецшкола, красный диплом)

вот и неправда )
обычно красные дипломы имеют зубрилы, соображать не обученные (например девки с первых рядов парт пишушие лекции разноцветными ручками)

MM>* развитой интеллект — проверяется тестом на IQ


этот тест вообще никикам боком не относится к интеллекту

MM>* склонность к сидячей одиночной работе


это что еще за новость?
замкнутый индивид с гемороем?

MM>* наличие творческого хобби


уже ближе к теме

MM>* и, собственно, желание работать в этой области


вот это совсем точно — с этово и надо начинать

MM>всему остальному можно научить или научиться


не всему )
если мне предмет был в щколе\вузе неинтересен, ненужен или противен — я не мог себя заставить его "учить" ибо бестолку захламлять свой мозг ненужными сведениями
Re: Как объяснить программеру, что он пишет говнокод?
От: MachoMuchacho  
Дата: 24.09.09 14:41
Оценка: 21 (2) +3 -2
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


кстати, то что программер пишет говнокод и у него большое самомнение не есть признаки плохого программера
может он приехал к вам из хорошей провинциальной конторы, где он был чуть ли не экспертом (!), а в силу отсталости практического российского айти образования все учил сам (!)

такой человек — это ведь просто находка

надо лишь аккуратно дать ему понять, что мир гораздо больше и гораздо сложнее устроен чем он предполагал ранее, но при этом ему вполне по силам за полгода-год освоить все, что нужно и стать реальным экспертом в своей области
Re: Как объяснить программеру, что он пишет говнокод?
От: MozgC США http://nightcoder.livejournal.com
Дата: 24.09.09 16:48
Оценка: 1 (1) +5 -1
Говорите ему не как надо, а почему надо по-другому: приводите реальные практические доводы и примеры того, к чему может привести бездумный код.
Re[10]: Как объяснить программеру, что он пишет говнокод?
От: Vzhyk  
Дата: 12.10.09 16:01
Оценка: +6 -1
SE пишет:
>
> В общем не только и не столько уровень IQ определяет успешность.
Зато сколько народу разводится на эту глупость.

> Не

> даром говорят: "Если ты такой умный, то почему не такой богатый".
Вульгарный вариант Еккл. 9:11("И обратился я, и видел под солнцем, что
не проворным достается успешный бег, не храбрым — победа, не мудрым —
хлеб, и не у разумных — богатство, и не искусным — благорасположение, но
время и случай для всех их")
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: MachoMuchacho  
Дата: 15.12.09 07:21
Оценка: :))) :))) :)
Здравствуйте, AC1D, Вы писали:

ACD>Попробуйте парное программирование


да, точно
подсадите к нему шикарную девушку в миниюбке, которая время от времени будет томно вздыхать и говорить "секс только результатам code review"
Re: Как объяснить программеру, что он пишет говнокод?
От: MachoMuchacho  
Дата: 24.09.09 14:29
Оценка: 4 (4) +1 -1
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


1. выяснить кто является для него авторитетом в плане написания кода
2. показать ему код, написанный общепризнанными мировыми авторитетами — какие-нибудь сверхпопулярные библиотеки и т.п.
3. ввести стандарты написания код единые для всей организации (документ занимает 30 страниц или около того, максимум — во всех хороших конторах, где я работал, он был) — и, собрав ВСЕХ ВСЕХ, сказать, что мы все будем писать так и никак иначе, чтобы не было выговором отдельным личностям
4. вводить код ревью, когда и этот человек у других проверяет код, и другие у него — чтобы интеграция шла не по принципу начальник-подчиненнный, а на командном уровне
Re: Как объяснить программеру, что он пишет говнокод?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.09.09 10:53
Оценка: 1 (1) +3 -2
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


Подойти и сказать: "Братан, твой код — говно".

А вот чтобы исправить ситуцию, то стоит сделать следующее
0)Настроить систему автосборки, bug\issue-трекер интегрированный с сорсконтролом и системой сборки
1)Настроить утилиты статического анализа кода и интегрировать их в билд-систему, чтобы при нарушении coding-style сборка ломалась, заставить индивида исправить все ошибки
2)Заставить писать тесты на код, посмотреть на покрытие кода тестами для этого индивида, показать ему самому
3)Провести пару раз ревью его кода, чтобы группа опытных программистов рассказала про все ошибки
4)Подкинуть ему несколько умных книжек\статей
Re: Как объяснить программеру, что он пишет говнокод?
От: anglichanin  
Дата: 25.09.09 05:30
Оценка: 30 (1) +4
Практически любой программист с некоторой завистью смотрит на код написанный лучше его. А по поводу аргументирования недостатков кода читай Макконнелла.
Re[7]: Как объяснить программеру, что он пишет говнокод?
От: Gaperton http://gaperton.livejournal.com
Дата: 02.11.09 14:56
Оценка: 17 (4) +1
Здравствуйте, Vzhyk, Вы писали:

V>Вот что интересно, сколько времени в таком состоянии может находиться

V>обычная русская програмерская контора?
V>Французская прожила 2 года (до этого 10 лет жила, а потом "детские
V>болезни", прямо по Ленину), после объявила себя банкротом.

При условии наличия продукта, который уже продается — может находиться довольно долго. Как
это ни странно. Меня это одно время сильно занимало, и я пытался изучить вопрос.

Все, что в таком случае происходит — "кодеры" своими правками постоянно увеличивают "хрупкость кода" — то есть, стоимость последующих правок. Действительно критично это только для тех мест кода, который одновременно:
1) Критичен для работы всей системы, или важнейших функций.
2) Будет часто правиться в будущем.

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

Данные симптомы малозаметны на глаз. Потому, что ситуация меняется к худшему достаточно медленно. Скорость изменения зависит от размера базы кода (больше — медленее), и количества разработчиков (меньше — медленнее). Когда наступает момент, что все решают "все переписать" (обычно это звучит — "надо разработать новую версию"), часто бывает на самом деле уже поздно. В результате данного "переписывания" шансы накрыться медным тазом повышаются, и это может приблизить конец.

Ну, короче, как-то так.
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: nvb Россия  
Дата: 25.09.09 09:56
Оценка: 10 (1) +4
Здравствуйте, Andrey.dm, Вы писали:

SE>>>>А имеет смысл тратить силы и время и переучивать? Умный человек воспринимает свою работу всегда со здравым критицизмом.


AD>>>Да, если при этом прокачиваешь и свои скилы, лидерские, например, и т.п.


B>>Т.е. этот программер нужен для самоутверждения?

B>>Ну тогда его реакция объяснима.
B>>Возможно проблема не только в том, что он неадекватно(?) реагирует на критику,
B>>но и в том, что ты прокачиваешь свои лидерские скилы.
B>>Ему похоже просто не повезло...

AD>Хмм... А может быть именно самоутвердиться ему и нужно...

AD>Я как раз таки себя адекватно оцениваю, по этому и обучаюсь и не вижу в этом ничего плохого...

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

Не надо тратить на него время и силы, вы не в Армии спасения работаете. Вот если бы он в проекте хотя бы полгода пробыл, а вы пришли на это проект извне со своим уставом — тогда дело совсем другое. Тогда он обладает ценными для проекта и организации знаниями, тогда стоит потратить время и усилия на притирку друг к другу. Но в вашей ситуации — вы при его увольнении ничего, кроме головной боли, не потеряете. Оговорите только с отделом кадров парашют — скажем, двух-трехнедельный оклад, поскольку вина организации в его приеме есть и организация должна нести за это ответственность.

Если стесняетесь прямо подойти и сказать, что вы хотите с ним расстаться — сделайте непрямо. Скажем, берете код, пишете замечания и возвращаете на доработку. Никакого личного общения, только комменты по коду, можно ссылки на учебники присовокупить. На десятой итерации даже до самого упертого дойдет, что либо ему пора уходить, либо меняться.
Re: Как объяснить программеру, что он пишет говнокод?
От: SE Украина  
Дата: 24.09.09 18:36
Оценка: +5
Здравствуйте, Andrey.dm, Вы писали:

AD>хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


А имеет смысл тратить силы и время и переучивать? Умный человек воспринимает свою работу всегда со здравым критицизмом.

На то, чтобы стать профессионалом могут уйти годы, а юношеский максимализм может не пройти вообще.
Re: Как объяснить программеру, что он пишет говнокод?
От: Lloyd Россия  
Дата: 25.09.09 11:01
Оценка: +4 -1
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


Для начала было бы неплохо определить, что вы считаете "говнокодом", а там уже посмотрим.
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: Vzhyk  
Дата: 26.10.09 12:58
Оценка: +5
Firstborn пишет:
>
> V>Представил: 5 классов в день, 25 в неделю, 100 в месяц, 1200 в год.
> V>Комментировать не буду.
> Да ну, гражданин, вы зря цепляетесь к цифрам, они же взяты сугубо с
> потолка, исключительно для наглядной иллюстрации.
Вот я и представил, эту наглядную иллюстрацию.
А вообще, чем бы вы не меряли, сотрудники всегда найдут способ
обеспечить правильный размер, да еще на вашей глупостью смеяться будут.
Posted via RSDN NNTP Server 2.1 beta
Как объяснить программеру, что он пишет говнокод?
От: Andrey.dm  
Дата: 24.09.09 14:20
Оценка: -2 :))
Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: metaprogrammer  
Дата: 09.10.09 18:17
Оценка: +3 -1
Здравствуйте, MachoMuchacho, Вы писали:

MM>* развитой интеллект — проверяется тестом на IQ


Простите, но интеллект тестом на IQ не проверяется. Вас обманули.
Re[8]: Как объяснить программеру, что он пишет говнокод?
От: SE Украина  
Дата: 12.10.09 08:53
Оценка: +3 -1
Здравствуйте, MachoMuchacho, Вы писали:

U>>Тест на IQ проверяет способность человека решать простые/лаконичные задачи за очень ограниченное время (порядка минуты). В инженерной, и в частности в программистской деятельности, таких задач практически нет, там нужно решать сложные/объемные задачи за часы/дни/недели. Соответственно тест на IQ ничего о способностях человека к программированию не говорит.


MM>мммммммм...

MM>пример из жизни
MM>в институтской группе было около 20 человек
MM>на занятии по психологии на втором курсе IQ измеряли у всех, причем результаты оглашали, поскольку это было что-то вроде "игры"
MM>из этих 20 реально программистами работают (или активно работали некоторое время после окончания вуза) около 5
MM>3 — это те, у кого IQ был выше среднего
MM>1 парень со средним IQ и с артистической жилкой
MM>1 парень со средним IQ и с личной и семейной активной технической направленностью
MM>остальные ушли кто-куда

Вероятно имелось в виду, что уровень интеллекта и результат IQ-теста хотя в некоторой степени и коррелируют, но тесты не являются сколько нибудь точным показателем.
Дело в том, что человек, который не приучен и не готов решать задачки подобные к тем, что в IQ-теста врядли заинтересуется программированием вообще, но почему бы ему не быть выдающимся историком.
И наоборот, у программиста, особенно если он прилагает к тому усилия, мозг "затачивается" для решения таких задачек. При этом во всем остальном и особенно в решении жизненных вопросов, такой программист может оказаться дуб-дубом, а может и не оказаться
Re: Как объяснить программеру, что он пишет говнокод?
От: Firstborn Латвия  
Дата: 17.10.09 18:53
Оценка: -1 :)))
Здравствуйте, Andrey.dm, Вы писали:

AD>как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


Переучивать — не ваша задача, раз всё равно увольняете.

Объяснить — только через формальные метрики. Конкретные инструменты зависят от технологий, но, скажем, для джавы это выглядело бы примерно так:


Как-то в таком вот аспекте. С цифрами спорить невозможно, заодно и очень чёткое обоснование для увольнения подготовите (хотя оно вроде и не нужно на испытательном сроке). Ну и лишний способ убедиться, что субъект — и правда говнокодер; ведь если вдруг окажется, что его результаты подозрительно похожи на средние по команде — есть смысл задуматься, а не личная ли это неприязнь просто
Re: Как объяснить программеру, что он пишет говнокод?
От: Blondy  
Дата: 28.09.09 09:52
Оценка: 3 (1) +1 :)
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...

Открывайте скорее вакансию снова. Заморачиваясь какой-то там деликатностью, Вы сдерживаете движение софтверной индустрии в правильном направлении.
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: MachoMuchacho  
Дата: 10.10.09 00:34
Оценка: +1 -2
Здравствуйте, metaprogrammer, Вы писали:

M>Здравствуйте, MachoMuchacho, Вы писали:


MM>>* развитой интеллект — проверяется тестом на IQ


M> Простите, но интеллект тестом на IQ не проверяется. Вас обманули.


http://en.wikipedia.org/wiki/IQ
Re[8]: Как объяснить программеру, что он пишет говнокод?
От: VGn Россия http://vassilsanych.livejournal.com
Дата: 12.10.09 13:31
Оценка: -1 :))
MM>остальные ушли кто-куда

Наверное туда, где денег больше.
Казалось бы, при чём здесь IQ?
... << RSDN@Home 1.2.0 alpha 4 rev. 1233>>
Re: Как объяснить программеру, что он пишет говнокод?
От: Аноним  
Дата: 09.12.09 13:55
Оценка: -2 :)
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


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

А вот если код содержит кучу багов, устранение которых требует привлечение дополнительных ресурсов, то тут все элементарно. Введите официальные метрики. Если Вася Пупкин делает 1 буг на 100 строк, а Федя Форточкин — 50 бугов, то Форточкин пишет ничто иное, как говнокод. Против метрик не попрешь.
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: dilmah США  
Дата: 14.12.09 12:11
Оценка: -2 :)
П>Еще зависит от того, какие задачи они выполняют. Если у Васи 1 баг, а у Феди 5, то вполне может быть, что Вася лох, а Федя крутой, просто Федя решал гораздо более сложную задачу.

можно сказать и что Федя лох, потому что выбрал сложную задачу.
Взялся за гуж, не говори что не дюж
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: Аноним  
Дата: 09.12.09 16:27
Оценка: 1 (1) +1
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Andrey.dm, Вы писали:


А>Всю ветку не стал читать. Сорри если вдруг уже обсуждалось:

А>А код-то, который он пишет, работает или нет? Если работает с некртической плотностью багов, то я не понимаю, зачем Вам, как руководителю проекта (форум ведь о руководстве, а не о правилах кодирования), что-то менять?

А>А вот если код содержит кучу багов, устранение которых требует привлечение дополнительных ресурсов, то тут все элементарно. Введите официальные метрики. Если Вася Пупкин делает 1 буг на 100 строк, а Федя Форточкин — 50 бугов, то Форточкин пишет ничто иное, как говнокод. Против метрик не попрешь.


Одна беда, посчитать эту мерику не получится. Как узнать сколько багов содержится в коде? Или предлагается мерять количество найденных ошибок, а не реально существующих? A вдруг Пупкин написал то, что клиентам нафиг не надо, вот никто ошибок и не нашёл? Ну пусть даже посчитали число всех ошибок, что если они вызваны не "говнокодом" Форточкина, а кривой архитектурой Пупкина? Ни к чему хорошему оценка работы через формальные метрики не приведёт.
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: Ziaw Россия  
Дата: 25.09.09 11:00
Оценка: +1 -1
Здравствуйте, gandjustas, Вы писали:

Вобщем все верно, но:

G>1)Настроить утилиты статического анализа кода и интегрировать их в билд-систему, чтобы при нарушении coding-style сборка ломалась, заставить индивида исправить все ошибки

Перед этим придется проделать нехилую работу по настройке и причеусыванию текущего кода.
G>2)Заставить писать тесты на код, посмотреть на покрытие кода тестами для этого индивида, показать ему самому
Перед этим придется добиться идеального покрытия.
G>3)Провести пару раз ревью его кода, чтобы группа опытных программистов рассказала про все ошибки
Как раз с этим и проблемы у топикстартера, не могут они нормально объяснить почему этот код является говнокодом.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: Тролль-323  
Дата: 27.09.09 17:22
Оценка: +1 -1
Совершенно не могу себе представить авторитетов в области «неговнокода».

По-моему, здесь до такой степени на вкус и цвет товарищей нет…

Я, например, многие (да почти все) известные программы и библиотеки мог бы назвать «говнокодом», но не буду называть, потому что так поверхностно называемый «стиль» на самом деле не настолько влияет на причины, по которым эти программы и библиотеки считаются авторитетными.

Да тот же Буст, например, при поверхностном взгляде иначе как говнокодом не назовешь, однако же при этом я прекрасно понимаю, что стиль, в котором он написан, не является таким уж важным параметром, учитывая все остальные его достоинства, что написан этот код весьма квалифицированным людьми, он очень продуман и выверен, и я сам вряд ли бы лучше написал, чем там написано. И так можно сказать почти про все известные программы и библиотеки.
Re[7]: Как объяснить программеру, что он пишет говнокод?
От: VGn Россия http://vassilsanych.livejournal.com
Дата: 12.10.09 13:31
Оценка: -1 :)
U>Тест на IQ проверяет способность человека решать простые/лаконичные задачи за очень ограниченное время

Кстати по специальностям самый высокий IQ у боксёров
... << RSDN@Home 1.2.0 alpha 4 rev. 1233>>
Re: Как объяснить программеру, что он пишет говнокод?
От: Олег К.  
Дата: 12.10.09 23:46
Оценка: +2
AD>Деликатно, естественно...
Сколько лет товарищу? Какой опыт в ИТ? На чем пишет?

Если это не вчерашний студент, что скорее всего и есть, его уже не изменить. Только нервы будешь себе портить да будешь знать что на него нельзя положиться. Ни по временным рамкам ни по качеству кода. Мало того что он плохой код пишет, так там скорее всего есть и трудноуловимые баги которые могут не сразу проявляться. И в рантайме код, скорее всего, неэффективный.

Я тоже писал о таком какое-то время назад в "О работе." Начальство, с дуру, наняло а теперь ничего поделать не можем. Баг на баге и ничего ему не скажешь. Сразу крик. Можно еще продолжить но не хочется расстраиваться.

В общем, если ты начальник, то увольняй его без промедлений и не чувствуй угрызений совести. Дружба дружбой а служба службой. Он тебе не друг. Сделаешь пользу и себе и тем кому пришлось бы с ним работать.
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: minorlogic Украина  
Дата: 21.11.09 08:31
Оценка: -2
Здравствуйте, Other Sam, Вы писали:

>> Здравствуйте, MozgC, Вы писали:

>>
>> MC>Говорите ему не как надо, а почему надо по-другому: приводите реальные практические доводы и примеры того, к чему может привести бездумный код.
>> К сожалению, есть индивиды, которые даже аргументы твои опровергнут и опровергнут так тупо, что ты ничего не сможешь возразить.

OS>А до него доходит мысль, что для исходника важнее как его прочтут другие

OS>программисты, а не то, как он будет выполняться?

Интересная мысль , ставить читабельность выше функционала.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: vmpire Россия  
Дата: 22.11.09 09:00
Оценка: +2
Здравствуйте, minorlogic, Вы писали:

>>> MC>Говорите ему не как надо, а почему надо по-другому: приводите реальные практические доводы и примеры того, к чему может привести бездумный код.

>>> К сожалению, есть индивиды, которые даже аргументы твои опровергнут и опровергнут так тупо, что ты ничего не сможешь возразить.

OS>>А до него доходит мысль, что для исходника важнее как его прочтут другие

OS>>программисты, а не то, как он будет выполняться?

M>Интересная мысль , ставить читабельность выше функционала.


Вы-таки будете смеяться, но реально бывают случаи, когда неработающий исходник, который легко понять и быстро исправить, имеет большую ценность, чем кусок кода, который хорошо работает, но при любой модификации куча времени уходит, чтобы его понять и догадаться, как всё это поменять, чтобы ничего не развалилось.
Кстати, в своё время в минобороны США был разработан целый язык программирования (Ада), основной целью проектирования которого ставилась читаемость программ, даже несмотря на повышенные трудозатраты при написании этих программ. До сих пор применяется в авиации для программирования критичных к надёжности вещей.
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: Фанатик Ад http://vk.com/id10256428
Дата: 01.04.10 21:59
Оценка: -2
>* желание и умение учиться
>(проверяется по школьным и вузовским данным — необходимо наличие одного из следующих пунктов — золотая/серебряная медаль, математическая спецшкола, красный диплом)


Практика опровергает такой способ проверки.
За примерами далеко ходить не надо, пример:

Я сейчас пишу софтину для дипломной работы знакомой девчонке, которая заканчивает ФИБ
по с пециальности «Комплексная защита объектов информатизации».
Не знает ни одного ЯП, не понимает что есть ОС и как она работает и т.д и т.п.
Моя девушка ей пишет экономическую часть, а ещё один комрад математику для этой дипломной работы.
Как специалист она ноль без палочки.

Вот таких специалистов пруд пруди, и именно из-за их существования появилась практика проводить собеседования при приёме на работу.
Хорошие оценки в ВУЗе сейчас показывают умение сдавать и договариваться, а не знания и не тягу к знаниям.
Всё сказанное выше — личное мнение, если не указано обратное.
вуз
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: Олег К.  
Дата: 13.10.09 00:27
Оценка: 6 (1)
L>Для начала было бы неплохо определить, что вы считаете "говнокодом", а там уже посмотрим.
Имхо ты не имел дела с "програмистами" которых гнать надо в три шеи, как бы субъективно это не звучало.
Re[7]: Как объяснить программеру, что он пишет говнокод?
От: MachoMuchacho  
Дата: 12.10.09 07:06
Оценка: 3 (1)
Здравствуйте, Undying, Вы писали:

U>Здравствуйте, MachoMuchacho, Вы писали:


M>>> Простите, но интеллект тестом на IQ не проверяется. Вас обманули.

MM>>http://en.wikipedia.org/wiki/IQ

U>Тест на IQ проверяет способность человека решать простые/лаконичные задачи за очень ограниченное время (порядка минуты). В инженерной, и в частности в программистской деятельности, таких задач практически нет, там нужно решать сложные/объемные задачи за часы/дни/недели. Соответственно тест на IQ ничего о способностях человека к программированию не говорит.


мммммммм...
пример из жизни
в институтской группе было около 20 человек
на занятии по психологии на втором курсе IQ измеряли у всех, причем результаты оглашали, поскольку это было что-то вроде "игры"
из этих 20 реально программистами работают (или активно работали некоторое время после окончания вуза) около 5
3 — это те, у кого IQ был выше среднего
1 парень со средним IQ и с артистической жилкой
1 парень со средним IQ и с личной и семейной активной технической направленностью
остальные ушли кто-куда
Re[9]: Как объяснить программеру, что он пишет говнокод?
От: MachoMuchacho  
Дата: 12.10.09 09:24
Оценка: 3 (1)
Здравствуйте, SE, Вы писали:

SE>Здравствуйте, MachoMuchacho, Вы писали:


U>>>Тест на IQ проверяет способность человека решать простые/лаконичные задачи за очень ограниченное время (порядка минуты). В инженерной, и в частности в программистской деятельности, таких задач практически нет, там нужно решать сложные/объемные задачи за часы/дни/недели. Соответственно тест на IQ ничего о способностях человека к программированию не говорит.


MM>>мммммммм...

MM>>пример из жизни

SE>Вероятно имелось в виду, что уровень интеллекта и результат IQ-теста хотя в некоторой степени и коррелируют, но тесты не являются сколько нибудь точным показателем.


в общем да
мое мнение именно таково, что коррелируют
с точностью от 50% до 100%
не думаю, что таким тестом можно абсолютно точно отфильтровать подходящих/неподходящих людей
но это лишь мое ненаучное мнение, основанное на житейском опыте
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: Andrey.dm  
Дата: 24.09.09 19:56
Оценка: 2 (1)
Здравствуйте, SE, Вы писали:

SE>Здравствуйте, Andrey.dm, Вы писали:


AD>>хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


SE>А имеет смысл тратить силы и время и переучивать? Умный человек воспринимает свою работу всегда со здравым критицизмом.


Да, если при этом прокачиваешь и свои скилы, лидерские, например, и т.п.

Всем спасибо, буду продолжать учить, но немного изменю тактику...
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: SE Украина  
Дата: 25.09.09 11:29
Оценка: 1 (1)
Здравствуйте, gandjustas, Вы писали:

G>Статистика — это зло. В данном случае любое зло можно повернуть в свою сторону.

G>Вносит много багов — показывать статистику по бага, реализует мало фич — показывать статистику по фичам. Если много и того и другого, то надо говорить что ему надо писать тесты на код

Был у меня такой начальник. Был публично уличен во лжи. Кроме всего прочего и в злоупотреблении статистикой с целью отказа от своих обязательств.
А я, как результат, был уволен. Чему, как ни странно, очень рад до сих пор
Re: Как объяснить программеру, что он пишет говнокод?
От: bkat  
Дата: 24.09.09 14:33
Оценка: -1
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


Устраиваей code review, на котором смотрите код не только этого программера, а всех, кто пишет работает.
Если обсудение будет по делу и конструктивно, то и проблем будет меньше.
Если есть Coding Guideline, то пользуйтесь им для проверки кода.
Это облегчит проверку формальных вещей.
Если Coding Guideline нету, то лучше его заиметь, а иначе вам обеспечены
нудные и бесполезные споры на тему "tab vs spaces" и подобные вещи...

Если вы еще приучитесь сначала обсуждать идеи на бумаге,
прежде чем кодировать, то будет еще лучше.
Многие косяки можно будет предотвратить до того, как уже будет код.
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: bkat  
Дата: 25.09.09 05:31
Оценка: +1
Здравствуйте, Andrey.dm, Вы писали:

SE>>А имеет смысл тратить силы и время и переучивать? Умный человек воспринимает свою работу всегда со здравым критицизмом.


AD>Да, если при этом прокачиваешь и свои скилы, лидерские, например, и т.п.


Т.е. этот программер нужен для самоутверждения?
Ну тогда его реакция объяснима.
Возможно проблема не только в том, что он неадекватно(?) реагирует на критику,
но и в том, что ты прокачиваешь свои лидерские скилы.
Ему похоже просто не повезло...
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: mike_rs Россия  
Дата: 25.09.09 07:45
Оценка: +1
MM>>* желание и умение учиться
MM>>(проверяется по школьным и вузовским данным — необходимо наличие одного из следующих пунктов — золотая/серебряная медаль, математическая спецшкола, красный диплом)

X>вот и неправда )

X>обычно красные дипломы имеют зубрилы, соображать не обученные (например девки с первых рядов парт пишушие лекции разноцветными ручками)

тебя обидели девки с первых парт ? Забрали твой красный диплом, пока ты пил пиво во дворе универа ?
ps: цвет лекций к цвету диплома не имеет абсолютно никакого отношения в нормальных вузах.
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.09.09 11:13
Оценка: +1
Здравствуйте, Ziaw, Вы писали:

Z>Здравствуйте, gandjustas, Вы писали:


Z>Вобщем все верно, но:


G>>1)Настроить утилиты статического анализа кода и интегрировать их в билд-систему, чтобы при нарушении coding-style сборка ломалась, заставить индивида исправить все ошибки

Z>Перед этим придется проделать нехилую работу по настройке и причеусыванию текущего кода.
Ну тогда нельзя однозначно говорить о том что человек пишет плохой код.
Возможно они пишет код, который непривычно видеть окружающим.

G>>2)Заставить писать тесты на код, посмотреть на покрытие кода тестами для этого индивида, показать ему самому

Z>Перед этим придется добиться идеального покрытия.
Не понял, зачем?

G>>3)Провести пару раз ревью его кода, чтобы группа опытных программистов рассказала про все ошибки

Z>Как раз с этим и проблемы у топикстартера, не могут они нормально объяснить почему этот код является говнокодом.
Не если не могут объяснить, то вообще не факт что код чем-то плох.
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.09.09 11:15
Оценка: -1
Здравствуйте, SE, Вы писали:

SE>Здравствуйте, gandjustas, Вы писали:


G>>5)собрать статистику по закрытым фичам и внесенным багам в единицу времени, показать ему что они очень медленно работает.


SE>Ну по закрытым фичам это понятно. А по внесенным багам как? Если программер медленно работает, то у него и багов может быть меньше чем у остальных на единицу времени. Просто потому, что он медленно работает


Статистика — это зло. В данном случае любое зло можно повернуть в свою сторону.
Вносит много багов — показывать статистику по бага, реализует мало фич — показывать статистику по фичам. Если много и того и другого, то надо говорить что ему надо писать тесты на код
Re: Как объяснить программеру, что он пишет говнокод?
От: Lead Lead  
Дата: 09.10.09 13:50
Оценка: -1
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


Лучше всего провести с ним code review.
Как я предлагаю это делать, написал здесь: http://rsdn.ru/forum/management/3563432.1.aspx
Автор: Lead Lead
Дата: 09.10.09


Или можете устроить обучающую сессию (если время позволяет) и использовать его код как "bad practices".
Жестоковато может выйти, но это лучше, чем разгребать ошибки в самый неподходящий момент.
--
Записки ленивого тимлида
http://lean-lead.blogspot.com/
Re[6]: Как объяснить программеру, что он пишет говнокод?
От: Undying Россия  
Дата: 12.10.09 05:02
Оценка: -1
Здравствуйте, MachoMuchacho, Вы писали:

M>> Простите, но интеллект тестом на IQ не проверяется. Вас обманули.

MM>http://en.wikipedia.org/wiki/IQ

Тест на IQ проверяет способность человека решать простые/лаконичные задачи за очень ограниченное время (порядка минуты). В инженерной, и в частности в программистской деятельности, таких задач практически нет, там нужно решать сложные/объемные задачи за часы/дни/недели. Соответственно тест на IQ ничего о способностях человека к программированию не говорит.
Re[9]: Как объяснить программеру, что он пишет говнокод?
От: SE Украина  
Дата: 12.10.09 15:49
Оценка: +1
Здравствуйте, VGn, Вы писали:

MM>>остальные ушли кто-куда


VGn>Наверное туда, где денег больше.

VGn>Казалось бы, при чём здесь IQ?

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

Вот только стартовый капиталл они все-же от родителей получили А на факультете нашем учились для галочки и чтоб от армии откосить.

И даже среди программистов, которые хорошо "поднялись", и теперь руководят программистами, большинство получило хороший такой "пинок в жизнь".

В общем не только и не столько уровень IQ определяет успешность. Не даром говорят: "Если ты такой умный, то почему не такой богатый".

Впрочем, минимальный уровень IQ все же необходим
Re[11]: Как объяснить программеру, что он пишет говнокод?
От: MachoMuchacho  
Дата: 12.10.09 16:07
Оценка: :)
Здравствуйте, Vzhyk, Вы писали:

V>SE пишет:

>>
>> В общем не только и не столько уровень IQ определяет успешность.
V>Зато сколько народу разводится на эту глупость.

>> Не

>> даром говорят: "Если ты такой умный, то почему не такой богатый".
V>Вульгарный вариант Еккл. 9:11("И обратился я, и видел под солнцем, что
V>не проворным достается успешный бег, не храбрым — победа, не мудрым —
V>хлеб, и не у разумных — богатство, и не искусным — благорасположение, но
V>время и случай для всех их")

Аминь.
Re[8]: Как объяснить программеру, что он пишет говнокод?
От: metaprogrammer  
Дата: 12.10.09 16:32
Оценка: -1
Здравствуйте, MachoMuchacho, Вы писали:

U>>Тест на IQ проверяет способность человека решать простые/лаконичные задачи за очень ограниченное время (порядка минуты). В инженерной, и в частности в программистской деятельности, таких задач практически нет, там нужно решать сложные/объемные задачи за часы/дни/недели. Соответственно тест на IQ ничего о способностях человека к программированию не говорит.


MM>мммммммм...

MM>пример из жизни

Занятное начало. В науке ценность anecdotical evidence практически нулевая.

MM>в институтской группе было около 20 человек


О да, прекрасная статистика!

Только вот на куда как больших масштабах никакой особой корреляции между IQ и степенью успешности в высокоинтеллектуальных профессиях не наблюдается.

Да и профанация этот IQ — даже дурака можно научить эти типовые задачки решать. Какой либо смысл был бы только у самого первого измерения, когда испытуемый не знает, что от него ждут. Да и то — во всех этих "найдите шаблон в последовательности" часто есть более одного ответа, а "правильный" только один, и кто не знает заранее, как мыслят авторы теста, тот правильно и не ответит.
Re[10]: Как объяснить программеру, что он пишет говнокод?
От: metaprogrammer  
Дата: 12.10.09 16:35
Оценка: +1
Здравствуйте, MachoMuchacho, Вы писали:

MM>в общем да

MM>мое мнение именно таково, что коррелируют

Ваше мнение противоречит наблюдаемым фактам, увы.

MM>не думаю, что таким тестом можно абсолютно точно отфильтровать подходящих/неподходящих людей


Им можно отфильтровать случайных людей. Тоже метод: половину резюме не глядя в корзину, со словами "мне неудачники не нужны". Тот же эффект.

MM>но это лишь мое ненаучное мнение, основанное на житейском опыте


Плохой, негодный опыт.
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: Олег К.  
Дата: 13.10.09 00:13
Оценка: :)
A>Практически любой программист с некоторой завистью смотрит на код написанный лучше его. А по поводу аргументирования недостатков кода читай Макконнелла.
Можешь кратко пересказать что говорит Макконелл по этому поводу?
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: Lloyd Россия  
Дата: 13.10.09 17:49
Оценка: +1
Здравствуйте, Олег К., Вы писали:

L>>Для начала было бы неплохо определить, что вы считаете "говнокодом", а там уже посмотрим.

ОК>Имхо ты не имел дела с "програмистами" которых гнать надо в три шеи, как бы субъективно это не звучало.

Увы, имел. Но том не менее понимал, что именно в них не так. Из поста же топикстартера это неясно.
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: MachoMuchacho  
Дата: 17.10.09 14:30
Оценка: :)
Здравствуйте, BulatZiganshin, Вы писали:

BZ>Здравствуйте, MachoMuchacho, Вы писали:


AJD>>>А какие признаки хорошего программера?


MM>>* желание и умение учиться

MM>>(проверяется по школьным и вузовским данным — необходимо наличие одного из следующих пунктов — золотая/серебряная медаль, математическая спецшкола, красный диплом)

BZ>из нашего маткласса матшколы вышли: бандит, мент, охранник, боксёр, наркоторговка


вы из набережных челнов вроде
так что это скорее показатель города
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: Vzhyk  
Дата: 19.10.09 14:37
Оценка: :)
Firstborn пишет:
>
> * Производительность — мерять LOCами глупо, но вот классами,
> наверное можно. Например в среднем по команде 5 классов в день, а
> у говнокодера — 2. Показываем ему две цифры.
Представил: 5 классов в день, 25 в неделю, 100 в месяц, 1200 в год.
Комментировать не буду.

>

> ведь если вдруг окажется, что его результаты
> подозрительно похожи на средние по команде — есть смысл задуматься, а не
> личная ли это неприязнь просто
Что в обном, что в другом случае лучше уволить, для обеих сторон.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: Аноним  
Дата: 19.11.09 21:47
Оценка: +1
Здравствуйте, MozgC, Вы писали:

MC>Говорите ему не как надо, а почему надо по-другому: приводите реальные практические доводы и примеры того, к чему может привести бездумный код.

К сожалению, есть индивиды, которые даже аргументы твои опровергнут и опровергнут так тупо, что ты ничего не сможешь возразить.
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: Vzhyk  
Дата: 20.11.09 19:38
Оценка: +1
Other Sam пишет:
>
>> К сожалению, есть индивиды, которые даже аргументы твои опровергнут и
> опровергнут так тупо, что ты ничего не сможешь возразить.
>
> А до него доходит мысль, что для исходника важнее как его прочтут другие
> программисты, а не то, как он будет выполняться?
Есть такие, что не доходит.
Posted via RSDN NNTP Server 2.1 beta
Re[10]: Как объяснить программеру, что он пишет говнокод?
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 09.12.09 14:07
Оценка: -1
Здравствуйте, MachoMuchacho, Вы писали:

MM>мое мнение именно таково, что коррелируют

MM>с точностью от 50% до 100%

Сейчас тесты IQ мало используются при приеме на работу, поэтому хорошая корреляция. Беда в том, что поднатаскаться на решение IQ тестов не особо сложно, и тогда корреляция ухудшится. Например, неделя практики в подобных тестах может дать +30 IQ. Правда ли, что человек за это время так поумнел???
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: Панда Россия  
Дата: 13.12.09 19:25
Оценка: +1
Здравствуйте, Аноним, Вы писали:
А>>А вот если код содержит кучу багов, устранение которых требует привлечение дополнительных ресурсов, то тут все элементарно. Введите официальные метрики. Если Вася Пупкин делает 1 буг на 100 строк, а Федя Форточкин — 50 бугов, то Форточкин пишет ничто иное, как говнокод. Против метрик не попрешь.

А>Одна беда, посчитать эту мерику не получится. Как узнать сколько багов содержится в коде? Или предлагается мерять количество найденных ошибок, а не реально существующих? A вдруг Пупкин написал то, что клиентам нафиг не надо, вот никто ошибок и не нашёл? Ну пусть даже посчитали число всех ошибок, что если они вызваны не "говнокодом" Форточкина, а кривой архитектурой Пупкина? Ни к чему хорошему оценка работы через формальные метрики не приведёт.


Еще зависит от того, какие задачи они выполняют. Если у Васи 1 баг, а у Феди 5, то вполне может быть, что Вася лох, а Федя крутой, просто Федя решал гораздо более сложную задачу.
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 14.12.09 14:06
Оценка: +1
Здравствуйте, MozgC, Вы писали:

MC>Говорите ему не как надо, а почему надо по-другому: приводите реальные практические доводы и примеры того, к чему может привести бездумный код.


Одному надо сказать, как надо. Другому — почему надо по другому. Третьему — почему так не надо. Четвертому — рассказать, что про его код думают другие. Пятому просто сообщить, что де это говнокод и тд. и тд.
Re: Как объяснить программеру, что он пишет говнокод?
От: mukhomor  
Дата: 04.02.10 09:21
Оценка: -1
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...



Очень точное описание среднестатистического программиста.
На курсах актерского мастерства учат, что надо делать хорошую мину даже при плохой игре. У программистов то же самое. Видимо, синдром Бога появляется в 5 классе, когда на Паскале впервые написан "Hello World!". Тут уж ничего не поделать.
Re[6]: Как объяснить программеру, что он пишет говнокод?
От: Gaperton http://gaperton.livejournal.com
Дата: 04.02.10 18:00
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:

>>> Хорошим тулом можно столько классов насоздавать, не передать словами.

V>>А что есть разница в варианте выше, чем эти классы плодить, тулом или на
V>>клавиатуре набивать?

I>Конечно, цыфра будет разная


Да лана. Хороший тул — ничто, по сравнению с производительностью старого поверенного метода повторного использования кода — копипаста. А если специальный скрипт повторного использования кода для какого-нибудь sed-а написать... Так ваще.
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: Фанатик Ад http://vk.com/id10256428
Дата: 02.04.10 01:38
Оценка: :)
Здравствуйте, Фанатик, Вы писали:

>>* желание и умение учиться

>>(проверяется по школьным и вузовским данным — необходимо наличие одного из следующих пунктов — золотая/серебряная медаль, математическая спецшкола, красный диплом)


Ф>Практика опровергает такой способ проверки.

Ф>За примерами далеко ходить не надо, пример:

Ф>Я сейчас пишу софтину для дипломной работы знакомой девчонке, которая заканчивает ФИБ

Ф>по с пециальности «Комплексная защита объектов информатизации».
Ф>Не знает ни одного ЯП, не понимает что есть ОС и как она работает и т.д и т.п.
Ф>Моя девушка ей пишет экономическую часть, а ещё один комрад математику для этой дипломной работы.
Ф>Как специалист она ноль без палочки.

Ф>Вот таких специалистов пруд пруди, и именно из-за их существования появилась практика проводить собеседования при приёме на работу.

Ф>Хорошие оценки в ВУЗе сейчас показывают умение сдавать и договариваться, а не знания и не тягу к знаниям.

Забыл упомянуть: она заканчивает с красным дипломом.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: AndrewJD США  
Дата: 24.09.09 15:21
Оценка:
Здравствуйте, MachoMuchacho, Вы писали:

MM>кстати, то что программер пишет говнокод и у него большое самомнение не есть признаки плохого программера


А какие признаки хорошего программера?
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re: Как объяснить программеру, что он пишет говнокод?
От: Аноним  
Дата: 24.09.09 16:17
Оценка:
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


А вот если к тебе приедет Абрамович и будет долго и упорно досаждать что жизнь твоя говно по сравнению с его , ты на это также однозначно будешь смотреть ?
Re: Как объяснить программеру, что он пишет говнокод?
От: AbramKotkin  
Дата: 24.09.09 16:35
Оценка:
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...



Переучивать нужно себя, или на кой кого-то еще перучивать? Откуда такое желание?

Если лично вы его не можете уволить, сообщите начальству своё недовольство.
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: Pepel Беларусь  
Дата: 25.09.09 05:47
Оценка:
Здравствуйте, MachoMuchacho, Вы писали:

MM>Здравствуйте, AndrewJD, Вы писали:


AJD>>Здравствуйте, MachoMuchacho, Вы писали:


MM>>>кстати, то что программер пишет говнокод и у него большое самомнение не есть признаки плохого программера


AJD>>А какие признаки хорошего программера?


MM>* желание и умение учиться

MM>(проверяется по школьным и вузовским данным — необходимо наличие одного из следующих пунктов — золотая/серебряная медаль, математическая спецшкола, красный диплом)
MM>* развитой интеллект — проверяется тестом на IQ
MM>* склонность к сидячей одиночной работе
MM>* наличие творческого хобби
MM>* и, собственно, желание работать в этой области

MM>всему остальному можно научить или научиться



согласен, особенно по поводу первого, я б только оговорился — это скорее признак "генетики" хорошого проектировщика либо тестера .. хорошим кодерам присуща некая придурковатость
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: Andrey.dm  
Дата: 25.09.09 08:07
Оценка:
Здравствуйте, bkat, Вы писали:

B>Здравствуйте, Andrey.dm, Вы писали:


SE>>>А имеет смысл тратить силы и время и переучивать? Умный человек воспринимает свою работу всегда со здравым критицизмом.


AD>>Да, если при этом прокачиваешь и свои скилы, лидерские, например, и т.п.


B>Т.е. этот программер нужен для самоутверждения?

B>Ну тогда его реакция объяснима.
B>Возможно проблема не только в том, что он неадекватно(?) реагирует на критику,
B>но и в том, что ты прокачиваешь свои лидерские скилы.
B>Ему похоже просто не повезло...

Хмм... А может быть именно самоутвердиться ему и нужно...
Я как раз таки себя адекватно оцениваю, по этому и обучаюсь и не вижу в этом ничего плохого...
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.09.09 10:58
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>А вот чтобы исправить ситуцию, то стоит сделать следующее

G>0)Настроить систему автосборки, bug\issue-трекер интегрированный с сорсконтролом и системой сборки
G>1)Настроить утилиты статического анализа кода и интегрировать их в билд-систему, чтобы при нарушении coding-style сборка ломалась, заставить индивида исправить все ошибки
G>2)Заставить писать тесты на код, посмотреть на покрытие кода тестами для этого индивида, показать ему самому
G>3)Провести пару раз ревью его кода, чтобы группа опытных программистов рассказала про все ошибки
G>4)Подкинуть ему несколько умных книжек\статей

И забыл последнее:
5)собрать статистику по закрытым фичам и внесенным багам в единицу времени, показать ему что они очень медленно работает.
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: SE Украина  
Дата: 25.09.09 11:02
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>5)собрать статистику по закрытым фичам и внесенным багам в единицу времени, показать ему что они очень медленно работает.


Ну по закрытым фичам это понятно. А по внесенным багам как? Если программер медленно работает, то у него и багов может быть меньше чем у остальных на единицу времени. Просто потому, что он медленно работает
Re[6]: Как объяснить программеру, что он пишет говнокод?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.09.09 11:32
Оценка:
Здравствуйте, SE, Вы писали:

SE>Здравствуйте, gandjustas, Вы писали:


G>>Статистика — это зло. В данном случае любое зло можно повернуть в свою сторону.

G>>Вносит много багов — показывать статистику по бага, реализует мало фич — показывать статистику по фичам. Если много и того и другого, то надо говорить что ему надо писать тесты на код

SE>Был у меня такой начальник. Был публично уличен во лжи. Кроме всего прочего и в злоупотреблении статистикой с целью отказа от своих обязательств.

SE>А я, как результат, был уволен. Чему, как ни странно, очень рад до сих пор

Он выбрал неправльную цель
Re: Как объяснить программеру, что он пишет говнокод?
От: 333  
Дата: 12.10.09 16:20
Оценка:
Здравствуйте, Andrey.dm, Вы писали:

http://financepro.ru/management/2645-dzh.-khank-rejjnvoter.-kak-pasti-kotov.html
Почитайте, на мой взгляд очень толково все разобрано, в том числе и Ваш случай.
Удачи!
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: Олег К.  
Дата: 13.10.09 00:03
Оценка:
А нафига распинаться? Есть такие товарищи которым слова сказать нельзя. Имхо это один из таких.

MM>1. выяснить кто является для него авторитетом в плане написания кода

Сдается мне что он и есть сам себе авторитет.

MM>2. показать ему код, написанный общепризнанными мировыми авторитетами — какие-нибудь сверхпопулярные библиотеки и т.п.

Не думаю что прокатит. Есть такие неадекваты которых к компьютерам подпускать нельзя, не говоря уж о том чтобы давать им писать програмы.

MM>3. ввести стандарты написания код единые для всей организации (документ занимает 30 страниц или около того, максимум — во всех хороших конторах, где я работал, он был) — и, собрав ВСЕХ ВСЕХ, сказать, что мы все будем писать так и никак иначе, чтобы не было выговором отдельным личностям

Чисто так ради одного человека?

Даже если такого стандарта нет и все пишут вразнобой (да, признаю проблему управления), то, сдается мне, что остальные все-таки могут договориться друг с другом и писать на должном уровне.

MM>4. вводить код ревью, когда и этот человек у других проверяет код, и другие у него — чтобы интеграция шла не по принципу начальник-подчиненнный, а на командном уровне

Все это хорошо и верно но, боюсь, что этот программахер настроит всех против себя что к нему никто подходить не захочет.
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: Олег К.  
Дата: 13.10.09 00:17
Оценка:
G>А вот чтобы исправить ситуцию, то стоит сделать следующее
G>0)Настроить систему автосборки, bug\issue-трекер интегрированный с сорсконтролом и системой сборки
G>1)Настроить утилиты статического анализа кода и интегрировать их в билд-систему, чтобы при нарушении coding-style сборка ломалась, заставить индивида исправить все ошибки
G>2)Заставить писать тесты на код, посмотреть на покрытие кода тестами для этого индивида, показать ему самому
G>3)Провести пару раз ревью его кода, чтобы группа опытных программистов рассказала про все ошибки
G>4)Подкинуть ему несколько умных книжек\статей
Это все прокатит если не клинический случай. Ну а если клинический? Топикстартер ведь сказал что советы воспринимаются в штыки, ну и самомнение и программахера ого-го.
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: Олег К.  
Дата: 13.10.09 00:24
Оценка:
G>>3)Провести пару раз ревью его кода, чтобы группа опытных программистов рассказала про все ошибки
Z>Как раз с этим и проблемы у топикстартера, не могут они нормально объяснить почему этот код является говнокодом.
Читай пост еще раз. Объяснить топикстартер может но программахер принимает все в штыки. Более того, программахером принимаются такие-то и такие решения при написании кода, и это он должен обосновать свои решения.

Имхо в посте описан клинический случай когда лучше всего расстаться.
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: BulatZiganshin  
Дата: 17.10.09 07:59
Оценка:
Здравствуйте, MachoMuchacho, Вы писали:

AJD>>А какие признаки хорошего программера?


MM>* желание и умение учиться

MM>(проверяется по школьным и вузовским данным — необходимо наличие одного из следующих пунктов — золотая/серебряная медаль, математическая спецшкола, красный диплом)

из нашего маткласса матшколы вышли: бандит, мент, охранник, боксёр, наркоторговка
Люди, я люблю вас! Будьте бдительны!!!
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: Firstborn Латвия  
Дата: 23.10.09 16:56
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Представил: 5 классов в день, 25 в неделю, 100 в месяц, 1200 в год.

V>Комментировать не буду.
Да ну, гражданин, вы зря цепляетесь к цифрам, они же взяты сугубо с потолка, исключительно для наглядной иллюстрации.
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: Аноним  
Дата: 30.10.09 12:08
Оценка:
Здравствуйте, x905, Вы писали:

X>Здравствуйте, MachoMuchacho, Вы писали:


MM>>* желание и умение учиться

MM>>(проверяется по школьным и вузовским данным — необходимо наличие одного из следующих пунктов — золотая/серебряная медаль, математическая спецшкола, красный диплом)

X>вот и неправда )

X>обычно красные дипломы имеют зубрилы, соображать не обученные (например девки с первых рядов парт пишушие лекции разноцветными ручками)

Подтверждаю. Я за первый экзамен по математике получил 3. Зато выиграл университетскую олимпиаду по математике. Хотя потом уже мне всегда ставили 5 — вызубрил, не вызубрил, не важно.
Re[6]: Как объяснить программеру, что он пишет говнокод?
От: Vzhyk  
Дата: 01.11.09 17:47
Оценка:
Gaperton пишет:
>
>> > Да ну, гражданин, вы зря цепляетесь к цифрам, они же взяты сугубо с
>> > потолка, исключительно для наглядной иллюстрации.
>
> Да только хуже будет. Не также — хуже. "Говнокодер" превратится в
> "быдлокодера". "Строки кода плохо, классы лучше". Представляю себе
> "говнокодера", которому объяснили, что его код — говно, потому, что он
> мало классов сделал . Код размыть, чтобы плотность дефектов упала,
> нашпиговав его на ровном месте говноклассами — бррр... А потом еще
> говнотестами это накрыть, чтобы метрику покрытия догнать . Жесть.
И все счастливы, кода море. Прогеры все при деле, даже не успевают.
Начальство метрики считает.
Вот что интересно, сколько времени в таком состоянии может находиться
обычная русская програмерская контора?
Французская прожила 2 года (до этого 10 лет жила, а потом "детские
болезни", прямо по Ленину), после объявила себя банкротом.
Posted via RSDN NNTP Server 2.1 beta
Re[8]: Как объяснить программеру, что он пишет говнокод?
От: Vzhyk  
Дата: 02.11.09 16:38
Оценка:
Gaperton пишет:
>
>
> При условии наличия продукта, который уже продается — может находиться
> довольно долго. Как
> это ни странно. Меня это одно время сильно занимало, и я пытался изучить
> вопрос.
Продукты у них очень неплохие: http://www.reciftech.com.
Обанкротилась и была продана полностью.
Сейчас реорганизована и делает ту же продукцию и даже под той же маркой.
А эта продукция стоит почти на всех фабриках в мире, что делают микросхемы.

>

> Ну, короче, как-то так.
Ага, меня только удивило, что произошло оное все лет за 5, последний
этап, переписывания, длился 1.5 года: "В результате данного
"переписывания" шансы накрыться медным тазом повышаются, и это может
приблизить конец."
Posted via RSDN NNTP Server 2.1 beta
Re: Как объяснить программеру, что он пишет говнокод?
От: mike_sikalo Украина  
Дата: 12.11.09 18:21
Оценка:
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки


Здесь 2 независимые проблемы:

1) Гадкий код.

Этому можно научить. Рекомендую не полениться и опубликовать официальные, единые для всех, правила кодирования (благо в сети примеров достаточно и скомпилировать из них что-либо удобоваримое вполне несложно). Еще более правильно настроить какой-н. код чекер на запуск, скажем, дважды в день, анализ и рассылку обнаруженных проблем в коде. Имеет смысл временно, скажем, на полгода, ввести 2 набора правил: "обязательно для применения во всем коде" и "обязательно в новом коде, допускается несоблюдение в старом". Наконец, привязать систему премирования к выполнению этих правил (типа "-1% премии за каждое ругательство чекера").

2) Воинствующий идиотизм.

Если человек не желает прислушиваться к мнению окружающих, то должны быть ОЧЕНЬ веские причины держать его на работе. Причины такие иногда бывают, но редко. Помните также про "закон гнилого яблока".
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: Other Sam Россия  
Дата: 19.11.09 23:06
Оценка:
> Здравствуйте, MozgC, Вы писали:
>
> MC>Говорите ему не как надо, а почему надо по-другому: приводите реальные практические доводы и примеры того, к чему может привести бездумный код.
> К сожалению, есть индивиды, которые даже аргументы твои опровергнут и опровергнут так тупо, что ты ничего не сможешь возразить.

А до него доходит мысль, что для исходника важнее как его прочтут другие
программисты, а не то, как он будет выполняться?
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: Аноним  
Дата: 12.12.09 10:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Одна беда, посчитать эту мерику не получится. Как узнать сколько багов содержится в коде? Или предлагается мерять количество найденных ошибок, а не реально существующих? A вдруг Пупкин написал то, что клиентам нафиг не надо, вот никто ошибок и не нашёл? Ну пусть даже посчитали число всех ошибок, что если они вызваны не "говнокодом" Форточкина, а кривой архитектурой Пупкина? Ни к чему хорошему оценка работы через формальные метрики не приведёт.


Ну да, метрики это не 100%я панацея от всех бед — это сперва нечто сложные, не совсем понятные сущности. Их надо считать, АНАЛИЗИРОВАТЬ, копить, корректировать. На это надо время. Как эти метрики считать и какие — вообще отдельная история ... Но если контора занимается метриками серьезно, то они много где помочь могут. В том числе и в качестве критерия говнокода.

Против говнокода такжн можно применить, например, формал ревью, руткоз-анализ. Для первого нужны авторитетные кабаны, которые говногодера в его говнокод тыкать будут и не дадут сабмитить пока все не напишет правильно (сам через это проходил в бытность свою младшего программиста — и ничего, очень нянькам свои благодарен, которые из меня человека сделали). Для второго нужен предмет для анализа — баги, запросы заказчика, юзабилити и теде и тепе — а для этого нужен как минимум вменяемый тест. Если теста нет, то и нельзя даже точно определить говнокод это или нет (если принять положение, что работающий код — это уже не говнокод) — ибо все субъективно — я тоже иногда "до пены у рта" спорю с нашими архитекторами .. и никто никого не гнобит — как говорится, в споре рождается истина

В общем, совет один: надо найти предмет для анализа и анализировать его до просветления

Удачи.
Re: Как объяснить программеру, что он пишет говнокод?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 14.12.09 13:57
Оценка:
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...



1. Взяли —

мн. ч. подразумевает что причастных было много. Как был проведён отбор, был ли он вообще, кто был в роли тех. эксперта ?
2. Скилы у него слабенькие (продолбали на собеседовании) —

не пойму, раз выяснили что чел слабоват, зачем было его брать ?


3.как наиболее правильно переучить его, —

Начать нужно с себя. Для начала нужно сделать так, что бы такие слабенькие не проходили собеседование. Это вовсе не значит, что надо сношать на оном !

4. о себе он в разы более высокого мнения

это тоже нужно проверять на собеседовании

5. я бы даже сказал в большие разы

нужно обязательно проверить, не имеет ли автор сообщения завышеного самомнения и не относится ли он пренебрежительно к другим, например начинающим

6. как объяснить, что то, что он пишет ну совсем никуда не годится

Мне сильно кажется, что раз взяли заведомо слабого и теперь хотят что бы он резко стал сильным, то объясняют крайне плохо

А вообще серьёзные конторы берут слабых кандидатов с целью обученя оных, а не просто так, в надежде что тот в один прекрасный день резко станет экспертом.
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 14.12.09 14:00
Оценка:
Здравствуйте, AndrewJD, Вы писали:

MM>>кстати, то что программер пишет говнокод и у него большое самомнение не есть признаки плохого программера


AJD>А какие признаки хорошего программера?


Интерес, интеллект хотя бы чуток выше среднего и желание работать-учиться.
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 14.12.09 14:05
Оценка:
Здравствуйте, MachoMuchacho, Вы писали:

MM>* желание и умение учиться

MM>(проверяется по школьным и вузовским данным — необходимо наличие одного из следующих пунктов — золотая/серебряная медаль, математическая спецшкола, красный диплом)

Я знаю вагон специалистов, которые имеют один из этх пунктов и при этом ни на что не годятся.

MM>* развитой интеллект — проверяется тестом на IQ


это слишком много времени и вероятность правиьлной оценки не сильно высока.

MM>* склонность к сидячей одиночной работе


Почему именно к одиночной, а не парной, коммандной ?

MM>* наличие творческого хобби

MM>* и, собственно, желание работать в этой области

MM>всему остальному можно научить или научиться


Нужен интерес именно к конкретной работе, к конкретной области. Люди которые поработают год и уйдут мало интересны.
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 14.12.09 14:12
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Firstborn пишет:

>>
>> * Производительность — мерять LOCами глупо, но вот классами,
>> наверное можно. Например в среднем по команде 5 классов в день, а
>> у говнокодера — 2. Показываем ему две цифры.
V>Представил: 5 классов в день, 25 в неделю, 100 в месяц, 1200 в год.

Хорошим тулом можно столько классов насоздавать, не передать словами.
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: MachoMuchacho  
Дата: 14.12.09 14:17
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, Vzhyk, Вы писали:


V>>Firstborn пишет:

>>>
>>> * Производительность — мерять LOCами глупо, но вот классами,
>>> наверное можно. Например в среднем по команде 5 классов в день, а
>>> у говнокодера — 2. Показываем ему две цифры.
V>>Представил: 5 классов в день, 25 в неделю, 100 в месяц, 1200 в год.

I>Хорошим тулом можно столько классов насоздавать, не передать словами.


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

но это для очень больших проектов
или для очень большого числа однотипных средних проектов
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 14.12.09 14:18
Оценка:
Здравствуйте, MachoMuchacho, Вы писали:

MM>на определенных этапах, когда человек уже врубился в технологию и основные понятия проекта, а количество бизнес-правил и элементов интерфейса зашкаливает за тысячи, то оставшиеся несколько тысяч правил и элементов интерфейса можно очень лего распределить по времени и мерить производительность ими


А как учесть настроение, самочувствие и тд ?

MM>или для очень большого числа однотипных средних проектов


Мне кажется это редкий случай ?
Re[6]: Как объяснить программеру, что он пишет говнокод?
От: MachoMuchacho  
Дата: 14.12.09 14:20
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, MachoMuchacho, Вы писали:


MM>>на определенных этапах, когда человек уже врубился в технологию и основные понятия проекта, а количество бизнес-правил и элементов интерфейса зашкаливает за тысячи, то оставшиеся несколько тысяч правил и элементов интерфейса можно очень лего распределить по времени и мерить производительность ими


I>А как учесть настроение, самочувствие и тд ?


MM>>или для очень большого числа однотипных средних проектов


I>Мне кажется это редкий случай ?


я в ибм-ах и мс-ах не работал — не знаю
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: Vzhyk  
Дата: 14.12.09 15:47
Оценка:
Ikemefula пишет:
>
> V>Представил: 5 классов в день, 25 в неделю, 100 в месяц, 1200 в год.
>
> Хорошим тулом можно столько классов насоздавать, не передать словами.
А что есть разница в варианте выше, чем эти классы плодить, тулом или на
клавиатуре набивать?
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: Панда Россия  
Дата: 14.12.09 17:00
Оценка:
Здравствуйте, dilmah, Вы писали:

D>можно сказать и что Федя лох, потому что выбрал сложную задачу.

D>Взялся за гуж, не говори что не дюж

Задачи обычно не выбираются, а выдаются начальством.
Re[6]: Как объяснить программеру, что он пишет говнокод?
От: dilmah США  
Дата: 14.12.09 19:08
Оценка:
П>Задачи обычно не выбираются, а выдаются начальством.

ну в разных местах, проектах и позициях бывает разная ситуация.
Re: Как объяснить программеру, что он пишет говнокод?
От: AC1D  
Дата: 15.12.09 04:37
Оценка:
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


Попробуйте парное программирование
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 15.12.09 08:59
Оценка:
Здравствуйте, Vzhyk, Вы писали:

>> Хорошим тулом можно столько классов насоздавать, не передать словами.

V>А что есть разница в варианте выше, чем эти классы плодить, тулом или на
V>клавиатуре набивать?

Конечно, цыфра будет разная
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: AC1D  
Дата: 15.12.09 10:10
Оценка:
Здравствуйте, MachoMuchacho, Вы писали:

MM>Здравствуйте, AC1D, Вы писали:


ACD>>Попробуйте парное программирование


MM>да, точно

MM>подсадите к нему шикарную девушку в миниюбке, которая время от времени будет томно вздыхать и говорить "секс только результатам code review"

кнут они пробовали, пусть попробуют пряник
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: anglichanin  
Дата: 01.02.10 05:49
Оценка:
Здравствуйте, Олег К., Вы писали:

A>>Практически любой программист с некоторой завистью смотрит на код написанный лучше его. А по поводу аргументирования недостатков кода читай Макконнелла.

ОК>Можешь кратко пересказать что говорит Макконелл по этому поводу?

Он дает советы как нужно писать при этом довольно наглядно объясняет почему. То есть если нужна аргументация "как лучше". К тому же если возникает некий личный конфликт ( я имею ввиду противостояние программиста написавшего код с душком )то всегда можно привлечь эксперта со стороны. Все как -то забыват о таком прекрасном инструменте. Возможно это и более дорогой инструмент, но он того стоит.
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: sto Украина http://overstore.codeplex.com
Дата: 04.02.10 10:30
Оценка:
Здравствуйте, MachoMuchacho, Вы писали:

MM>Здравствуйте, AC1D, Вы писали:


ACD>>Попробуйте парное программирование


MM>да, точно

MM>подсадите к нему шикарную девушку в миниюбке, которая время от времени будет томно вздыхать и говорить "секс только результатам code review"

Можно еще грозного волосатого начальника, который будет сопеть и говорить ту же фразу

А если серьезно: в вашей ли власти его уволить? Если да — то увольняйте.
Не только метриками, багами и эстетикой кода жив проект. Ваши нервы вам дороже.
Можно податься в дзен, убедить себя, что плохой коллега — это Вызов,
перевоспитание его — это способ сделать рынок программистов мир немного лучше,
можно говорить, что вы не такой: вы не отступаете от проблем — можно многими способами себя заморочить.

Но ответьте себе на вопрос: оно вам надо? Для всех будет лучше, если у вас и у ваших подчиненных будут крепче нервы.
Пусть даже ваше решение сейчас приведет к некоторому проседанию производительности и небольшому отставанию от плана.

Если присутствие этого человека не является для проекта критичным — увольняйте.

И поверьте — вам лично не нужно никаких подтверждений "говнокодеропороды" этого человека —
достаточно лишь того, что вы не можете работать с ним.

Ухудшение вашей работы из-за наличия его в команде перевесят все преимущества,
которые, возможно, уже дал и, возможно, еще даст этот человек.
There is no such thing as the perfect design.
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: skeptik_  
Дата: 01.04.10 22:15
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, MachoMuchacho, Вы писали:


MM>>* развитой интеллект — проверяется тестом на IQ

LVV>
LVV>Нифига тест IQ не проверяет...
Его надо иметь, чтобы тест показал его наличие
Re[9]: Как объяснить программеру, что он пишет говнокод?
От: skeptik_  
Дата: 01.04.10 22:21
Оценка:
Здравствуйте, SE, Вы писали:

SE>Вероятно имелось в виду, что уровень интеллекта и результат IQ-теста хотя в некоторой степени и коррелируют, но тесты не являются сколько нибудь точным показателем.

SE>Дело в том, что человек, который не приучен и не готов решать задачки подобные к тем, что в IQ-теста врядли заинтересуется программированием вообще, но почему бы ему не быть выдающимся историком.
SE>И наоборот, у программиста, особенно если он прилагает к тому усилия, мозг "затачивается" для решения таких задачек. При этом во всем остальном и особенно в решении жизненных вопросов, такой программист может оказаться дуб-дубом, а может и не оказаться

Ты не догоняешь. Если мозги не работают, то затачивать их бесполезно. Собственно IQ как раз таки и характеризует обучаемость человека.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.