Re[3]: Читай код
От: Gaperton http://gaperton.livejournal.com
Дата: 10.05.09 20:19
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Беда в том, что если вы строите процесс, который не зависит от личности, то все личности в вашем проекте становятся взаимозаменяемыми. А значит, вам всё равно, что чувак типа Тола, что Вася Пупкин с опытом 3 года, обученный процессу. Т.е., фактически, вы делаете так, что людям типа Тола в вашем проекте нет места. А тем самым, лишаете себя возможности разрабатывать софтварий, в котором без людей такого класса просто не обойтись.


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

Empiric process, не зависимый от людей — это абсурд. У Джоела, кстати, была очень простая и убедительная статья об этом — про "голого шеф-повара".
Re[4]: Читай код
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 11.05.09 06:11
Оценка:

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


Я знаю. Читал. Я над этим работаю .
Тут есть некий хитрый чит. Если каким-то хитрым образом изогнуться и сделать так чтобы *результаты* работы колдунов протоколировались, то можно сделать следующее: добрый волшебник творит свою архитектурную и технологическиую магию, при этом она почти на автомате протоколируется. В результате с тем, что волшебник уже сделал можно впоследствии разобраться силами менее квалифицированных товарищей. Теоретически, получаем лучшее из двух миров — волшебники творят чудеса, при этом уже сотворенные чудеса можно поддерживать без волшебников.

Где-то так .
Re[5]: Читай код
От: SleepyDrago Украина  
Дата: 11.05.09 18:04
Оценка:
Здравствуйте, Eye of Hell, Вы писали:

EOH>

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


EOH>Я знаю. Читал. Я над этим работаю .

EOH>Тут есть некий хитрый чит. Если каким-то хитрым образом изогнуться и сделать так чтобы *результаты* работы колдунов протоколировались, то можно сделать следующее: добрый волшебник творит свою архитектурную и технологическиую магию, при этом она почти на автомате протоколируется. В результате с тем, что волшебник уже сделал можно впоследствии разобраться силами менее квалифицированных товарищей. Теоретически, получаем лучшее из двух миров — волшебники творят чудеса, при этом уже сотворенные чудеса можно поддерживать без волшебников.

EOH>Где-то так .

Чтобы протоколировать действия одного волшебника нужен на порядок более дорогой волшебник. Это как то связано с тем, что смысл не равен сумме смыслов частей. Так что пока это экономически не оправданно никто так делать не будет. По крайней мере при мне все случается именно так
Буду рад узнать что я был не прав и это просто такой неудачный опыт.
Re[6]: Читай код
От: Au1  
Дата: 14.05.09 09:20
Оценка: -2
Здравствуйте, Eye of Hell, Вы писали:


Прямо в сорцах расставляем в комментариях теги и записываем что нам надо. Doxygen, Natural Docs, javadoc и еще большая куча технологий и инструментов в помощь. Если это развернуть, то мы имеем документацию по проекту, которая всегда синхронизирована с исходниками и всегда актуальна. Потому что она из них генерится.


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

Лично мне не влом написать пару строк комментария к функции с нетривиальным содержимым, которое непонятно из ее названия и добавить пару строчек внутрь по ходу кода в самых интересных местах, но когда я потом что-то переделываю в какой-то функции, то именно читаю код, а не комментарий к нему (сознание попросту фильтрует другим образом раскрашенный текст в редакторе, особенно если он далеко от места правки), соответственно, могу забыть скорректировать комментарии до актуального состояния.
Re[3]: Читай код
От: genre Россия  
Дата: 14.05.09 13:38
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Беда в том, что если вы строите процесс, который не зависит от личности, то все личности в вашем проекте становятся взаимозаменяемыми. А значит, вам всё равно, что чувак типа Тола, что Вася Пупкин с опытом 3 года, обученный процессу. Т.е., фактически, вы делаете так, что людям типа Тола в вашем проекте нет места. А тем самым, лишаете себя возможности разрабатывать софтварий, в котором без людей такого класса просто не обойтись.


