recoder: (Default)
[personal profile] recoder

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

Обычно, когда сделаешь правильный дизайн, то из него логически следует реализация. И когда воплощаешь это в код, чувствуешь, что делаешь The Right Thing™. Ты не борешься с системой, ты строишь новое, складывая из продуманных блоков. При грамотных абстракциях и новые фичи реализуются логичным способом, и опять же появляется то же чувство. А вот когда делаешь грязные хаки или даже хаки на хаки - чувствуешь, как у тебя карма безнадёжно портится. Понимаешь, что ты в отладчике третий день сидишь именно за это, за сделанную Wrong Thing™. Тобой или нет - дело уже другое.

Так вот - по-моему, есть люди просто-напросто лишённые этого чувства. Они не чувствуют угрызений совести меняя приватные переменные через reflection или реализуя свою конкретную задачу в глубинах абстрактной библиотеки. Более того, они не чувствуют момента, когда всё сделано правильно и процесс идёт почти сам собой. Это люди без мотивации. Они не способны вообще чувствовать удовольствия от программирования, для них любой кодинг - это борьба с силами природы. Печальная картина...

Такая вот программистично-гуманистическая теория...

coding

Date: 2005-04-21 07:44 am (UTC)
From: [identity profile] hazan.livejournal.com
Это - я.

Date: 2005-04-21 08:40 am (UTC)
From: [identity profile] little-elijah.livejournal.com
Андрюх, к сожалению, им просто никто никогда не показал, что бывает по-другому, бывает правильно.
Ну придет студент в контору, где только тем и занимаются, что хачат. Посмотрит он на это и решит, что это и есть жизнь и работа, что только так и надо делать. И не будет у него рядом большого и доброго РеКодера, который бы про карму рассказал, показал, как жить надо. А большой и добрый РеКодер будет вместо этого будет сидеть и писать печальные посты о том, что жизнь говно. ;)

Date: 2005-04-21 09:06 am (UTC)
From: [identity profile] little-elijah.livejournal.com
Не, не напрягает. Даже наоборот.

Опять же повторюсь, что для того, чтобы такое представление о жизни сложилось, человек должен не понимать, что правильно - УДОБНЕЙ и ПРОЩЕ. А вот этого ему никто и не объяснил.

Date: 2005-04-21 01:58 pm (UTC)
From: [identity profile] alexaces.livejournal.com
А для того чтобы объяснить, недостаточно РеКодеру подойти один раз к этому самому абстрактному неправильному человеку и рассказать про то как всё будет плохо в будущем. Если человек достаточно умный и сделал так, он уже явно не верит в плохое будущее (например, он считает что не ему разбираться с последствиями что тоже аргумент). Всегда нужен follow-up - в следующий раз когда это код вызвал проблемы, после того как эти проблемы были решены, прикидываешь время которое это заняло vs время которое бы заняло "правильное" написание кода, и если первое время больше второго, показываешь расчеты заинтересованным людям которых хочешь чему-либо научить (включая начальство). Если первое время меньше, ждешь второго случая. Если второго случая нет, правы "неправильные" программисты, а не ты.

Date: 2005-04-21 02:00 pm (UTC)
From: [identity profile] little-elijah.livejournal.com
Согласен.
Радует то, что последнее время мне не приходится никого учить. Ни людей, ни начальство. ;)

Date: 2005-04-21 02:15 pm (UTC)
From: [identity profile] alexaces.livejournal.com
Хм. Совсем не в качестве наезда, и не для перевода темы, и уж тем более не в качестве doomsayer ;), но:

По моим наблюдениям такое бывает в двух случаях:
1. Программист на пенсии ;)
2. Программист в советском НИИ или его современном аналоге ;) - означает что люди в небольшом коллективе не меняются долгое время, что имхо плохо потому что новые люди - это новые взгляды, информация и очень полезный взгляд со стороны.

Другое дело что когда _постоянно_ надо учить, это утомляет очень сильно. Истина (или скорее разумный компромисс) где, как обычно, посредине.

Date: 2005-04-21 03:07 pm (UTC)
From: [identity profile] little-elijah.livejournal.com
У нас имеет место быть второй случай.
Но при этом, как верно подметил РеКодер в коменте, мы тут все учимся. Более того, на регулярно проводимые семинары приглашаются люди со стороны, тот же РеКодер, например. ;)

Date: 2010-10-20 06:24 pm (UTC)
From: (Anonymous)
Хорошая статья, Андрей. Абсолютно согласен. Бесит копаться с криво написанном коде... можно писать правильно - по сути это реально делает как по маслу без лишнего напряжения... но от кривых входных данных (в данном случае кривой дизайн или фреймворк) получается только кривой результат. Поэтому при кривых входных должно еще быть и кривое решение. Поэтому думаю что действительно интересно участвовать в старт-ап проектах. где ты можешь менять многое и легко, когда на решении не отразились годы и когда хочешь не хочешь но нужно поддерживать ранние решения - иначе бизнес пойдет на дно

Date: 2011-02-10 10:04 pm (UTC)
From: [identity profile] fenikso.livejournal.com
Это бессмертно, 6 лет спустя по-прежнему актуально.

Date: 2011-02-11 07:58 am (UTC)
From: [identity profile] klizardin.livejournal.com
тут еще педагогическая составляющая важна. очень просто сделать так чтобы человек тебя ненавидел. программеры они тоже все очень важные и очень много знающие особы. и каждый будет ругаться, если его код вдруг назовут негениальным. хотя и ясно, что там один грязный хак на другом, да и систему так никто не выстраивает. и нужно "начать из далека и везти аленький цветочек (вместо хмыря крутого ай-яй-яй)" проводить тренинги, организовывать регулярные осмотры кода, выкладывать на месном форуме рассмотрение тех или иных форумов, задачки опять же не скучные. имхо так скорее. ну т.е. ты можешь с некоторыми людьми, которым на все 100 доверяешь, говорить о грязном хаке на грязном хаке, но только не рассказывай этим очень важным и чувствующим свою значимость человекам.

Date: 2011-02-11 08:31 am (UTC)
From: [identity profile] savelievpetr.livejournal.com
Думаю, с этим каждый программист согласиться. Вопрос в том, как воспитать в команде крутых разработчиков единое понимание "правильного кода"?

December 2024

S M T W T F S
1234567
891011121314
15161718192021
22232425 262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 3rd, 2026 03:26 pm
Powered by Dreamwidth Studios