Это не так. Процесс в котором люди невзаимозаменяемы вообще ни копейки не стоит. Он не поддается ни планированию, ни маштабированию.

Просто стремится к абсолютной взаимозаменяемости не следует. Достаточно, чтобы человека мог заменить некий процент других членов команды. Процент в каждом случае свой. Ну например в достаточно большой команде человек если человека можно легко заменить 4-5 другими, а еще скажем 5-10 нельзя, то это уже достаточный уровень взаимозаменяемости.
А теперь впишем в эту схему Тола. Те 90% работы которую он делает в режиме "обычный программист" мы встраиваем в общую схему, а те 10% что в режиме "супер-гуру" — они остаются незаменимыми.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[7]: Читай код
От: Gaperton http://gaperton.livejournal.com
Дата: 14.05.09 13:43
Оценка:
Здравствуйте, Au1, Вы писали:

Au1>

Au1> Прямо в сорцах расставляем в комментариях теги и записываем что нам надо. Doxygen, Natural Docs, javadoc и еще большая куча технологий и инструментов в помощь. Если это развернуть, то мы имеем документацию по проекту, которая всегда синхронизирована с исходниками и всегда актуальна. Потому что она из них генерится.


Au1>При определенной степени разгильдяйства, помноженной на вечный цейтнот, смешанной с привычкой "Читать код, а не комментарии" получим все тот же эффект — комментарии к функциям и модулям будут сильно устаревать через пару недель активной работы над кодом.


Комментарии есть неотъемлемая часть кода. Для контроля данного аспекта качества которого служит code review.
Re[5]: Читай код
От: Gaperton http://gaperton.livejournal.com
Дата: 15.05.09 13:08
Оценка: +1
Здравствуйте, Eye of Hell, Вы писали:

EOH>

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


EOH>Я знаю. Читал. Я над этим работаю .

EOH>Тут есть некий хитрый чит. Если каким-то хитрым образом изогнуться и сделать так чтобы *результаты* работы колдунов протоколировались, то можно сделать следующее: добрый волшебник творит свою архитектурную и технологическиую магию, при этом она почти на автомате протоколируется. В результате с тем, что волшебник уже сделал можно впоследствии разобраться силами менее квалифицированных товарищей. Теоретически, получаем лучшее из двух миров — волшебники творят чудеса, при этом уже сотворенные чудеса можно поддерживать без волшебников.

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

Код волшебника очень просто устроен, логично структурирован, и _литературен_. В нем _легко_ разбираться. Его не надо отдельно протоколировать — соблюдения дисциплины работы с комментариями к коммитам в VCS, и записям в трекере достаточно. Даже для не по делу сложного и кривоватого кода, написанного начинающими волшебниками.

Соблюдение дисциплины оформления самого кода, проверяющейся на код-ревью (предполагают эти правила оформления комментариев в doxygen-подобном стиле или нет — неважно), так же достаточно для того, чтобы все было так, как я пишу. Отсутствия код ревью — достаточно, чтобы все стало плохо и при наличии документации.
Re[4]: Читай код
От: Gaperton http://gaperton.livejournal.com
Дата: 18.05.09 20:41
Оценка:
Здравствуйте, genre, Вы писали:

G>А теперь впишем в эту схему Тола. Те 90% работы которую он делает в режиме "обычный программист" мы встраиваем в общую схему, а те 10% что в режиме "супер-гуру" — они остаются незаменимыми.


В реальности, у нас было как минимум 3 человека, которые в совокупности дублировали и перекрывали его компетенции. Один из них — я, его скромный ученик . А если кого-то из нас не стало бы, знание было бы чуточку более распределено, ибо и каждый из этих трех многократно отдублирован. Но не пропало. Скажем, у меня в команде был человек, который мог полностью меня заметить. И, кстати, заменил, когда я уволился.
Re: Читай код
От: SEDEGOFF Россия www.srcsoft.com
Дата: 19.05.09 03:06
Оценка: +1
Здравствуйте, Gaperton, Вы писали:

G>Организаторы SoftwarePeople попросили меня написать какую-нибудь статью для сайта. Я собственно, написал нечто, и опубликовал сначала в своем блоге. Эта совершенно безобидная статья вызвала почему-то кучу шума. Топ яндекса, и концы — заломилась толпа, и какого-то дуба половина ЖЖ меня теперь обвиняет в том, что я "проповедую" отказ от любой документации во всех ее проявлениях — и что такой подход — враг всему "промышленному". С ума спятить. Причем, переубедить людей, и объяснить им, что статья вообще не о том, и что я ничего не проповедую — практически невозможно. Короче, вот, читайте .


Спасибо за статью. Мне она напомнила одну вешь. В стакан 200 мл налили 100 мл воды. Так вот есть люди, которые скажут что стакан на половину полон, а другие скажут что стакан на половину пуст. Так и здесь. Опытные программисты, прочитав вашу статью говорили мне — так это же очивидно! А вот молодежь говорит — я так и знал! Документация не нужна. Но при этом прочитать код опытного можеть кто угодно. А вот над кодом молодого... в общем учится, учится и еще раз учится!
Но если честно, в том виде, как эта статья есть — молодым показывать боюсь... ой как боюсь... Что то есть неуловимое для молодых и не испорченных умов. Это что то, на мой взгляд, и заставило большу толпу народа "нападать" на вас с обвинениями в том, что вы проповедуете отказ от кода. Выразить пока в словах не могу, но как только мысль сформируется — я поделюсь
... << RSDN@Home 1.2.0 alpha 4 rev. 1136>>
Re[4]: Читай код
От: Vlad_SP  
Дата: 19.05.09 06:08
Оценка: +1
Здравствуйте, genre, Вы писали:

G>Это не так. Процесс в котором люди невзаимозаменяемы вообще ни копейки не стоит. Он не поддается ни планированию, ни маштабированию.


Здесь я бы возразил: процесс, в котором люди абсолютно взаимозаменяемы — стоит еще меньше. Ибо в нем люди низведены до состояния "заменяемых винтиков", и их мотивация эффективно работать по проекту — не только стремится к нулю, но и устремляется к отрицательному значению. Главным становится другое — мелочное и детальное следование "регламентам", "документированным процедурам" и прочим бюрократическим брейнфакингам. Результат же работы по проекту — для сотрудника-"винтика" не имеет значения, сотрудник в нем нисколько не заинтересован; ибо сегодня "винтик" работает на одном проекте, завтра — на другом, послезавтра — вообще на третьем.

PS: Это чистая практика. Именно такую ситуацию я имею счастье наблюдать воочию..... К счастью, не в моем проекте и не в отделе, где я работаю.
Re[6]: Читай код
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 19.05.09 06:25
Оценка:

Код волшебника очень просто устроен, логично структурирован, и _литературен_. В нем _легко_ разбираться. Его не надо отдельно протоколировать.


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

В подветке была обрисована идея, что:

А значит, вам всё равно, что чувак типа Тола, что Вася Пупкин с опытом 3 года, обученный процессу. Т.е., фактически, вы делаете так, что людям типа Тола в вашем проекте нет места. А тем самым, лишаете себя возможности разрабатывать софтварий, в котором без людей такого класса просто не обойтись.


Я на самом деле зря на это ответил, что действия Тола тоже можно комментировать. Я с Вами согласен, что код гуру уровня Тола просто устроен, логично структурирован и литературен. Переформулирую — техпроцесс и документация не приравнивают Тола к Васе. Они не накладывают на Тола рамки . Техпроцесс сам по себе — это средства контроля а не направляющая рельса. Не вижу чем документация в коде помешает Толу писать такой же просто устроеный, логично структурированный и литературный код. А вот Васин сложный, нелогично структурированный и н.лр-й. код такой техпроцесс вполне сможет выправить, так чтобы потом не понадобилась магия при его чтении. Мы же не можем одних Толов в компанию нанять?
Re[5]: Читай код
От: genre Россия  
Дата: 19.05.09 10:04
Оценка: +1
Здравствуйте, Vlad_SP, Вы писали:

V_S>Здесь я бы возразил: процесс, в котором люди абсолютно взаимозаменяемы — стоит еще меньше. Ибо в нем люди низведены до состояния "заменяемых винтиков", и их мотивация эффективно работать по проекту — не только стремится к нулю, но и устремляется к отрицательному значению. Главным становится другое — мелочное и детальное следование "регламентам", "документированным процедурам" и прочим бюрократическим брейнфакингам. Результат же работы по проекту — для сотрудника-"винтика" не имеет значения, сотрудник в нем нисколько не заинтересован; ибо сегодня "винтик" работает на одном проекте, завтра — на другом, послезавтра — вообще на третьем.


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

Взаимозаменяемость это гарантия того, что шоустоппер на live сервере каждая секунда простоя которого стоит бешеных денег будет пофикшен мгновенно, а не когда гуру вернется из отпуска.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[6]: Читай код
От: Vlad_SP  
Дата: 19.05.09 11:17
Оценка:
Здравствуйте, genre,

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


V_S>>Здесь я бы возразил: процесс, в котором люди абсолютно взаимозаменяемы — стоит еще меньше. Ибо в нем люди низведены до состояния "заменяемых винтиков", и их мотивация эффективно работать по проекту — не только стремится к нулю, но и устремляется к отрицательному значению. Главным становится другое — мелочное и детальное следование "регламентам", "документированным процедурам" и прочим бюрократическим брейнфакингам. Результат же работы по проекту — для сотрудника-"винтика" не имеет значения, сотрудник в нем нисколько не заинтересован; ибо сегодня "винтик" работает на одном проекте, завтра — на другом, послезавтра — вообще на третьем.


G>Не нужно придавать программированию сакральности и таинства. Детальное следование регламентам и документированным процедурам в промышленном программирование первоочередная необходимость.

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

G>Взаимозаменяемость это гарантия того, что шоустоппер на live сервере каждая секунда простоя которого стоит бешеных денег будет пофикшен мгновенно, а не когда гуру вернется из отпуска.


Да я, в общем-то, не утверждаю об "ореоле сакральности и таинства" в программировании и не возражаю против осмысленного следования регламентам и процедурам. Они необходимы. Я возражаю — против низведения сотрудников до уровня "винтиков", этаких "рядовых программистских войск" — со всеми вытекающими из такого действа последствиями, о чем отлично написал коллега mrozov в посте 06.06.08 13:45 (за что ему отдельное спасибо).
Re[7]: Читай код
От: Vlad_SP  
Дата: 19.05.09 11:19
Оценка:
PS: просьба к модераторам вырезать оверквотинг, произошедший по недосмотру.
Re[7]: Читай код
От: genre Россия  
Дата: 19.05.09 12:57
Оценка: +1
Здравствуйте, Vlad_SP, Вы писали:

V_S>Да я, в общем-то, не утверждаю об "ореоле сакральности и таинства" в программировании и не возражаю против осмысленного следования регламентам и процедурам. Они необходимы. Я возражаю — против низведения сотрудников до уровня "винтиков", этаких "рядовых программистских войск" — со всеми вытекающими из такого действа последствиями, о чем отлично написал коллега mrozov в посте 06.06.08 13:45 (за что ему отдельное спасибо).


я честно говоря не очень понимаю почему "взаимозаменяемость" сотрудников ставят в один рад с "винтиками". это разные вещи
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[2]: Читай код
От: Gaperton http://gaperton.livejournal.com
Дата: 19.05.09 15:49
Оценка:
Здравствуйте, SEDEGOFF, Вы писали:

SED>Спасибо за статью. Мне она напомнила одну вешь. В стакан 200 мл налили 100 мл воды. Так вот есть люди, которые скажут что стакан на половину полон, а другие скажут что стакан на половину пуст. Так и здесь. Опытные программисты, прочитав вашу статью говорили мне — так это же очивидно! А вот молодежь говорит — я так и знал! Документация не нужна. Но при этом прочитать код опытного можеть кто угодно. А вот над кодом молодого... в общем учится, учится и еще раз учится!


SED>Но если честно, в том виде, как эта статья есть — молодым показывать боюсь... ой как боюсь... Что то есть неуловимое для молодых и не испорченных умов. Это что то, на мой взгляд, и заставило большу толпу народа "нападать" на вас с обвинениями в том, что вы проповедуете отказ от кода. Выразить пока в словах не могу, но как только мысль сформируется — я поделюсь


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

То есть, я хотел это сказать. Сказал по факту, видимо, что-то другое . Ну тут уж что получилось — то получилось .
Re[7]: Читай код
От: Gaperton http://gaperton.livejournal.com
Дата: 19.05.09 16:02
Оценка: +2
Здравствуйте, Eye of Hell, Вы писали:

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


Комментарии есть неотъемлемая часть кода, и часть дисциплины написания кода. Я полагаю это до такой степени очевидным, что даже не стал акцентировать на этом внимание. Более того, код может быть "литературным" и понятным, не содержа и единого комментария, и напоминать тарелку со спагетти, даже если он "заправлен" комментариями на 50% как паста в американском ресторане. Так что правильный акцент — не "код должен содержать комментарии", а "код должен быть литературным", ибо "пишется в первую очередь для человека". Этот акцент в статье есть.

То же, что очевидным не является, и что часто игнорируется, например — важность комментариев к коммитам, и наличие процедур контроля вроде code review чтобы все перечисленное заработало на практике, я в дискуссии обозначил отдельно.
Re[2]: Читай код
От: Gaperton http://gaperton.livejournal.com
Дата: 19.05.09 16:14
Оценка:
Здравствуйте, SEDEGOFF, Вы писали:

SED>Но если честно, в том виде, как эта статья есть — молодым показывать боюсь... ой как боюсь... Что то есть неуловимое для молодых и не испорченных умов. Это что то, на мой взгляд, и заставило большу толпу народа "нападать" на вас с обвинениями в том, что вы проповедуете отказ от кода. Выразить пока в словах не могу, но как только мысль сформируется — я поделюсь


Кстати, это свойство можно полезно эксплуатировать. Статью можно использовать как тест при приеме на работу
Re[3]: Читай код
От: Cyberax Марс  
Дата: 19.05.09 16:17
Оценка: +1 :)
Здравствуйте, Gaperton, Вы писали:

SED>>Но если честно, в том виде, как эта статья есть — молодым показывать боюсь... ой как боюсь... Что то есть неуловимое для молодых и не испорченных умов. Это что то, на мой взгляд, и заставило большу толпу народа "нападать" на вас с обвинениями в том, что вы проповедуете отказ от кода. Выразить пока в словах не могу, но как только мысль сформируется — я поделюсь

G>Кстати, это свойство можно полезно эксплуатировать. Статью можно использовать как тест при приеме на работу
Что-то ты Макиавелли перечитался
Sapienti sat!
Re[4]: Читай код
От: Gaperton http://gaperton.livejournal.com
Дата: 19.05.09 18:41
Оценка:
Здравствуйте, Cyberax, Вы писали:

SED>>>Но если честно, в том виде, как эта статья есть — молодым показывать боюсь... ой как боюсь... Что то есть неуловимое для молодых и не испорченных умов. Это что то, на мой взгляд, и заставило большу толпу народа "нападать" на вас с обвинениями в том, что вы проповедуете отказ от кода. Выразить пока в словах не могу, но как только мысль сформируется — я поделюсь

G>>Кстати, это свойство можно полезно эксплуатировать. Статью можно использовать как тест при приеме на работу
C>Что-то ты Макиавелли перечитался

А что такого? Обычная косвенная методика тестирования
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.