Re[5]: Корреляция между стилем и качеством кода
От: AntZ  
Дата: 25.11.07 21:18
Оценка: 28 (8) +37
U>Так лучше:

U>
U>// -------------------------------------
U>// DECLARATION
U>// -------------------------------------

U>void
U>  PrefixSubprefixAction (
U>    int    iParam1,
U>    void*  pParam2);

U>// -------------------------------------
U>// IMPLEMENTATION
U>// -------------------------------------

U>void
U>  PrefixSubprefixAction (

U>    int    iParam1,
U>    void*  pParam2)

U>/*

U>  DESCRIPTION:

U>    ...some description...

U>  PARAMETERS:

U>    iParam1
U>      ...some description...
U>    pParam1
U>      ...some description...

U>  RETURN VALUE:

U>    ...some description...

U>*/

U>{
U>  /*

U>    BODY

U>  */
U>}
U>


Дрянь. Гигантские шапки перед функциями моментально рассинхронизируются с кодом, информация дублируется без всякой надобности. Все "забивают" на апдейт коментариев и получается дерьмо которое состоит из кода и коментариев противоречащих друг другу. Все что можно сказать в коде — должно быть сказано в коде. Эстетически — тоже дерьмо
Re[2]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 19:55
Оценка: -32
U>>специфика — Windows Kernel и GUI
RO>Это как?

U>>Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.

RO>А откуда программер может быть с ним знаком? :-O

U>>И конечно, я смотрю, чтобы бы стиль кода кандидата был не хуже моего.

RO>Как один стиль может быть «хуже» другого?

Довольно глупые вопросы.
Извините, я не знаю как на них отвечать.

P.S.
Вот после таких и подобных им вопросов лично я обычно прощаюсь с соискателем.
STATUS_INVALID_DEVICE_REQUEST
Re[4]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 20:37
Оценка: -8 :))) :))) :))) :))) :)
B>Я, к примеру, понятия не имею как выглядит стиль исходного кода ядра Винды.
B>Никогда не интересовался.

Вот именно.
Зачем мне человек, который ни разу не заглядывал туда?

B>Ну и как сравнивать стили — это тоже вопрос интересный.


Вот об этом я бы с удовольствием пообщался.

B>Вот скажи, что лучше?

B>
B>void my_cool_func();  // 1
B>void myCoolFunc();    // 2
B>


За (1) так вообще руки оторвал бы.
Вот (2) ещё куда ни шло, но тоже убого.

Так лучше:

// -------------------------------------
// DECLARATION
// -------------------------------------

void
  PrefixSubprefixAction (
    int    iParam1,
    void*  pParam2);

// -------------------------------------
// IMPLEMENTATION
// -------------------------------------

void
  PrefixSubprefixAction (

    int    iParam1,
    void*  pParam2)

/*

  DESCRIPTION:

    ...some description...

  PARAMETERS:

    iParam1
      ...some description...
    pParam1
      ...some description...

  RETURN VALUE:

    ...some description...

*/

{
  /*

    BODY

  */
}


B>И как у вас дела с наймом программистов?

B>Проблем нету? Ну тогда вы все делаете правильно

Разумеется, найти специалиста, который соответствует таким запросам, как стиль кода, — не просто.
Но мы пока не жалуемся .
STATUS_INVALID_DEVICE_REQUEST
Re[9]: Корреляция между стилем и качеством кода
От: The Lex Украина  
Дата: 25.11.07 23:17
Оценка: 6 (6) +13
Здравствуйте, Unmanaged, Вы писали:

U>>>Встречный вопрос: с чего вы это взяли?

TL>>С Ваших слов — других исходных данных у меня нет.

U>Ну вот.

U>Значит вы неправильно меня поняли.
U>Но это уже не мои проблемы.

Без обид! Но именно так думают а) начинающие руководители; б) отъявленные самодуры.
По опыту сталкивался и с теми, и с другими. Вообще с первыми на этом их локальном этапе лучше дела не иметь, а со вторыми — не иметь вообще. Но это — голубая (розовая — цвет по вкусу) мечта...
Голь на выдумку хитра, однако...
Re[2]: Да вы хоть обставьтесь минусами :)
От: olegkr  
Дата: 27.11.07 15:41
Оценка: 12 (1) +4 :))) :))) :)))
Здравствуйте, Unmanaged, Вы писали:

U>Граждане, сколько минусов не ставь — а толку не будет всё равно, поймите это.


Граждане поняли.
Re[6]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 21:18
Оценка: -10 :)))
B>Ты мешаешь в кучу стиль кодирования с каким-то узкоспециализированным опытом.

Нет, просто ты недопонял мои мысли, такое бывает.
Разжёвывать мне сейчас лень, кому надо — правильно поймут, что я имел в виду.
STATUS_INVALID_DEVICE_REQUEST
Re: Автора этого кода на работу возьмёте?
От: SergeCpp Россия http://zoozahita.ru
Дата: 26.11.07 08:03
Оценка: 13 (3) +3 :))) :))
Здравствуйте, Unmanaged!

Автора вот этого кода на работу возьмёте?

А вот этого
Автор: SergeCpp
Дата: 08.02.07
?
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re: Корреляция между стилем и качеством кода
От: minorlogic Украина  
Дата: 25.11.07 23:24
Оценка: 7 (2) :))) :))) :)))
Я уверен что ваш подход невероятно эфективен ! так держать , нашей компании очень выгодно чтобы вокруг было меньше адекваьных работодателей !!!
спасибо !
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[7]: Корреляция между стилем и качеством кода
От: Lloyd Россия  
Дата: 25.11.07 21:21
Оценка: 2 (2) +2 :))) :)))
Здравствуйте, Unmanaged, Вы писали:

U>Нет, просто ты недопонял мои мысли, такое бывает.

И часто у вас такое бывает?
Re[3]: Да вы хоть обставьтесь минусами :)
От: Unmanaged Россия ICQ 476611995
Дата: 27.11.07 16:30
Оценка: 56 (5) +2 -1 :)
B>А ты что, их считаешь? Тебя они волнуют?

Позабавило.

B>Могу тебе плюс поставить. Мне не жалко.


Гы, давай.
10 баксов за плюс каждому!
100 за оценку 1.
500 за оценку 2.
И конечно 1000 за 3.

...

Я вообще не понимаю смысла этих согласий / не согласий.

B>Только от плюсов толку будет не больше, чем от минусов.


Ну разумеется.
STATUS_INVALID_DEVICE_REQUEST
Re[8]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 23:13
Оценка: -4 :)))
U>>Встречный вопрос: с чего вы это взяли?
TL>С Ваших слов — других исходных данных у меня нет.

Ну вот.
Значит вы неправильно меня поняли.
Но это уже не мои проблемы.
STATUS_INVALID_DEVICE_REQUEST
Re[5]: Корреляция между стилем и качеством кода
От: elmal  
Дата: 26.11.07 10:14
Оценка: 3 (3) +3
Здравствуйте, Unmanaged, Вы писали:

U>За (1) так вообще руки оторвал бы.

U>Вот (2) ещё куда ни шло, но тоже убого.
Шеф, это называется не стиль программирования, а стиль именования. В разных фирмах в разных проектах он разный.
Переменная может называться m_my_variable, myVariable, mMyVariavbe, MyVariable и т.д. Отрывать надо руки не за то, что человек привык к такому способу наименования, а за то, что он не следует таковым стандартам в конкретном проекте.
Я лично под стилем программированая подразумеваю не скобочки, отступы и т.д (повторяю, в команда этот стиль должен быть ОДИН У ВСЕХ), а некоторые другие вещи, например:

Один напишет так:
int result = 0;

if (a) {
   if(b) {
      // Комментарий плюс 50 строк кода
      for (...) {
         // Комментарий плюс 50 строк кода
         if () {
            // Комментарий плюс 50 строк кода
            try {
               if (c) {
                  // Комментарий плюс 50 строк кода
                  for (int i=0; i<34; ++i) {
                      // Комментарий плюс 50 строк кода
                  }
               }
            } catch (...) {
               //do something
            }

         }
      }
   }
   return result;
} else {
   return null;
}

Вот за такой стиль я сейчас убить готов, хотя в свое время именно так я и писал.

А другой тоже самое уложит вот так:

if (isInputParametersIncorrect(a,b)) {
   return null;
} 

for (int i=0; i<SOME_CONSTANT; ++i) {
   doSomethingComplexInOtherMethod(i);
}

Вот это и есть стиль кодирования, а не скобочки. Как и привычка использовать глобальные переменные, магические числа, копи-пейст, наследование прямоугольника от квадрата (или наоборот) и т.д.
Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 18:13
Оценка: +1 -2 :))
Привет.

Заранее извиняюсь, если поднимаю старую тему — поиском не нашёл.
Речь пойдёт о корреляции между стилем кода программиста и качеством этого же самого кода.

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

Помимо всего прочего сейчас алгоритм при приёме мной на работу программиста (специфика — Windows Kernel и GUI) выглядит так:

...
Смотрим тестовое задание, если не работает - кандидат не прошёл.
...
Смотрим исходный код правильно работающего тестового задания.
Если код не подходит под ряд критериев - кандидат не прошёл.
...


Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.
Далеко не все программисты умеют и хотят писать код хотя бы примерно так.

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

Вопрос №1: правильно ли я поступаю? у кого какой опыт в данном вопросе?
Вопрос №2: насколько высока subj по вашему мнению?

Спасибо за внимание.
За ссылки на обсуждения данного вопроса — отдельное спасибо.
STATUS_INVALID_DEVICE_REQUEST
Re[7]: Корреляция между стилем и качеством кода
От: bkat  
Дата: 25.11.07 21:28
Оценка: +5
Здравствуйте, Unmanaged, Вы писали:

B>>>>Я, к примеру, понятия не имею как выглядит стиль исходного кода ядра Винды.

B>>Ну так где мне его найти?
B>>Подкинь ссылку.

U>Я как-то постил ссылки на RSDN в одном из своих сообщений (см. мои избранные сообщения).

U>То были ссылки на http://depositfiles.com, но их уже удалили, к сожалению.
U>Перезаливать 150 МБ мне сейчас как-то лениво.

Это что, негальщина?
Ну ну...

B>>Извини, но такие вещи тупо декларируются в фирменном "coding guideline",

B>>который просто вручается каждому новичку.

U>Это само собой.


U>Но во-первых, ты просил меня сравнить стили — ты получил, что хотел.


На сравнение стилей не претендовал.
Я просто попросил сравнить 2 способа именования функции.
Это всего лишь один пункт, который опредеется в "coding guideline"

Кстати, а у вас в фирме есть такой "coding guideline"?

B>>Ты уж лучше интересуйся не стилем, а тем фактом, работал ли человек

B>>на проекте, где единый стиль был определен и им необходимо было пользоваться.

U>Интересуюсь.


U>Но честно говоря, я считаю что лучше всего, если человек дошёл до этого сам.

U>Сам понял, что нужно писать читабельно и понятно, что от этого повысится его же собственная производительность.

Об этом все знают. Никто тебе не скажет, что код надо писать плохо и максимально запутанно.
Стиль вырабатывается в работе с другими, а не рождается мучительно в одиночку.
Фирменный "coding guideline" — это способ сэкономить время и максимально эффективно
познакомить с принятыми в фирме правилами.
Ты меня никогда не убедишь, что "дойти до этого самому" будет эффективнее,
чем прочитать документ.
Но если у вас такого дока нету, то конечно, придется доходить самому,
а еще лучше уже заранее знать, что вы ожидаете

У меня, кстати, своего стиля практически нету.
После того, как я сменил несколько мест работы, в которых свои стили,
мне проще забыть свой текущий стиль, и через пару дней перенять другой стиль.
Re: 2 Night Writers
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 22:28
Оценка: -2 :)))
Все понаставили друг другу плюсиков и, довольные своими свершениями, отправились спать .
Извините, это просто смешно со стороны выглядит.

P.S.
Модераторы, а можно удалить тему?
Всё равно imho ничего путного здесь уже не напишут.
STATUS_INVALID_DEVICE_REQUEST
Где можно легально посмотреть код ядра Windows
От: Valery A. Boronin Россия linkedin.com/in/boronin
Дата: 26.11.07 12:14
Оценка: 3 (3) +1
Здравствуйте, bkat, Вы писали:

B>>>Я, к примеру, понятия не имею как выглядит стиль исходного кода ядра Винды.

B>>>Никогда не интересовался.

U>>Вот именно.

U>>Зачем мне человек, который ни разу не заглядывал туда?

B>Ну так где мне его найти?

B>Подкинь ссылку.

see WDK/DDK. там идет код реально работающих в Windows драйверов, то есть часть ядра Windows.

это к вопросу о популярном у не-kernel разработчиков заблуждении, что код ОС недоступен простным смертным легально. А ведь есть еще и университетские программы по которым практически весь код ОС предоставлен каким-то универам, вроде Пражского для обучения\изучения.

Похоже, именно это (см 1й мой параграф) имел ввиду (конечно наряду с подглядыванием в "нелегально утекшие" исходники 2000) топикстартер. Он прав в том что любой специалист в ядре не мог этого (просмотр DDK) не делать и не мог не знать как выглядят куски ядра ибо на них натыкаешься постоянно в процессе гугления и без подглядывания в нелегальный материал.


другой вопрос что в той форме что он пытается донести свою позицию до форума — это гарантированно вызывает негативную реакцию. Да и другие вещи вроде идеального стиля весьма спорны — что мы и наблюдаем в ветке
... << RSDN@Home 1.2.0 alpha rev. 0>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[2]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 20:44
Оценка: :))) :)
B>Есть бесконечное число способов "хорошо" и "читабельно" оформить код.

Абсолютно согласен.

B>То, что для тебя читабельно может оказаться далеко не читабельным для других.


Блондинко — эталон?
Эталон.
Почему?
Потому что светлые волосы привлекают большинство мужчин.
Об этом я и говорю.

Код, который без проблем, не напрягаясь, читает большинство — и есть эталон в моём понимании.

B>Но вот некой излишней категоричностью и

B>однобокостью (типа вера в существование одного эталонного стиля) попахивает.

Излишней?
Возможно.
Но совсем без неё — никак.
STATUS_INVALID_DEVICE_REQUEST
Re: Корреляция между стилем и качеством кода
От: aik Австралия  
Дата: 26.11.07 13:26
Оценка: 21 (2)
Здравствуйте, Unmanaged, Вы писали:

U>Заранее извиняюсь, если поднимаю старую тему — поиском не нашёл.

U>Речь пойдёт о корреляции между стилем кода программиста и качеством этого же самого кода.
U>На данный момент я пришёл к выводу, что связь есть и довольно сильная.
U>Вопрос №1: правильно ли я поступаю? у кого какой опыт в данном вопросе?

Правильно. Все зависит от того, на что именно смотреть. Если тебя всерьез расстраивает название "my_cool_func" вместо "MyCoolFunc" или, скажем, расположение "{", то тогда ты поступаешь неправильно, и тебе явно не стоит оценивать чужой код вовсе — квалицикация слабая. Ничего личного.

U>Вопрос №2: насколько высока subj по вашему мнению?


0.3-0.5.
Re[2]: Корреляция между стилем и качеством кода
От: elmal  
Дата: 26.11.07 10:54
Оценка: 4 (1) +1
Здравствуйте, _Obelisk_, Вы писали:

_O_>Персонально, я не люблю, когда используют tab-ы, вместо space-ов для отступов. Настройки величины tab-ов могут быть разными, потому layout кода может плыть в разных редакторах. А это нехорошо.

Это легко решается. Делается комбинация — табами выделяется отступы, а все выравнивание после отступов ведется пробелами. Например:
(точки читать как пробел)
{
/t        const.int.ddd.=.10;
/t        const.int.b...=.15;

/t        someFunc();  
/t        int.a.=.b 
/t        ......+.c
/t        ..... +.ddd
/t        ..... +.e
/t        ..... +.d   
}

В результате
Re: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.11.07 00:34
Оценка: 2 (2)
Здравствуйте, Unmanaged, Вы писали:

U>Заранее извиняюсь, если поднимаю старую тему — поиском не нашёл.

U>Речь пойдёт о корреляции между стилем кода программиста и качеством этого же самого кода.
. . . .
U>Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.
U>Далеко не все программисты умеют и хотят писать код хотя бы примерно так.

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

Есть много хороших стилей. Не все из них понравятся Вам. Более того, я заглянул вниз по треду, где Вы приводите пример хорошего стиля — на муй вкус он так себе. Слишком много комментариев в коде так же плохо, как и слишком мало — за ними теряется собственно код. Для детальной спецификации функции есть отдельное место — называется документация. В коде достаточно написать, что функция деляет, и ее неожиданные особенности (например, что ее ни в коем случае нельзя вызывать под таким-то спинлоком). Зачем писать параметры в столбик там, где они помещаются в строчку, мне вообще трудно понять. Количество строк, которое одновременно помещается на экране, конечно. Даже на 24'' мониторе. И расходовать их попусту неразумно.

А уж Ваш столь уверенный выбор между my_cool_func() и myCoolFunc() — чистая религия. Юниксовскому человеку в среднем больше понравится первый вариант, виндузятнику — второй. Набирать на клавиатуре удобнее первый.

Да, и я бы, кстати, три раза подумал, прежде чем брать на работу человека, который не скрывает, что он нелегально заглядывал в исходники ядра — мне не нужна перспектива судебного разбирательства с мелкософтом.
Re: Корреляция между стилем и качеством кода
От: yeolahim  
Дата: 26.11.07 23:08
Оценка: 2 (2)
Почитайте Алана Голуба
по крайней мере его требования к стилю очень мотивированы,
в отличии от Ваших, которые крайне профанированы.

Кстати, стандартная библиотека, почти, соответствует Голубовским идеям.
В добавок, коментарии лучше всего делать такими, что-бы их понимал doxygen,
только потому, что это фактически стандарт де-факто.

Тот стиль который Вы привели устарел лет 15 назад,
и если вы нанимаете на работу человека младше 40 и который использует подобный стиль,
то Вы нанимаете идиота ...

В добавок. крамольная мысль
особой корреляции между стилем и качеством кода нет
а читабельность ... код !ПРИНЦИПИАЛЬНО! не читаем, любой. Требование читабельности — фикция.
можно требовать только логичности, структуированности и документированности кода.
Если эти признаки присутствуют, то совершенно не страшно, что в проекте пересекаются 2-3 стиля,
лишь бы не в мелочях.

Те критерии которые вы используете для оценки кода, могут использовать только те кто постиг Дао кода,
Вам еще рано
Re[2]: Что-то мы ушли в сторону от обсуждения
От: AntZ  
Дата: 26.11.07 05:48
Оценка: 1 (1) +1
U>Кстати, граждане, а что это вы так рьяно принялись обсуждать предложенный мной стиль кода?
U>Что же это вы так рьяно стали хаить его, не предлагая никакой альтернативы?

Так Вы ударились в "православие" — взяли один из стилей за канонический, остальные объявили ересью. Стиль может быть разный, важно чтобы он был.

Если программист называет одну функцию GetValue, вторую do_something_smart — то он не следует никакому стилю, даже внутреннему. Для меня переход от do_it_linux_way к ILikeWindows был незвметным и безболезненным.
Re[6]: Корреляция между стилем и качеством кода
От: Maxim S. Shatskih Россия  
Дата: 30.11.07 09:18
Оценка: 1 (1) +1
М>Вы всерьез считаете, что в MS именно кодер пишет спецификацию?
М>По моим недалеким представлениям, с этой шапки (уже для него готовой!) он начинает работать...

В каком-нить сраном .NET (я не про MSCOREE.DLL, а про классы фреймворка) или там SharePoint это, возможно, так и есть, но в ядре, я вас уверяю, дело обстоит совсем иначе.

Исторически ядро было написано группой единомышленников человек в 30-40 (это если считать авторов драйверов под главнейшее железо и авторов основных кернел-модулей типа NTFS, NDIS, SMB клиента и сервера и тому подобного).

Люди давно работали вместе еще в Digital, хорошо сработаны, и при возникновении тех или иных вопросов просто спрашивали друг друга лично.

Понятно, что в этой среде просто не нужны тупые кодеры, а если кодер умный — то почему бы ему и не дать писать свою спецификацию?

Полной внутренней документации на ядро никогда не существовало. Документация в MSDN сделана отдельной командой (DDK support Элиаса Якуба), не имеющей прямого отношения к девелопменту ядра. Сделана эта документация на основе как существующего кода, так и личных бесед с code owners каждого модуля. Багов в ней было — до кучи. Конкурсы объявляли на нахождение лучшего бага.

Сейчас, по сплетням, пишут оную документацию, чтобы удовлетворить судью в иске Еврокомиссии.

P.S. В список подсистем не вошел TCP/IP, и к тому есть причины. Его перетащили за уши из OS/2 LAN Manager 1.x, он даже в другом стиле кодирования написан, чем все остальное ядро, и не переделывался аж до Висты (в Висте как минимум поменяли интерфейсы верхнего края — был TDI transport, стал WSK provider).
Занимайтесь LoveCraftом, а не WarCraftом!
Re[11]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.11.07 17:18
Оценка: 1 (1) +1
Здравствуйте, Maxim S. Shatskih, Вы писали:

Pzz>>Мой point заключается в том, что писание документации — это такая же вдумчивая работа, как писание кода.


MSS>На деле она нужна практически только при раздаче кода _без исходников_, бинарями, внешним людям. Т.е. она нужна только авторам фреймворков, тулкитов и платформ. Причем фреймворков и тулкитов, раздаваемых наружу без исходников.


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

Но Вы правы в том, что при написании документации надо учитывать, для какой аудитории она предназначена.

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


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

Все это не выводится из исходников, и не раскладывается на описания функций и методов. И это гораздо более насущная документация, чем референс по функциям.
Re: Корреляция между стилем и качеством кода
От: bkat  
Дата: 25.11.07 19:57
Оценка: +2
Здравствуйте, Unmanaged, Вы писали:

U>Я имею в виду, что чем менее читабельно выглядят исходники программиста, тем менее качественный код он пишет.


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

U>Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.

U>Далеко не все программисты умеют и хотят писать код хотя бы примерно так.

Что такое эталон?
Это то, как вы у себя в фирме оформляете код?
Ну разумеется не все знают, как вы это делаете.

Или это то, что тобой принимается как наилучший стиль?
Это вызывает еще большее недоумение.
Тебе что, не встречались довольно разные стили,
которые позволяют оформлять хорошо читаемый код?

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

U>И конечно, я смотрю, чтобы бы стиль кода кандидата был не хуже моего.


Ну ну...

U>Вопрос №1: правильно ли я поступаю? у кого какой опыт в данном вопросе?

U>Вопрос №2: насколько высока subj по вашему мнению?

Правильно или не правильно — фиг знает.
Но вот некой излишней категоричностью и
однобокостью (типа вера в существование одного эталонного стиля) попахивает.
Re[3]: Корреляция между стилем и качеством кода
От: C0s Россия  
Дата: 25.11.07 20:02
Оценка: +2
Здравствуйте, Unmanaged, Вы писали:

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

U>>>специфика — Windows Kernel и GUI

RO>>Это как?

вы пишете windows? вы пишете абстрактный GUI?

U>>>Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.

RO>>А откуда программер может быть с ним знаком? :-O

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

U>>>И конечно, я смотрю, чтобы бы стиль кода кандидата был не хуже моего.

RO>>Как один стиль может быть «хуже» другого?

отсутствие стиля — плохо, а вот два стиля — ну как их сравнить? один ставит два пробела, а другой — tab и ставит в настройках tab = 2 пробела, что лучше?
какие вообще критерии для сравнения стиля ты используешь?

U>P.S.

U>Вот после таких и подобных им вопросов лично я обычно прощаюсь с соискателем.

да?
Re[3]: Корреляция между стилем и качеством кода
От: bkat  
Дата: 25.11.07 20:02
Оценка: +2
Здравствуйте, Unmanaged, Вы писали:

U>>>специфика — Windows Kernel и GUI

RO>>Это как?

U>>>Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.

RO>>А откуда программер может быть с ним знаком? :-O

U>>>И конечно, я смотрю, чтобы бы стиль кода кандидата был не хуже моего.

RO>>Как один стиль может быть «хуже» другого?

U>Довольно глупые вопросы.

U>Извините, я не знаю как на них отвечать.

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

Вот скажи, что лучше?
void my_cool_func();  // 1
void myCoolFunc();    // 2


U>P.S.

U>Вот после таких и подобных им вопросов лично я обычно прощаюсь с соискателем.

И как у вас дела с наймом программистов?
Проблем нету? Ну тогда вы все делаете правильно
Re[5]: Корреляция между стилем и качеством кода
От: bkat  
Дата: 25.11.07 20:52
Оценка: +2
Здравствуйте, Unmanaged, Вы писали:

B>>Я, к примеру, понятия не имею как выглядит стиль исходного кода ядра Винды.

B>>Никогда не интересовался.

U>Вот именно.

U>Зачем мне человек, который ни разу не заглядывал туда?

Ну так где мне его найти?
Подкинь ссылку.

B>>Ну и как сравнивать стили — это тоже вопрос интересный.


U>Вот об этом я бы с удовольствием пообщался.


B>>Вот скажи, что лучше?

B>>
B>>void my_cool_func();  // 1
B>>void myCoolFunc();    // 2
B>>


U>За (1) так вообще руки оторвал бы.

U>Вот (2) ещё куда ни шло, но тоже убого.

U>Так лучше:


Извини, но такие вещи тупо декларируются в фирменном "coding guideline",
который просто вручается каждому новичку.
Совершенно формальная штука.
Ты уж лучше интересуйся не стилем, а тем фактом, работал ли человек
на проекте, где единый стиль был определен и им необходимо было пользоваться.
Re: Что-то мы ушли в сторону от обсуждения
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 21:45
Оценка: -2
Subj.

Кстати, граждане, а что это вы так рьяно принялись обсуждать предложенный мной стиль кода?
Что же это вы так рьяно стали хаить его, не предлагая никакой альтернативы?
Что ж вы так близко принимаете мой пост к сердцу, если для многих тут "сменить стиль на принятый на работе — это не проблема", ммм?
Так что, умнички мои, — серьёзнее, серьёзнее.

А вообще давайте перечитаем мой начальный пост и попробуем ответить на поставленные вопросы, а не писать всё что первое в голову придёт.
STATUS_INVALID_DEVICE_REQUEST
Re[3]: Что-то мы ушли в сторону от обсуждения
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 22:00
Оценка: -2
B>Ну я тебе точно предложил альтернативу.
B>Я предложил оценивать не конкретный стиль, а спрашивать работал ли человек там,
B>где стиль был зафиксирован плюс оценить способность перейти на новый стиль,
B>каким бы он не был.

Вот!
Уже лучше.
Просьба к остальным: продолжать в таком же духе.

Если бы при этом ещё не выливались вёдра говна неизвестно на что/кого, было бы совсем хорошо.
Сдержанее нужно быть, сдержанее.
Язык, говорят, до Киева доведёт, да вот можно и не дойти... до Киева-то...
Так что вы это... осторожнее...
STATUS_INVALID_DEVICE_REQUEST
Re[2]: Корреляция между стилем и качеством кода
От: Александр Каширин  
Дата: 26.11.07 10:43
Оценка: +2
Здравствуйте, _Obelisk_, Вы писали:

_O_>Персонально, я не люблю, когда используют tab-ы, вместо space-ов для отступов. Настройки величины tab-ов могут быть разными, потому layout кода может плыть в разных редакторах. А это нехорошо.


Это справедливо только тогда, когда в коде, в котором используется табуляция, кто-то вносил исправления и пренебрег использования табуляции, вставив туда пробелы по своему усмотрению (согласно собственным настройкам). Это есть нарушение стиля, и именно это приводит к плаванью layout. А код с чистыми табуляциями видится лучшим как минимум с той точки зрения, что не у всех одинаковые широкоформатные мониторы, и кому-то захочется изменить настройки IDE так, чтобы на его компактном мониторе Tab соответствовал не стандартным 8 символам, а, например, 3. Код останется прекрасно читабельным и при этом не будет постоянно "скрываться" за правой границей монитора.
Re[2]: Корреляция между стилем и качеством кода
От: shrecher  
Дата: 26.11.07 13:44
Оценка: +2
Здравствуйте, Roman Odaisky, Вы писали:


U>>Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.

RO>А откуда программер может быть с ним знаком? :-O


как откуда?! Открываем ntddk (wdk) идем в каталог src и находим сырцы ядра. Там полно виндовских драйверов. Хочется разобраться как принципиально работает ntfs.sys см. код fastfat.sys, cdfs. Логика работы подобна, кончено, детали и форат другие.

Стиль кода, кстати, очень характерный для всех драйверов, никакого c++. Доморощенные списки и очереди. Нормально названные переменные и пр.
Re[2]: Автора этого кода на работу возьмёте?
От: Privalov  
Дата: 27.11.07 08:15
Оценка: +2
Здравствуйте, SergeCpp, Вы писали:

SC>Автора вот этого кода на работу возьмёте?


Автор этой программы привел ссылку на первоисточник. Если открыть математическое описание алгоритма, то его реализацию читать будет легче в таком виде, чем с длинными именами. А если не открывать, то разобраться все равно практически невозможно. Реализация математического алкоритма записана в нотации, близкой к математической, насколько это возможно. И это вполне логично в данной ситуации, IMHO.
Re[4]: Да вы хоть обставьтесь минусами :)
От: Uzumaki Naruto Ниоткуда  
Дата: 27.11.07 17:55
Оценка: +1 :)
Куда за деньгами подъезжать?

p.s. Пацан сказал, пацан сделал.

Re: Корреляция между стилем и качеством кода
От: Maxim S. Shatskih Россия  
Дата: 28.11.07 06:15
Оценка: +2
U>Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.
U>Далеко не все программисты умеют и хотят писать код хотя бы примерно так.

У Борланда во фреймворках начала 90х был код еще лучше. Но код ядра Windows (примеры DDK) действительно очень хорош.

На самом деле, если человек пишет угребищный код — то у него в первую очередь плохой опыт работы в серьезных командах.
Занимайтесь LoveCraftом, а не WarCraftом!
Re[2]: Да вы хоть обставьтесь минусами :)
От: AntZ  
Дата: 28.11.07 08:23
Оценка: +2
U>Сколько минусов мне понаставили, аж валяюсь от смеха.
U>Ни одного плюса, если не считать + от IID. Кстати, интересно — за что?

Имидж супермена нанимающего людей которые владеют "правильным" стилем кодирования (а правильный это CSPTRBRZPTR ILoveWindowsStyle(PRZBRDMUX ThisIsSmartParameterNumberOne, 15 more parameters)) моментально разрушен.

Вижу мальчика из детского сада, который жалуется воспитателю "а Вася сказал что я дурак".

P.S. Отбросьте предрассудки и откройте сознание, нет "единственно правильного" стиля кодирования. Если канидидат четко придерживается стиля который мне не нравится, то это не значит что он плохой программер. Мне например совсем не нравятся виндовые типы типа LPСTSTR (который LONG POINTER to CONSTANT T STRING, притом пофиг что long, far и near pointerов нет уже лет десять). А теперь скажите мне что в винде означает тип NMSHN, хотя бы идентифицируйте где его искать? Это Вы называете стилем достойным подражания?
Re[2]: Корреляция между стилем и качеством кода
От: AntZ  
Дата: 28.11.07 08:59
Оценка: +2
MSS>У Борланда во фреймворках начала 90х был код еще лучше. Но код ядра Windows (примеры DDK) действительно очень хорош.

Примеры DDK — код вылизанный для юзеров, думаю что требования к "open source" на порядок выше, чем к "закрытому" коду. Некоторые части виндовс написаны блестяще, некоторые просто безобразно. На мой взгляд самый бездарный кусок Windows — Shell. Набор разрозненных функций, названных как попало с уродскими структурами в виде параметров, работающих через одно место сзади и плохо документированных.

MSS>На самом деле, если человек пишет угребищный код — то у него в первую очередь плохой опыт работы в серьезных командах.


Не факт. Один и тот-же человек может написать блестящий код, а может полное дерьмо, причем практически в одно время.
Re[5]: Да вы хоть обставьтесь минусами :)
От: Unmanaged Россия ICQ 476611995
Дата: 28.11.07 14:44
Оценка: -1 :)
U>>500 за оценку 2.
_O_>Извините, когда я смогу получить свои 500 долларов ?

Здесь
Автор: Unmanaged
Дата: 27.11.07

И ведь прав был я, да, прав, — халявщиков тут предостаточно .
STATUS_INVALID_DEVICE_REQUEST
Re[10]: Корреляция между стилем и качеством кода
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 26.11.07 10:11
Оценка: 1 (1)
Здравствуйте, The Lex, Вы писали:

TL>Без обид! Но именно так думают а) начинающие руководители; б) отъявленные самодуры.


ну.. яб не стал ровнять начинающих руководителей и самодуров
но, в целом, подмечено очень верно. какой-то юношеский максимализм у товарища присутствует. хотя, возможно, эдакая антиреклама фирмы, сейчас кто либо брякнет название компании автора топика, и прослывет она еще одной нежелательной для прохождения собеседований компанией.
Re[6]: Корреляция между стилем и качеством кода
От: elmal  
Дата: 26.11.07 11:12
Оценка: 1 (1)
Здравствуйте, SP_, Вы писали:

SP_>Да, сходите поотрывайте руки товарищам из комитета стандартизации С++. Тем самым, которые такого стиля в stl понапихивали. Всяким там Страуструпам, Саттерам, Абрахамсам и иже с ними. Всякие там lexicographical_compare, bidirectional_iterator_tag панаписывали панимаишь ли

Понаотрывать руки надо за то, что стили в MFC один, в STL другой, в WinAPI третий, в unix kernel четвертый. В результате какой бы стиль для проекта не выберешь — один черт однообразия не будет, а будет мешанина из стилей. Плохи не стили сами по себе, а то, что очень проблематично на C++ написать проект в едином стиле, используя не самописные библиотеки.
Но тут не разработчики виноваты, а то, что исторически сложилось, что над стилями стали задумываться тогда, когда уже много чего стало написано, и никакой переделке уже не подлежит. А виноват в этом не Страуструп, а Керниган с Ритчи, но Си писался так давно, что винить их в том, что сразу не задумались над стилем кодирования, рука не поднимается.
Re[3]: Корреляция между стилем и качеством кода
От: Denwer Россия  
Дата: 29.11.07 07:48
Оценка: 1 (1)
Здравствуйте, Unmanaged, Вы писали:

U>>>специфика — Windows Kernel и GUI

RO>>Это как?

U>>>Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.

RO>>А откуда программер может быть с ним знаком? :-O

U>>>И конечно, я смотрю, чтобы бы стиль кода кандидата был не хуже моего.

RO>>Как один стиль может быть «хуже» другого?

U>Довольно глупые вопросы.

U>Извините, я не знаю как на них отвечать.

U>P.S.

U>Вот после таких и подобных им вопросов лично я обычно прощаюсь с соискателем.

С годами все больше убеждаюсь, что самый лучший критерий отбора, поработать вместе 1 месяц.

ЗЫ: Ну ответь мне какой стиль расстановки лучше(читабельнее), когда скобочка на этой же строке(JAVA стиль его называют) и когда на новой строке? Если ты ответишь что какой то лучше а другой хуже, я бы тебя тоже на работу не взял . Потому что тебе трубно будет работать с чужим кодом. Я тоже приверженец своего стиля, но я его не навязываю другим. Вообще такой подход к отбору кандидатов, смахивает на собеседование с HR, а не с программистом. Вот когда чел пишет совсем без стиля(а такие кстати есть), т.е. пишет буковки как придется, тогда согласен, с ним трудно писать код, а тем более его саппортить.
Re[9]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 29.11.07 23:47
Оценка: 1 (1)
Здравствуйте, NikeByNike, Вы писали:

NBN>Мы немного корячили доксиджен и с помощью напильника получали довольно сносный формат документации. Правда врядли кто то из разработчиков решится это повторить...


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

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

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

Ковырянием же доксигена можно, наверное, повлиять на стиль, в котором он форматирует свой output. Но я говорю совсем не об этом.
Re[4]: Корреляция между стилем и качеством кода
От: Maxim S. Shatskih Россия  
Дата: 30.11.07 09:09
Оценка: 1 (1)
Pzz>Если нет, то что за радость от того, что они механически чекинятся одновременно с функцией?

Не запускать отдельные тулы для чтения документации. Это раз. Документация обязательно видна и мозолит глаза при работе с кодом, это два.

А что за радость в отдельной документации вне комментов?

MSS>>Если параметров просто много — то есть смысл, чтобы четче понимать, где какой параметр.

Pzz>Если параметров просто много, значит функция просто продумана плохо.

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

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


Конкретику можно? какое именно действие, какие шаги, как размазано.

Есть такое подозрение, что после приведения вами примеров станет ясно, что причина этого не в стиле кодирования DDK, а в архитектуре ядра NT.

Pzz>Тех, кто учился программировать по DDK, надо долго и мучительно переучивать.


Смотря что разработчикам предстоит разрабатывать. Если что угодно в ядре виндов — то не нужно переучивать, DDK есть истина в последней инстанции.

Причина делать такое утверждение очень проста: программируют, в частности, под платформу. Я понимаю, что программируют еще и под требования, и под соображения о красоте программирования — но если платформа достаточно сложна, то соображения "правильно воткнуться в платформу" уж точно перевешивают ЛЮБЫЕ (еще раз all caps — ЛЮБЫЕ) соображения красоты кода из любой литературы.

Ядро НТ — достаточно сложная платформа с кучей тонких нюансов, которые могут породить кучу неприятных сложных в поиске багов именно в месте стыка "ваш код-платформа". Потому именно это место стыка начинает становиться _главным_ в вашем коде, а вовсе не его внутренняя красота.
Занимайтесь LoveCraftом, а не WarCraftом!
Re: Корреляция между стилем и качеством кода
От: Roman Odaisky Украина  
Дата: 25.11.07 19:24
Оценка: +1
Здравствуйте, Unmanaged, Вы писали:

U>специфика — Windows Kernel и GUI

Это как?

U>Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.

А откуда программер может быть с ним знаком? :-O

U>И конечно, я смотрю, чтобы бы стиль кода кандидата был не хуже моего.

Как один стиль может быть «хуже» другого?
До последнего не верил в пирамиду Лебедева.
Re[3]: Корреляция между стилем и качеством кода
От: raydac Эстония http://www.igormaznitsa.com
Дата: 25.11.07 21:05
Оценка: +1
U>Код, который без проблем, не напрягаясь, читает большинство — и есть эталон в моём понимании.

код, при существующих и применяющихся концепциях языков программирования, без напряжения может понимать только тот кто его написал, да и то если его не просят вернуться к нему через месяц другой после написания.. так же как у алгоритмов и литературных произведений, есть бесконечное количество стилей и если чел пишет неперевариваемый код, но комментирует каждую строку и общие идеи то это уже неплохо
так как стиль вырабатывается годами (как я и писал выше), то ждать чуда в том что придет готовенькое не стоит, так как это готовенькое скорее всего придет не на собеседование, а его приведет владелец конторы и он сам глянет ваше резюме и будет вызвать вас в кабинет, каждую встречу начиная словами — "я 20 лет код писал, а теперь вот решил поруководить.. надо бы вам оптимизировать ваш стиль кодирования"
https://github.com/raydac
Re[6]: Корреляция между стилем и качеством кода
От: Roman Odaisky Украина  
Дата: 25.11.07 21:27
Оценка: :)
Здравствуйте, AntZ, Вы писали:

U>>Так лучше:

AZ>Дрянь <…> дерьмо

Каким-то чудом с использованием этого стиля была написана целая ОС… ее даже используют… новые версии выпускают.
До последнего не верил в пирамиду Лебедева.
Re[6]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 21:28
Оценка: :)
AZ>Дрянь.

Конечно, вариант не идеален и в своих проектах я использую чуть другой.

AZ>Гигантские шапки перед функциями моментально рассинхронизируются с кодом


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

AZ>информация дублируется без всякой надобности.


Где?

AZ>Все "забивают" на апдейт коментариев...


А вы обновляете их ежедневно ?
Наверное, глупо.

При нормально поставленном процессе это необходимо делать раз в месяц, а то и реже.

AZ>...и получается дерьмо которое состоит из кода и коментариев противоречащих друг другу.


См. выше.

AZ>Все что можно сказать в коде — должно быть сказано в коде.


Вообще бред сивой кобылы.

AZ>Эстетически — тоже дерьмо


Ok, жду ваш вариант.

P.S.
Кстати, всех желающих приглашаю померятся стилями ...
STATUS_INVALID_DEVICE_REQUEST
Re[5]: Что-то мы ушли в сторону от обсуждения
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 22:16
Оценка: :)
B>Странный ты.

Знаю.
Я странный, верно, но справедливый.
Уж как хотите понимайте.

B>Я в общем из дискусии выхожу.


Логично, ты ведь уже высказал своё мнение.
STATUS_INVALID_DEVICE_REQUEST
Re[6]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 22:58
Оценка: +1
TL>Извините, тут вмешаюсь и я: Вы серьезно "играете в игру на угадывание стиля"?

Встречный вопрос: с чего вы это взяли?

TL>А когда работаете, вы тоже не даете документа "Code Convention" на прочтение, а "просто требуете соответствия стилю"?


Я совсем на убогого похож, да?
После принятия на работу, разумеется, программист получает все необходимые документы.

TL>Имхо, если и применять подобную методику оценки, то в ключе написания тестового кода в соответствии с _выданным_ Code Convention. Вот тут действительно можно проверить очень важный для работы в большой команде навык — следования общему стилю исходного кода.


Вот!
Вот ещё одна интересная мысль !
Побольше бы таких.

TL>...но это как раз ярчайшее исключение, а не правило, достойное применения другими.


Возможно, возможно.
STATUS_INVALID_DEVICE_REQUEST
Re[3]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.11.07 02:26
Оценка: +1
Здравствуйте, olegkr, Вы писали:

Pzz>>А уж Ваш столь уверенный выбор между my_cool_func() и myCoolFunc() — чистая религия. Юниксовскому человеку в среднем больше понравится первый вариант, виндузятнику — второй. Набирать на клавиатуре удобнее первый.


O>Кстати, почему удобнее? Вроде телодвижений побольше, надо жать не Shift+[C], к примеру, а Shift+[-],[c]. Лишнюю клавишу нажимать приходится


Не знаю, удобнее и все. ПриВотТакомВотСтиле случается, что не та буква оказывается заглавной. А_при_вот_таком почему-то не случается.
Re[6]: Что-то мы ушли в сторону от обсуждения
От: Кэр  
Дата: 26.11.07 05:23
Оценка: :)
Здравствуйте, Unmanaged, Вы писали:

U>Я странный, верно, но справедливый.


Ужас
Re[4]: Корреляция между стилем и качеством кода
От: Roman Odaisky Украина  
Дата: 26.11.07 08:51
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>Не знаю, удобнее и все. ПриВотТакомВотСтиле случается, что не та буква оказывается заглавной. А_при_вот_таком почему-то не случается.


Мне нравится вотТакой + ВотТакой. вотТак именуются функции, ВотТак — классы. Наверное, придумал это немец.

У стиля standard_template_library есть то преимущество, что там можно по-человечески писать аббревиатуры — что лучше, ReadHtmlCode или read_HTML_code?
До последнего не верил в пирамиду Лебедева.
Re[5]: Корреляция между стилем и качеством кода
От: SP_ Украина  
Дата: 26.11.07 09:58
Оценка: +1
Здравствуйте, Unmanaged, Вы писали:


B>>Вот скажи, что лучше?

B>>
B>>void my_cool_func();  // 1
B>>void myCoolFunc();    // 2
B>>


U>За (1) так вообще руки оторвал бы.


Да, сходите поотрывайте руки товарищам из комитета стандартизации С++. Тем самым, которые такого стиля в stl понапихивали. Всяким там Страуструпам, Саттерам, Абрахамсам и иже с ними. Всякие там lexicographical_compare, bidirectional_iterator_tag панаписывали панимаишь ли
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Автора этого кода на работу возьмёте?
От: SkyDance Земля  
Дата: 26.11.07 10:03
Оценка: +1
SC>Автора вот этого кода на работу возьмёте?

Не путайте код и сэмплы. Сэмплы как сэмплы. Но напостоянку и в больших проектах — такой Кнут нам не нужен Вы что ж думаете, кто-то будет брать Кнута как С++ кодера ? Порадовали, право слово.
Re[5]: Корреляция между стилем и качеством кода
От: MikePetrichenko Беларусь www.btframework.com
Дата: 26.11.07 11:54
Оценка: +1
Здравствуйте, Unmanaged, Вы писали:

U>Так лучше:


U>[ccode]

U>// -------------------------------------
U>// DECLARATION
U>// -------------------------------------

U>void

U> PrefixSubprefixAction (
U> int iParam1,
U> void* pParam2);

За это руки оторвать. Сразу. Нафига мне прорываться через пятиметровый список параметров, если я хочу видеть КАК оно работает. Хотя, конечно, это сильно зависит от функции.

Да. И у MS в каждом файле свой "стиль". Вы лучше SDK полистайте, а не пиратские сырцы фиг знает чего.
Bluetooth, IrDA, WiFi and Serial Ports SDK for .NET, ActiveX, C++ and VCL
Spektrum Telemetry Log File Viewer
Re[2]: Автора этого кода на работу возьмёте?
От: Unmanaged Россия ICQ 476611995
Дата: 26.11.07 13:58
Оценка: :)
SC>Автора вот этого кода на работу возьмёте?
SC>А вот этого
Автор: SergeCpp
Дата: 08.02.07
?


Такого убожества в плане стиля я ещё не видел, право слово.
По мне, так пусть лучше код будет длиннее, но понятнее.
STATUS_INVALID_DEVICE_REQUEST
Re[2]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 27.11.07 00:19
Оценка: +1
Y>Те критерии которые вы используете для оценки кода, могут использовать только те кто постиг Дао кода,
Y>Вам еще рано

Спасибо за ваше мнение.
STATUS_INVALID_DEVICE_REQUEST
Re[3]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 27.11.07 15:31
Оценка: +1
BPP>>Запусти Visual Studio 2005 и проверь результат кода:
BPP>>for (int i = 0; i < 5; i++)
BPP>> if (i)
BPP>> printf("%d\n", i);
BPP>>и кода:
BPP>>for (int i = 0; i < 5; i++) {
BPP>> if (i)
BPP>> printf("%d\n", i);
BPP>>}
BPP>>код продуктов MS видимо просто идеален

АК>Не удержался, таки попросил товарища проверить это на VS 2005 SP1. Оба куска кода работают одинаково (что, собственно, и ожидалось).


Было бы странно, если бы они работали по-разному.

АК>А в чем подвох?


Мне тоже интересно.
STATUS_INVALID_DEVICE_REQUEST
Re[6]: B0rG, здесь-то за что минус?
От: Unmanaged Россия ICQ 476611995
Дата: 28.11.07 17:26
Оценка: -1
STATUS_INVALID_DEVICE_REQUEST
Re[5]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 29.11.07 11:56
Оценка: +1
Здравствуйте, landerhigh, Вы писали:

Pzz>>Они (комменты), наверное еще и апдейтятся автоматически? Т.е., поменял поведение функции, глядь, комменты сами и изменились? Или, может быть, современные компиляторы научились хотя бы выдавать предупреждение о несоответствии того, что написано в комменте и того, что написано в коде?

L>Проекту doxygen уже 10 лет как стукнуло. Если, к примеру, параметры функции названы правильно, а не имеют вид вроде Param1, и само имя функции отображает ее назначение, то генерируется вполне читаемая документация. С типами аргументов и возвращаемого значения. За исключением вырожденных случаев вроде функций в 500 строк, в которых все равно без поллитры не разберешься.

И что, доксиген сам проверяет соответствие комментария и кода функции?

На мой взгляд, доксигеновская документация годится только на то, чтобы показывать большому начальству со словами, вот у нас документация тоже есть. Потому что reference по функциям или по методам без объяснения картины в целом нифига не помогает чего-либо понять.
Re[11]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.11.07 20:56
Оценка: +1
Здравствуйте, The Lex, Вы писали:

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


А зачем это говорить в исходниках? У вас что, нет системы контроля версий? Вот в ее логах и скажите.

Кстати, бывает еще, что система контроля версий интегрирована с багтракером. Т.е., вы закрываете багу и чекините изменения одним движением. Мне, правда, не попадалось удобной реализации, но идея хорошая.
Re: Корреляция между стилем и качеством кода
От: raydac Эстония http://www.igormaznitsa.com
Дата: 25.11.07 18:29
Оценка:
есть такое дело, но вырабатывается стиль годами и качество кода тоже вырабатывается годами..
лично я еще смотрю на качество написания кода на бумаге
https://github.com/raydac
Re[2]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 18:49
Оценка:
R>есть такое дело, но вырабатывается стиль годами и качество кода тоже вырабатывается годами..

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

R>лично я еще смотрю на качество написания кода на бумаге


Зачем?
STATUS_INVALID_DEVICE_REQUEST
Re[3]: Корреляция между стилем и качеством кода
От: raydac Эстония http://www.igormaznitsa.com
Дата: 25.11.07 18:53
Оценка:
U>Абсолютно верно.
U>Таким образом, это хороший способ, чтобы отсеять джуниоров и "весьма средненьких".

только всегда надо еще уточнять, так ли задача требует отсева

R>>лично я еще смотрю на качество написания кода на бумаге

U>Зачем?
бумага в отличии от компьютера — показывает ход мысли, а не только результат
https://github.com/raydac
Re[4]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 19:01
Оценка:
R>только всегда надо еще уточнять, так ли задача требует отсева

Разумеется, всё зависит от задачи.

R>>>лично я еще смотрю на качество написания кода на бумаге

R>бумага в отличии от компьютера — показывает ход мысли, а не только результат

Ясно.
Хотя, imho, написание кода во время собеседования необходимо проводить в обстановке, максимально приближённой к рабочей.
STATUS_INVALID_DEVICE_REQUEST
Re[4]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 20:57
Оценка:
C0s>вы пишете windows? вы пишете абстрактный GUI?

Например, драйвера режима ядра.
Для вас это не было понятно, когда я написал "Windows Kernel"?
Что ж, значит не судьба нам с вами работать вместе.

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

U>>>>Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.

RO>>>А откуда программер может быть с ним знаком? :-O

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

C0s>если человек не работал в MS и не писал windows, как он может знать, как там ядро написано?

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

См. выше.
А уж "как" — это другой вопрос.

RO>>>Как один стиль может быть «хуже» другого?


А по вашему все стили одинаковы ?

C0s>отсутствие стиля — плохо


Это равносильно плохому стилю.

C0s>а вот два стиля — ну как их сравнить?

C0s>какие вообще критерии для сравнения стиля ты используешь?

Например, сравнить читабельность обоих.

U>>Вот после таких и подобных им вопросов лично я обычно прощаюсь с соискателем.

C0s>да?

Да.
STATUS_INVALID_DEVICE_REQUEST
Re[6]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 21:08
Оценка:
B>>>Я, к примеру, понятия не имею как выглядит стиль исходного кода ядра Винды.
B>Ну так где мне его найти?
B>Подкинь ссылку.

Я как-то постил ссылки на RSDN в одном из своих сообщений (см. мои избранные сообщения).
То были ссылки на http://depositfiles.com, но их уже удалили, к сожалению.
Перезаливать 150 МБ мне сейчас как-то лениво.

B>Извини, но такие вещи тупо декларируются в фирменном "coding guideline",

B>который просто вручается каждому новичку.

Это само собой.

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

B>Ты уж лучше интересуйся не стилем, а тем фактом, работал ли человек

B>на проекте, где единый стиль был определен и им необходимо было пользоваться.

Интересуюсь.

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

А для некоторых менять стиль может быть напряжно.
STATUS_INVALID_DEVICE_REQUEST
Re[4]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 21:11
Оценка:
R>код, при существующих и применяющихся концепциях языков программирования, без напряжения может понимать только тот кто его написал, да и то если его не просят вернуться к нему через месяц другой после написания.. так же как у алгоритмов и литературных произведений, есть бесконечное количество стилей и если чел пишет неперевариваемый код, но комментирует каждую строку и общие идеи то это уже неплохо
R>так как стиль вырабатывается годами (как я и писал выше), то ждать чуда в том что придет готовенькое не стоит, так как это готовенькое скорее всего придет не на собеседование, а его приведет владелец конторы и он сам глянет ваше резюме и будет вызвать вас в кабинет, каждую встречу начиная словами — "я 20 лет код писал, а теперь вот решил поруководить.. надо бы вам оптимизировать ваш стиль кодирования"

20 лет — это вы конечно хватили.
Свой стиль я вырабатывал примерно 2 года.
STATUS_INVALID_DEVICE_REQUEST
Re[5]: Корреляция между стилем и качеством кода
От: bkat  
Дата: 25.11.07 21:14
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>Kernel-программер должен быть с ними знаком хотя бы поверхностно.

U>Иначе я не поверю, что это — kernel-программер .

Ты мешаешь в кучу стиль кодирования с каким-то узкоспециализированным опытом.
Re[3]: Поясню
От: Roman Odaisky Украина  
Дата: 25.11.07 21:24
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>>>специфика — Windows Kernel и GUI

RO>>Это как?

U>>>Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.

RO>>А откуда программер может быть с ним знаком? :-O

U>>>И конечно, я смотрю, чтобы бы стиль кода кандидата был не хуже моего.

RO>>Как один стиль может быть «хуже» другого?

U>Довольно глупые вопросы.

U>Извините, я не знаю как на них отвечать.

1. Меня просто слегка позабавило сочетание «Windows Kernel» и «GUI». Я вполне представляю себе, с чем связана разработка одного и другого, но что у этих областей общее… хтозна.

2. Исходный код ядра Windows не распространяется. В то же время ты писал, что «[k]ernel-программер должен быть с ними знаком хотя бы поверхностно». У вас на работу нанимают исключительно бывших сотрудников одного определенного отдела корпорации Майкрософт?

3. Некоторые стили кодирования явно плохие, и то можно сказать, что это разновидности одного стиля — отсутствия стиля. Но сравнивать один стиль с другим?… Ты писал, что именование «void myCoolFunction()» убого. Что же, регистр одного символа — это и есть грань убогости? Или эта функция должна была выглядеть так:
void
  MyCoolFunction (
    );

void
  MyCoolFunction (

    )

/*

  (Some useful comments)

*/

{
  . . .
}
?
До последнего не верил в пирамиду Лебедева.
Re[4]: Вот теперь более понятно
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 21:35
Оценка:
RO>1. ...но что у этих областей общее…

Почти ничего.
А вам кто-то сказал что у них есть что-то общее?

RO>2. У вас на работу нанимают исключительно бывших сотрудников одного определенного отдела корпорации Майкрософт?


Нет.

RO>3. Ты писал, что именование «void myCoolFunction()» убого. Что же, регистр одного символа — это и есть грань убогости?


Для меня — да.

RO>Или эта функция должна была выглядеть так:

RO>
RO>void
RO>  MyCoolFunction (
RO>    );

RO>void
RO>  MyCoolFunction (

RO>    )

RO>/*

RO>  (Some useful comments)

RO>*/

RO>{
RO>  . . .
RO>}
RO>
?


Так несомненно лучше.
STATUS_INVALID_DEVICE_REQUEST
Re[5]: Вот теперь более понятно
От: bkat  
Дата: 25.11.07 21:38
Оценка:
Здравствуйте, Unmanaged, Вы писали:

RO>>
RO>>void
RO>>  MyCoolFunction (
RO>>    );

RO>>void
RO>>  MyCoolFunction (

RO>>    )

RO>>/*

RO>>  (Some useful comments)

RO>>*/

RO>>{
RO>>  . . .
RO>>}
RO>>
?


U>Так несомненно лучше.


Чтобы сэкономить время на поиск программеров, вы можете просто зафиксировать свои представления
о хорошем стиле и поместить их на фирменный сайт.
Тем самым вы избавите себя от тех кандидатов, которые не захотят писать код в таком стиле
Re[6]: Вот теперь более понятно
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 21:45
Оценка:
B>Чтобы сэкономить время на поиск программеров, вы можете просто зафиксировать свои представления
B>о хорошем стиле и поместить их на фирменный сайт.
B>Тем самым вы избавите себя от тех кандидатов, которые не захотят писать код в таком стиле

Интересная мысль.
Спасибо за идейку .
STATUS_INVALID_DEVICE_REQUEST
Re[2]: Что-то мы ушли в сторону от обсуждения
От: bkat  
Дата: 25.11.07 21:50
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>Subj.


U>Кстати, граждане, а что это вы так рьяно принялись обсуждать предложенный мной стиль кода?

U>Что же это вы так рьяно стали хаить его, не предлагая никакой альтернативы?

Ну я тебе точно предложил альтернативу.
Я предложил оценивать не конкретный стиль, а спрашивать работал ли человек там,
где стиль был зафиксирован плюс оценить способность перейти на новый стиль,
каким бы он не был.
Re[4]: Что-то мы ушли в сторону от обсуждения
От: bkat  
Дата: 25.11.07 22:07
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>Так что вы это... осторожнее...


Странный ты.
Я в общем из дискусии выхожу.
Re[2]: Корреляция между стилем и качеством кода
От: landerhigh Пират  
Дата: 25.11.07 22:37
Оценка:
Здравствуйте, raydac, Вы писали:

R>есть такое дело, но вырабатывается стиль годами и качество кода тоже вырабатывается годами..

R>лично я еще смотрю на качество написания кода на бумаге
В смысле насколько аккуратно нарисованы скобочки и правильно ли используется табуляция?
Re[5]: Корреляция между стилем и качеством кода
От: The Lex Украина  
Дата: 25.11.07 22:53
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>Разумеется, найти специалиста, который соответствует таким запросам, как стиль кода, — не просто.

U>Но мы пока не жалуемся .

Извините, тут вмешаюсь и я: Вы серьезно "играете в игру на угадывание стиля"? А когда работаете, вы тоже не даете документа "Code Convention" на прочтение, а "просто требуете соответствия стилю"?

Имхо, если и применять подобную методику оценки, то в ключе написания тестового кода в соответствии с _выданным_ Code Convention. Вот тут действительно можно проверить очень важный для работы в большой команде навык — следования общему стилю исходного кода. А проверять "видение кода ядра" таким образом... Ну, раз у Вас работает — но это как раз ярчайшее исключение, а не правило, достойное применения другими. имхо, конечно.
Голь на выдумку хитра, однако...
Re[3]: Корреляция между стилем и качеством кода
От: The Lex Украина  
Дата: 25.11.07 22:59
Оценка:
Здравствуйте, Unmanaged, Вы писали:

B>>Есть бесконечное число способов "хорошо" и "читабельно" оформить код.


U>Абсолютно согласен.


B>>То, что для тебя читабельно может оказаться далеко не читабельным для других.


U>Блондинко — эталон?

U>Эталон.
U>Почему?
U>Потому что светлые волосы привлекают большинство мужчин.
U>Об этом я и говорю.

Здесь Вы не правы. И вообще это весьма страшный бич — говорить за большинство.

U>Код, который без проблем, не напрягаясь, читает большинство — и есть эталон в моём понимании.


Большинство линуксуидов читает код "с подчеркиваниями" — большинство виндосописателей — с прописными буквами. Тем более, что Вы привели пример кода еще и отформатированного и откоментированного неким должным образом — мало ли как могуть форматировать код другие команды? Имхо, требовать чтобы человек форматировал свой код в соответствии с выданными правилами — очень правильно. Как-то оценивать код человека по тому как он свой код форматирует — вполне возможно. Но Ваш случай — крайне крайняя абстракция.

B>>Но вот некой излишней категоричностью и

B>>однобокостью (типа вера в существование одного эталонного стиля) попахивает.

U>Излишней?

U>Возможно.
U>Но совсем без неё — никак.

Никак. Но не с таким подходом.
Голь на выдумку хитра, однако...
Re[5]: Корреляция между стилем и качеством кода
От: The Lex Украина  
Дата: 25.11.07 23:01
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>20 лет — это вы конечно хватили.

U>Свой стиль я вырабатывал примерно 2 года.

Извините, но зачем?
Голь на выдумку хитра, однако...
Re[6]: Корреляция между стилем и качеством кода
От: The Lex Украина  
Дата: 25.11.07 23:04
Оценка:
Здравствуйте, AntZ, Вы писали:

дрянь поскипана.

AZ>Дрянь. Гигантские шапки перед функциями моментально рассинхронизируются с кодом, информация дублируется без всякой надобности. Все "забивают" на апдейт коментариев и получается дерьмо которое состоит из кода и коментариев противоречащих друг другу. Все что можно сказать в коде — должно быть сказано в коде. Эстетически — тоже дерьмо


Ну, просто в действительно больших командах, которые действительно используют такой код, за достоверностью коментариев и стилем "шапок" следят не программеры, а "копирайтеры" — т.е. эти... технические писатели, вот. А вообще, конечно, опыт практический большой имеется и говорит как раз о том, о чем и Вы...
Голь на выдумку хитра, однако...
Re[6]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 23:06
Оценка:
U>>Свой стиль я вырабатывал примерно 2 года.
TL>Извините, но зачем?

Вам не понять тайного смысла сего действа .
STATUS_INVALID_DEVICE_REQUEST
Re[7]: Корреляция между стилем и качеством кода
От: The Lex Украина  
Дата: 25.11.07 23:11
Оценка:
Здравствуйте, Unmanaged, Вы писали:

TL>>Извините, тут вмешаюсь и я: Вы серьезно "играете в игру на угадывание стиля"?


U>Встречный вопрос: с чего вы это взяли?


С Ваших слов — других исходных данных у меня нет.

[поскипано]
Голь на выдумку хитра, однако...
Re[7]: Корреляция между стилем и качеством кода
От: The Lex Украина  
Дата: 25.11.07 23:13
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>>>Свой стиль я вырабатывал примерно 2 года.

TL>>Извините, но зачем?

U>Вам не понять тайного смысла сего действа .


"Эт точно!" (к) красноармеец Сухов

Вообще интересный вопрос образовался: а что, собственно, такое — "свой стиль оформления кода"?
Имеется в виду "свой личный стиль", очевидно...
Голь на выдумку хитра, однако...
Re: Корреляция между стилем и качеством кода
От: marx paul Германия Провести онлайн-опрос
Дата: 25.11.07 23:15
Оценка:
Здравствуйте, Unmanaged, Вы писали:

выскажу по сути вопроса свое ИМХО

U>
U>...
U>Смотрим тестовое задание, если не работает - кандидат не прошёл.
U>...
U>Смотрим исходный код правильно работающего тестового задания.
U>Если код не подходит под ряд критериев - кандидат не прошёл.
U>...
U>


U>И конечно, я смотрю, чтобы бы стиль кода кандидата был не хуже моего.


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


U>Вопрос №1: правильно ли я поступаю? у кого какой опыт в данном вопросе?


Описанный Вами алгоритм действий на 100% правильный в одном из следующих случаев:
— если Вам глубоко начихать на Вашу компанию
— Вам толком нечего предложить Вашим работникам и поэтому к Вам на собеседование идут в основном не квалифицированные кадры

В противном случае Ваш подход слишком рестриктивен и Вам следует диференцировать подход к кандидатам.

U>Вопрос №2: насколько высока subj по вашему мнению?

не ниже 0,2
Провести онлайн-опрос
Online-Umfrage erstellen
Re[2]: Корреляция между стилем и качеством кода
От: olegkr  
Дата: 26.11.07 02:22
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>А уж Ваш столь уверенный выбор между my_cool_func() и myCoolFunc() — чистая религия. Юниксовскому человеку в среднем больше понравится первый вариант, виндузятнику — второй. Набирать на клавиатуре удобнее первый.


Кстати, почему удобнее? Вроде телодвижений побольше, надо жать не Shift+[C], к примеру, а Shift+[-],[c]. Лишнюю клавишу нажимать приходится
Re: Корреляция между стилем и качеством кода
От: Uzumaki Naruto Ниоткуда  
Дата: 26.11.07 05:25
Оценка:
Хм... стилистик для разных языков и платформ много...

Вы под Linux, Симбиан, ucLinux и Java тоже по ядру Windows принимать будите? А там своя стилистика принята и если вы прийдете со своей — вас прогонят точно так же как и вы гоните кандидатов...

Если честно бред это все... Стилистика вещь, которую предерживаешься в зависимости от принятых стандартов и в каждом конкретном случае (компании) и никакой связи с ФУНКЦИОНАЛЬНЫМ качеством кода не имеющая.

Re[5]: Корреляция между стилем и качеством кода
От: Sashaka Россия  
Дата: 26.11.07 06:35
Оценка:
U>Так лучше:

не удобно читать.

— во 1 слишком много переводов строк, в этом смысле если мало параметров то можно в 1 строку, если много то как в MSDN, например:
HANDLE CreateFile(
  LPCTSTR lpFileName,                         // file name
  DWORD dwDesiredAccess,                      // access mode
  DWORD dwShareMode,                          // share mode
  LPSECURITY_ATTRIBUTES lpSecurityAttributes, // SD
  DWORD dwCreationDisposition,                // how to create
  DWORD dwFlagsAndAttributes,                 // file attributes
  HANDLE hTemplateFile                        // handle to template file
);


— во 2 описание параметров должно быть в хедере, это более универсально, да и IDE показывает обычно комментарии из хедера, да и doxygen тоже быстрее будет по хедерам прогнать, кстати и комментарии к параметрам MSVC тоже покажет если функция была объявлена как CreateFile выше.

C PrefixSubprefixAction если Prefix и Subprefix обозначают принадлежность к какой то функциональной группе то лучше использовать неймспейсы, а функции именовать как [Сказуемое][Существительное]
Re[5]: Корреляция между стилем и качеством кода
От: ancient  
Дата: 26.11.07 07:02
Оценка:
Здравствуйте, Unmanaged, Вы писали:

B>>Вот скажи, что лучше?

B>>
B>>void my_cool_func();  // 1
B>>void myCoolFunc();    // 2
B>>


U>За (1) так вообще руки оторвал бы.


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

Вобщем, считать определенный стиль единственно правильным — это "иллюзия посредственности" начинающих программистов. С опытом проходит.
Re: Корреляция между стилем и качеством кода
От: LaptevVV Россия  
Дата: 26.11.07 07:18
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.

U>Далеко не все программисты умеют и хотят писать код хотя бы примерно так.
Это очень похоже на то, что издательство, например, принимает произведения, написанные только в стиле Хэмингуэя... Я, например, стиль Чехова и Толстого им не подходит...
А я, например, Хэмингуэя не люблю — мне его стиль психологически не подходит... А Чехова и Толстого читаю с удовольствием...
U>И конечно, я смотрю, чтобы бы стиль кода кандидата был не хуже моего.
Ага, главред требует от писателя писать только как он, а не иначе...
А сам-то до Хэмингуэя дотягивает?

U>Вопрос №1: правильно ли я поступаю? у кого какой опыт в данном вопросе?

Вот и ответ...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Корреляция между стилем и качеством кода
От: egaron http://127.0.0.1
Дата: 26.11.07 07:59
Оценка:
Здравствуйте, Unmanaged, Вы писали:

ВЫ платите очень большую зарплату ? Или в вашем городе дефицит рабочих месте в ИТ ?
Если так, то вы вполне обосновано имеете право предъявлять какие угодно требования .

Вообще, любой имеет право предъявлять любые требования, и никаких нареканий они не вызывают. Но только смотрите, чтобы не было как в известной фильме — " Да у меня воз сеня 10 рублей стоит — Стоить-то оно стоит, да никто его не покупает. Никудышное у тебя сено, разве что горит хорошо..."

Ведь при нынешней ситуации на рынке труда скорее наоборот, кандидат выставляет требования
1) Работодатель дал тестовое задание — работодатель не прошел
2) Если работодатель не дал тестовое задание, но собеседований оказалось больше одного — работодатель не прошел.


так что выбирайте сами.
Re[6]: Корреляция между стилем и качеством кода
От: Roman Odaisky Украина  
Дата: 26.11.07 08:57
Оценка:
Здравствуйте, Sashaka, Вы писали:

S>C PrefixSubprefixAction если Prefix и Subprefix обозначают принадлежность к какой то функциональной группе то лучше использовать неймспейсы, а функции именовать как [Сказуемое][Существительное]


Оне пишут ядерные модули… вряд ли на C++.
До последнего не верил в пирамиду Лебедева.
Re: Корреляция между стилем и качеством кода
От: _Obelisk_ Россия http://www.ibm.com
Дата: 26.11.07 09:30
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>Привет.


U>Заранее извиняюсь, если поднимаю старую тему — поиском не нашёл.

U>Речь пойдёт о корреляции между стилем кода программиста и качеством этого же самого кода.

IMHO, к стилю есть единственное требование — девелопер не должен мешать разные стили в одном коде.

Персонально, я не люблю, когда используют tab-ы, вместо space-ов для отступов. Настройки величины tab-ов могут быть разными, потому layout кода может плыть в разных редакторах. А это нехорошо.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[2]: Корреляция между стилем и качеством кода
От: Uzumaki Naruto Ниоткуда  
Дата: 26.11.07 09:54
Оценка:
Эта проблема решается настройками IDE (в частности в студии есть опция — замена tab на пробел и разме 1 tab в пробелах)

Re[7]: Корреляция между стилем и качеством кода
От: SP_ Украина  
Дата: 26.11.07 09:54
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>Разжёвывать мне сейчас лень, кому надо — правильно поймут, что я имел в виду.


Батенька, складывается впечатление, что круче вашей фирмы только яйца. Озвучте пожалуйста название вашей конторы.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Корреляция между стилем и качеством кода
От: SkyDance Земля  
Дата: 26.11.07 10:01
Оценка:
Pzz>Не знаю, удобнее и все. ПриВотТакомВотСтиле случается, что не та буква оказывается заглавной. А_при_вот_таком почему-то не случается.

Точно. А если нож держать тупой стороной к яйцу, то можно ведь ненароком об острую сторону и порезаться!
Re[3]: Корреляция между стилем и качеством кода
От: _Obelisk_ Россия http://www.ibm.com
Дата: 26.11.07 11:29
Оценка:
Здравствуйте, Uzumaki Naruto, Вы писали:

UN>Эта проблема решается настройками IDE (в частности в студии есть опция — замена tab на пробел и разме 1 tab в пробелах)


Я-то в курсе, но другие забывают об этом.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[2]: Корреляция между стилем и качеством кода
От: ononim  
Дата: 26.11.07 11:35
Оценка:
R>есть такое дело, но вырабатывается стиль годами и качество кода тоже вырабатывается годами..
Дело в том что качество кода и стандарт принятый на конкретно вашей фирме вещи вообще говоря разные. Посмотрите на стиль написания например STLPORT, совсем не похож нп ядро винды. Но не ламерье же ее делали

R>лично я еще смотрю на качество написания кода на бумаге

Ну я например системный архитект. Когда беру в руки ручку очень трудно вспомнить как ею двигать чтобы на бумаге появлялись нужные буквы Что же, я плохой программист?
Как много веселых ребят, и все делают велосипед...
Re[3]: Корреляция между стилем и качеством кода
От: Roman Odaisky Украина  
Дата: 26.11.07 11:46
Оценка:
Здравствуйте, elmal, Вы писали:

E>Это легко решается. Делается комбинация — табами выделяется отступы, а все выравнивание после отступов ведется пробелами. Например:


+1. Руки отрывать за другое нужно:
→   foo();
→   bar();
····oof(); // added by SuperDeveloper
→   rab();


····if(foo())
····{
→       bar();
→       if(oof())
→       {
→       ····rab();
→       }
····}


void someReallyInterestingFunction(Type1 param1,
→   →   →   →   →   →   →   →   ···Type2 param2)
До последнего не верил в пирамиду Лебедева.
Re[3]: Корреляция между стилем и качеством кода
От: raydac Эстония http://www.igormaznitsa.com
Дата: 26.11.07 11:53
Оценка:
R>>лично я еще смотрю на качество написания кода на бумаге
O>Ну я например системный архитект. Когда беру в руки ручку очень трудно вспомнить как ею двигать чтобы на бумаге появлялись нужные буквы Что же, я плохой программист?

от задачи зависит, на несложных думаю вполне хватит и неумеющего писать системного архитектора, слава богу сейчас не те времена.. не царские
https://github.com/raydac
Re[7]: Корреляция между стилем и качеством кода
От: SP_ Украина  
Дата: 26.11.07 11:53
Оценка:
Здравствуйте, elmal, Вы писали:

E>Но тут не разработчики виноваты, а то, что исторически сложилось


Это понятно. Но таки stl в середине 90-х писалась, а тогда уже над стилями думали за бугром. И если выбрали такой_вот_стиль, то сделали это явно не с бодуна, после оценки альтернатив. А топикстартер от этого стиля плюется. Вот и у меня возникла мысль, может что-то в консерватории поправить
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: 2 Night Writers
От: xedin Беларусь http://natribu.org/by/
Дата: 26.11.07 12:07
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>Все понаставили друг другу плюсиков и, довольные своими свершениями, отправились спать .

U>Извините, это просто смешно со стороны выглядит.

И лишь один гордый, непонятый и непобежденный Unmanaged остался на страже единственно верного учен.... простите, стиля
Спорить не о чем — я прав
(с)cr lf
Re[6]: Корреляция между стилем и качеством кода
От: egaron http://127.0.0.1
Дата: 26.11.07 12:16
Оценка:
Здравствуйте, elmal, Вы писали:

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


U>>За (1) так вообще руки оторвал бы.

U>>Вот (2) ещё куда ни шло, но тоже убого.
E>Шеф, это называется не стиль программирования, а стиль именования. В разных фирмах в разных проектах он разный.
E>Переменная может называться m_my_variable, myVariable, mMyVariavbe, MyVariable и т.д. Отрывать надо руки не за то, что человек привык к такому способу наименования, а за то, что он не следует таковым стандартам в конкретном проекте.
E>Я лично под стилем программированая подразумеваю не скобочки, отступы и т.д (повторяю, в команда этот стиль должен быть ОДИН У ВСЕХ), а некоторые другие вещи, например:

+10
Re[2]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.11.07 13:28
Оценка:
Здравствуйте, Uzumaki Naruto, Вы писали:

UN>Если честно бред это все... Стилистика вещь, которую предерживаешься в зависимости от принятых стандартов и в каждом конкретном случае (компании) и никакой связи с ФУНКЦИОНАЛЬНЫМ качеством кода не имеющая.


Наличие у программиста стиля свидетельствует о структурированности его мышления. А это уже способствует улучшению функционального качества кода.
Re[5]: Корреляция между стилем и качеством кода
От: Alexey Borodin alexey-borodin@narod.ru
Дата: 26.11.07 13:53
Оценка:
Здравствуйте, Unmanaged, Вы писали:

C0s>>а вот два стиля — ну как их сравнить?

C0s>>какие вообще критерии для сравнения стиля ты используешь?

U>Например, сравнить читабельность обоих.


Очень странный критерий. Проще будет читать такой код, к которому привык. Поэтому люди с отличным стилем, но немного отличным от windows kernel, будут в пролёте.
Re[2]: Автора этого кода на работу возьмёте?
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.11.07 14:22
Оценка:
Здравствуйте, SergeCpp, Вы писали:

SC>Автора вот этого кода на работу возьмёте?


У Кнута ужасный стиль, при всем моем уважении

Но собственно, он и по профессии не программист, а университетский профессор. По его коду это очень хорошо заметно, как и по книжкам.
Re[3]: Автора этого кода на работу возьмёте?
От: Roman Odaisky Украина  
Дата: 26.11.07 17:30
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>У Кнута ужасный стиль, при всем моем уважении :-)

Pzz>Но собственно, он и по профессии не программист, а университетский профессор. По его коду это очень хорошо заметно, как и по книжкам.

А TeX, METAFONT святой дух написал?
До последнего не верил в пирамиду Лебедева.
Re[4]: Автора этого кода на работу возьмёте?
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.11.07 18:34
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

Pzz>>У Кнута ужасный стиль, при всем моем уважении

Pzz>>Но собственно, он и по профессии не программист, а университетский профессор. По его коду это очень хорошо заметно, как и по книжкам.

RO>А TeX, METAFONT святой дух написал?


Тем не менее.
Re: Корреляция между стилем и качеством кода
От: bum-para-pumchik Россия  
Дата: 27.11.07 06:49
Оценка:
Здравствуйте, Unmanaged, Вы писали:


U>Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.

U>Далеко не все программисты умеют и хотят писать код хотя бы примерно так.

Запусти Visual Studio 2005 и проверь результат кода:
for (int i = 0; i < 5; i++)
if (i)
printf("%d\n", i);
и кода:
for (int i = 0; i < 5; i++) {
if (i)
printf("%d\n", i);
}
код продуктов MS видимо просто идеален
Re[2]: Корреляция между стилем и качеством кода
От: Александр Каширин  
Дата: 27.11.07 07:38
Оценка:
Здравствуйте, bum-para-pumchik, Вы писали:

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



U>>Разумеется, у меня есть эталон стиля кода — это стиль исходного кода ядра Windows.

U>>Далеко не все программисты умеют и хотят писать код хотя бы примерно так.

BPP>Запусти Visual Studio 2005 и проверь результат кода:


А что будет? А то нет возможности запустить Visual Studio 2005... но очень интересно
Re[2]: Корреляция между стилем и качеством кода
От: Александр Каширин  
Дата: 27.11.07 09:23
Оценка:
Здравствуйте, bum-para-pumchik, Вы писали:

BPP>Запусти Visual Studio 2005 и проверь результат кода:

BPP>for (int i = 0; i < 5; i++)
BPP> if (i)
BPP> printf("%d\n", i);
BPP>и кода:
BPP>for (int i = 0; i < 5; i++) {
BPP> if (i)
BPP> printf("%d\n", i);
BPP>}
BPP>код продуктов MS видимо просто идеален

Не удержался, таки попросил товарища проверить это на VS 2005 SP1. Оба куска кода работают одинаково (что, собственно, и ожидалось).
А в чем подвох?
Re: Да вы хоть обставьтесь минусами :)
От: Unmanaged Россия ICQ 476611995
Дата: 27.11.07 15:36
Оценка:
Сколько минусов мне понаставили, аж валяюсь от смеха.
Ни одного плюса, если не считать + от IID. Кстати, интересно — за что?

Граждане, сколько минусов не ставь — а толку не будет всё равно, поймите это.
Конструктивнее надо.
STATUS_INVALID_DEVICE_REQUEST
Re[2]: Да вы хоть обставьтесь минусами :)
От: bkat  
Дата: 27.11.07 16:22
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>Граждане, сколько минусов не ставь — а толку не будет всё равно, поймите это.


А ты что, их считаешь? Тебя они волнуют?

Могу тебе плюс поставить. Мне не жалко.
Только от плюсов толку будет не больше, чем от минусов.
Re[2]: Да вы хоть обставьтесь минусами :)
От: IID Россия  
Дата: 27.11.07 16:33
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>Ни одного плюса, если не считать + от IID. Кстати, интересно — за что?


За сдержанность и адекватность В более ранних постах этого сильно не хватало.
kalsarikännit
Re[3]: Да вы хоть обставьтесь минусами :)
От: Unmanaged Россия ICQ 476611995
Дата: 27.11.07 16:39
Оценка:
IID>За сдержанность и адекватность В более ранних постах этого сильно не хватало.

Да, вы абсолютно правы, в этом моя ошибка.
Я стал что-то доказывать людям, продвигать среди них свои идеи.
А вот к конструктиву и добавить нечего, кроме "спасибо" .
STATUS_INVALID_DEVICE_REQUEST
Re[4]: Uzumaki Naruto отжёг
От: Unmanaged Россия ICQ 476611995
Дата: 27.11.07 18:33
Оценка:
Денег решил заработать, что ли?
STATUS_INVALID_DEVICE_REQUEST
Re[5]: Да вы хоть обставьтесь минусами :)
От: Unmanaged Россия ICQ 476611995
Дата: 27.11.07 18:37
Оценка:
UN>Куда за деньгами подъезжать?

На свою работу в день з/п.

UN>p.s. Пацан сказал, пацан сделал.


К счастью, я вам не пацан какой-нибудь .

Работать надо, а не халяву искать.
А то вас таких знаешь сколько тут?
STATUS_INVALID_DEVICE_REQUEST
Re[7]: Корреляция между стилем и качеством кода
От: henson Россия http://www.njt-rails.com
Дата: 27.11.07 20:24
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

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


U>>>Так лучше:

AZ>>Дрянь <…> дерьмо

RO>Каким-то чудом с использованием этого стиля была написана целая ОС… ее даже используют… новые версии выпускают.


Все больше хотфиксы и сервис паки
Re[2]: Автора этого кода на работу возьмёте?
От: Maxim S. Shatskih Россия  
Дата: 28.11.07 06:19
Оценка:
SC>Автора вот этого кода на работу возьмёте?

Нормальный код на самом деле, если где-то рядом еще объяснена лежащая там математика.

SC>А вот этого
Автор: SergeCpp
Дата: 08.02.07
?


А вот это — типичный угребищный опен-сорсный код. Ларри Волл, может, и гений, но в большинстве команд нужны люди попроще и подисциплинированнее.
Занимайтесь LoveCraftом, а не WarCraftом!
Re[2]: Корреляция между стилем и качеством кода
От: Maxim S. Shatskih Россия  
Дата: 28.11.07 06:25
Оценка:
U>>Далеко не все программисты умеют и хотят писать код хотя бы примерно так.

Pzz>Я тоже думаю, что связь есть. Но Вы совершаете ошибку, считая эталоном один конкретный стиль.


Сказано "хотя бы примерно так".

Pzz>Есть много хороших стилей. Не все из них понравятся Вам. Более того, я заглянул вниз по треду, где Вы приводите пример хорошего стиля — на муй вкус он так себе. Слишком много комментариев в коде так же плохо, как и слишком мало — за ними теряется собственно код. Для детальной спецификации функции есть отдельное место — называется документация.


...и лучшее место для нее — это комменты. Преимущества такого подхода неисчислимы. Например, они всегда чекинятся одновременно с функцией.

Pzz>Зачем писать параметры в столбик там, где они помещаются в строчку, мне вообще трудно понять. Количество строк, которое одновременно помещается на экране, конечно. Даже на 24'' мониторе. И расходовать их попусту неразумно.


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

Pzz>А уж Ваш столь уверенный выбор между my_cool_func() и myCoolFunc() — чистая религия. Юниксовскому человеку в среднем больше понравится первый вариант, виндузятнику — второй. Набирать на клавиатуре удобнее первый.


Ровно наоборот. Набрать подчерк — крайне неудобно.

Кстати, насколько я помню, Апач юниксный проект, а там mixed case.

Pzz>Да, и я бы, кстати, три раза подумал, прежде чем брать на работу человека, который не скрывает, что он нелегально заглядывал в исходники ядра — мне не нужна перспектива судебного разбирательства с мелкософтом.


Можно расслабиться. Есть примерчики из DDK, они в том самом стиле.
Занимайтесь LoveCraftом, а не WarCraftом!
Re[2]: Корреляция между стилем и качеством кода
От: aik Австралия  
Дата: 28.11.07 08:21
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Да, и я бы, кстати, три раза подумал, прежде чем брать на работу человека, который не скрывает, что он нелегально заглядывал в исходники ядра — мне не нужна перспектива судебного разбирательства с мелкософтом.


Нелегально не заглядывать, а использовать у себя в программе. Так что подумай еще
Re[5]: Корреляция между стилем и качеством кода
От: NiJazz Австралия  
Дата: 28.11.07 10:19
Оценка:
То есть, будь Ваша воля, ходить разработчикам STL без рук?
Правила форума нарушены.
— оверквотинг
Правила можно найти в разделе FAQ данного форума и\или ресурса.
Нарушение правил может повлечь за собой санкции, описанные там же — модератор
Re[3]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 28.11.07 12:33
Оценка:
Здравствуйте, aik, Вы писали:

Pzz>>Да, и я бы, кстати, три раза подумал, прежде чем брать на работу человека, который не скрывает, что он нелегально заглядывал в исходники ядра — мне не нужна перспектива судебного разбирательства с мелкософтом.


aik>Нелегально не заглядывать, а использовать у себя в программе. Так что подумай еще


Хуже всего сделать что-то интересненькое, и получить судебное разбирательство на тему, что идея/код украдены из нелегально увиденных исходников. Если человек всюду звенит, что он эти исходники читал, наверное и на суде это всплывет. Нафиг-нафиг. Меньше знаешь — лучше спишь
Re[3]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 28.11.07 12:46
Оценка:
Здравствуйте, Maxim S. Shatskih, Вы писали:

Pzz>>Есть много хороших стилей. Не все из них понравятся Вам. Более того, я заглянул вниз по треду, где Вы приводите пример хорошего стиля — на муй вкус он так себе. Слишком много комментариев в коде так же плохо, как и слишком мало — за ними теряется собственно код. Для детальной спецификации функции есть отдельное место — называется документация.


MSS>...и лучшее место для нее — это комменты. Преимущества такого подхода неисчислимы. Например, они всегда чекинятся одновременно с функцией.


Они (комменты), наверное еще и апдейтятся автоматически? Т.е., поменял поведение функции, глядь, комменты сами и изменились? Или, может быть, современные компиляторы научились хотя бы выдавать предупреждение о несоответствии того, что написано в комменте и того, что написано в коде?

Если нет, то что за радость от того, что они механически чекинятся одновременно с функцией?

Pzz>>Зачем писать параметры в столбик там, где они помещаются в строчку, мне вообще трудно понять. Количество строк, которое одновременно помещается на экране, конечно. Даже на 24'' мониторе. И расходовать их попусту неразумно.


MSS>Если параметров просто много — то есть смысл, чтобы четче понимать, где какой параметр.


Если параметров просто много, значит функция просто продумана плохо.

MSS>Кстати, насколько я помню, Апач юниксный проект, а там mixed case.


1. Это не так
2. Даже если бы это было так, что доказал бы отдельно взятый апач?

Pzz>>Да, и я бы, кстати, три раза подумал, прежде чем брать на работу человека, который не скрывает, что он нелегально заглядывал в исходники ядра — мне не нужна перспектива судебного разбирательства с мелкософтом.


MSS>Можно расслабиться. Есть примерчики из DDK, они в том самом стиле.


Примерчики из DDK просто ужасны. Не в смысле стиля расставления скобочек, а в смысле архитектуры программы. В них любое действие, которое логически состоит из нескольких последовательных шагов, размазано тонким слоем по всему примерчику. Тех, кто учился программировать по DDK, надо долго и мучительно переучивать. К сожалению, многие из них считают себя избранными из-за того, что им посчастливилось покопаться в DDK, и плохо поддаются переучиванию.
Re[4]: Да вы хоть обставьтесь минусами :)
От: _Oleg_ Украина  
Дата: 28.11.07 12:48
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>Гы, давай.

U>10 баксов за плюс каждому!
U>100 за оценку 1.
U>500 за оценку 2.
U>И конечно 1000 за 3.

Извините, когда я смогу получить свои 500 долларов ?
Re[7]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 28.11.07 12:54
Оценка:
Здравствуйте, elmal, Вы писали:

E>Но тут не разработчики виноваты, а то, что исторически сложилось, что над стилями стали задумываться тогда, когда уже много чего стало написано, и никакой переделке уже не подлежит. А виноват в этом не Страуструп, а Керниган с Ритчи, но Си писался так давно, что винить их в том, что сразу не задумались над стилем кодирования, рука не поднимается.


Нет, ну почему же? Керниган и Ричи вполне однозначно пропагандируют определенный стиль. Он даже так и называется, стиль Кернигана и Ричи (сокращенно — K&R)

А Страуструпу точно следует руки оторвать. За неизгладимый вред, нанесенный программерской индустрии его ужасным детищем.
Re[5]: Корреляция между стилем и качеством кода
От: Михаил  
Дата: 28.11.07 16:13
Оценка:
Здравствуйте, Unmanaged, Вы писали:
U>void
U> PrefixSubprefixAction (

U> int iParam1,

U> void* pParam2)

U>/*


U> DESCRIPTION:


U> ...some description...


U> PARAMETERS:


U> iParam1

U> ...some description...
U> pParam1
U> ...some description...

U> RETURN VALUE:


U> ...some description...


Вы всерьез считаете, что в MS именно кодер пишет спецификацию?
По моим недалеким представлениям, с этой шапки (уже для него готовой!) он начинает работать...
...А отсюда наливаем, когда рецепт написан совсем неразборчиво...
Re[4]: Корреляция между стилем и качеством кода
От: landerhigh Пират  
Дата: 28.11.07 22:41
Оценка:
Здравствуйте, Pzz, Вы писали:

MSS>>...и лучшее место для нее — это комменты. Преимущества такого подхода неисчислимы. Например, они всегда чекинятся одновременно с функцией.

Pzz>Они (комменты), наверное еще и апдейтятся автоматически? Т.е., поменял поведение функции, глядь, комменты сами и изменились? Или, может быть, современные компиляторы научились хотя бы выдавать предупреждение о несоответствии того, что написано в комменте и того, что написано в коде?
Проекту doxygen уже 10 лет как стукнуло. Если, к примеру, параметры функции названы правильно, а не имеют вид вроде Param1, и само имя функции отображает ее назначение, то генерируется вполне читаемая документация. С типами аргументов и возвращаемого значения. За исключением вырожденных случаев вроде функций в 500 строк, в которых все равно без поллитры не разберешься.
Re[6]: Да вы хоть обставьтесь минусами :)
От: BulatZiganshin  
Дата: 28.11.07 22:59
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>И ведь прав был я, да, прав, — халявщиков тут предостаточно .


а где наливают??
Люди, я люблю вас! Будьте бдительны!!!
Re[4]: Корреляция между стилем и качеством кода
От: aik Австралия  
Дата: 29.11.07 18:04
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Хуже всего сделать что-то интересненькое, и получить судебное разбирательство на тему, что идея/код украдены из нелегально увиденных исходников. Если человек всюду звенит, что он эти исходники читал, наверное и на суде это всплывет. Нафиг-нафиг. Меньше знаешь — лучше спишь


Достаточно меньше болтать, на самом то деле.
Re[6]: Корреляция между стилем и качеством кода
От: landerhigh Пират  
Дата: 29.11.07 22:28
Оценка:
Здравствуйте, Pzz, Вы писали:

L>>Проекту doxygen уже 10 лет как стукнуло. Если, к примеру, параметры функции названы правильно, а не имеют вид вроде Param1, и само имя функции отображает ее назначение, то генерируется вполне читаемая документация. С типами аргументов и возвращаемого значения. За исключением вырожденных случаев вроде функций в 500 строк, в которых все равно без поллитры не разберешься.

Pzz>И что, доксиген сам проверяет соответствие комментария и кода функции?
См выделенное. Некоторые еще это называют "самодокументируемый код"
Pzz>На мой взгляд, доксигеновская документация годится только на то, чтобы показывать большому начальству со словами, вот у нас документация тоже есть. Потому что reference по функциям или по методам без объяснения картины в целом нифига не помогает чего-либо понять.
Молотком тоже можно все пальцы отбить себе..
Re[7]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 29.11.07 23:21
Оценка:
Здравствуйте, landerhigh, Вы писали:

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


Pzz>>И что, доксиген сам проверяет соответствие комментария и кода функции?

L>См выделенное. Некоторые еще это называют "самодокументируемый код"

Блин, если имя функции и параметров отражает их назначение, то документация, казалось бы, вообще не нужна?

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

Pzz>>На мой взгляд, доксигеновская документация годится только на то, чтобы показывать большому начальству со словами, вот у нас документация тоже есть. Потому что reference по функциям или по методам без объяснения картины в целом нифига не помогает чего-либо понять.

L>Молотком тоже можно все пальцы отбить себе..

Можно. Но молотком очень трудно заводить наручные часы.
Re[8]: Корреляция между стилем и качеством кода
От: NikeByNike Россия  
Дата: 29.11.07 23:26
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>>>На мой взгляд, доксигеновская документация годится только на то, чтобы показывать большому начальству со словами, вот у нас документация тоже есть. Потому что reference по функциям или по методам без объяснения картины в целом нифига не помогает чего-либо понять.

L>>Молотком тоже можно все пальцы отбить себе..

Pzz>Можно. Но молотком очень трудно заводить наручные часы.


Мы немного корячили доксиджен и с помощью напильника получали довольно сносный формат документации. Правда врядли кто то из разработчиков решится это повторить...
Нужно разобрать угил.
Re[8]: Корреляция между стилем и качеством кода
От: landerhigh Пират  
Дата: 30.11.07 03:00
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>>>И что, доксиген сам проверяет соответствие комментария и кода функции?

L>>См выделенное. Некоторые еще это называют "самодокументируемый код"
Pzz>Блин, если имя функции и параметров отражает их назначение, то документация, казалось бы, вообще не нужна?
Pzz>Докумантация на функцию должна в первую очередь быть спецификацией ее семантики. Уж типы параметров и т.п. можно как-нибудь угадать из прототипа функции.
Не поверите, но это именно то, что доксиджен и делает. Если же девелопер имеют практику перед декларацией функции написать, что это за зверь, с чем его едят и побочные эффекты поедания, то получается то, что можно назвать essential documentation.
Re[9]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.11.07 03:05
Оценка:
Здравствуйте, landerhigh, Вы писали:

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


Pzz>>Блин, если имя функции и параметров отражает их назначение, то документация, казалось бы, вообще не нужна?

Pzz>>Докумантация на функцию должна в первую очередь быть спецификацией ее семантики. Уж типы параметров и т.п. можно как-нибудь угадать из прототипа функции.
L>Не поверите, но это именно то, что доксиджен и делает. Если же девелопер имеют практику перед декларацией функции написать, что это за зверь, с чем его едят и побочные эффекты поедания, то получается то, что можно назвать essential documentation.

Доксиген делает не это. Все, что делает доксиген, это незамысловатые манипуляции над текстом. Если чепуха на входе, чепуха будет и на выходе.

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

http://www.rsdn.ru/forum/message/2749594.1.aspx
Автор: Pzz
Дата: 30.11.07
Re[10]: Корреляция между стилем и качеством кода
От: landerhigh Пират  
Дата: 30.11.07 03:54
Оценка:
Здравствуйте, Pzz, Вы писали:

L>>Не поверите, но это именно то, что доксиджен и делает. Если же девелопер имеют практику перед декларацией функции написать, что это за зверь, с чем его едят и побочные эффекты поедания, то получается то, что можно назвать essential documentation.

Pzz>Доксиген делает не это. Все, что делает доксиген, это незамысловатые манипуляции над текстом. Если чепуха на входе, чепуха будет и на выходе.
Если чепуха на входе, то чепуха и в коде. Тут не о чем разговаривать, надо гнать в шею аффтара чепухи.
Pzz>Я свою позицию уже один раз изложил, не вижу смысла повторяться при отсутствии новых контраргументов:
Pzz>http://www.rsdn.ru/forum/message/2749594.1.aspx
Автор: Pzz
Дата: 30.11.07

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

Да, речь идет о документации кода, а не архитектуры.
Re[3]: Корреляция между стилем и качеством кода
От: Maxim S. Shatskih Россия  
Дата: 30.11.07 08:57
Оценка:
AZ>Примеры DDK — код вылизанный для юзеров

Никто не вылизывал этот код для юзеров (вот еще, ресурсы тратить ). Это реальный код из реального build tree операционной системы.

Шелл у нас мдааа... но, говоря про "хороший стиль кодирования виндов" — говорят именно о кернеле и вообще о native OS. Шелл писала другая команда, команда Win95, и написан он именно такими же руками, что и вся Win95.
Занимайтесь LoveCraftом, а не WarCraftом!
Re[4]: Корреляция между стилем и качеством кода
От: Maxim S. Shatskih Россия  
Дата: 30.11.07 08:59
Оценка:
Pzz>Хуже всего сделать что-то интересненькое, и получить судебное разбирательство на тему, что идея/код украдены из нелегально увиденных исходников. Если человек всюду звенит, что он эти исходники читал, наверное и на суде это всплывет. Нафиг-нафиг. Меньше знаешь — лучше спишь

Если "интересненькое" сделано под винды, не в конкуренцию одному из продуктов Microsoft, и, таким образом, ворованный код использовался только для того, чтобы лучше понимать, как работает платформа у тебя под ногами — то расслабьтесь. Никто на вас в суд подавать не будет, как не подают в суд на тех, кто сделал reverse engineering каких-то кусков ядра виндов и опубликовал результаты.
Занимайтесь LoveCraftом, а не WarCraftом!
Re[10]: Корреляция между стилем и качеством кода
От: Maxim S. Shatskih Россия  
Дата: 30.11.07 09:27
Оценка:
Pzz>Мой point заключается в том, что писание документации — это такая же вдумчивая работа, как писание кода.

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

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

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

Доксиджен — не нужен. Смысл пережевывать комментарии парсером, чтобы сгенерить из них отдельный от кода файл, скажем, HTML? почему человек не может читать прямо из кода? зачем эта промежуточная обработка?

Pzz>очень лень и все такое. Но если, ребята, у вас нет времени написать документацию, то у вас и не будет документации, не надо себя обманывать.


И не надо. Это вложение денег компанией — не окупается.

Pzz>Единственное оправдание держать документацию в исходниках, это пресловутая возможность пройтись по ним доксигеном.


Нет. Доксиджен как раз не нужен, см. выше.

Pzz> Потому что вообще-то в исходниках развесистые комментарии только мешают,


Они и есть документация. Например, вся семантика почти любой функции описывается в максимум 20 строк комментария перед ее декларацией.
Занимайтесь LoveCraftом, а не WarCraftом!
Re: Оооопять C vs C++
От: gear nuke  
Дата: 30.11.07 09:45
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>Я имею в виду, что чем менее читабельно выглядят исходники программиста, тем менее качественный код он пишет.


Мне кажется, ты пытаешься поднять совсем другую проблему. Споры C vs C++ в ядре на самом деле идут уже давно, и, по аналогии с asm vs C, уже понятно, что победит завтра.

Можешь читать сорцы буста? Если нет, то позиция ясна — поэтому ты и принадлежишь к консерваторам. Вообще я считаю такие споры напрасными, очевидно, что кто-то, в силу выработанной годами привычки, способен с закрытыми глазами писать качественный код в стиле MS, зачем им тратить время и перестраиваться на неэффективный в силу субъективных факторов метод? В то же время, не вижу никаких причин прививать этот стиль выросшим на книгах Александреску и Мэйерса — читать-то они его смогут, но писать... только когда действительно без него никак.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[7]: Корреляция между стилем и качеством кода
От: gear nuke  
Дата: 30.11.07 09:46
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Каким-то чудом с использованием этого стиля была написана целая ОС… ее даже используют… новые версии выпускают.


А есть ли у них выбор, с какого года сорцы то?
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[5]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.11.07 10:43
Оценка:
Здравствуйте, Maxim S. Shatskih, Вы писали:

MSS>Если "интересненькое" сделано под винды, не в конкуренцию одному из продуктов Microsoft, и, таким образом, ворованный код использовался только для того, чтобы лучше понимать, как работает платформа у тебя под ногами — то расслабьтесь. Никто на вас в суд подавать не будет, как не подают в суд на тех, кто сделал reverse engineering каких-то кусков ядра виндов и опубликовал результаты.


Вы собираетесь всю жизнь писать драйвера для виндов?
Re[11]: Корреляция между стилем и качеством кода
От: binarin Россия  
Дата: 30.11.07 13:47
Оценка:
"Maxim S. Shatskih" <29705@users.rsdn.ru> writes:

> Доксиджен — не нужен. Смысл пережевывать комментарии парсером, чтобы

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

Ну, я могу один случай придумать, когда это лишним не будет — формулы,
более сложные чем a+b. А через doxygen с LaTeX формулы и оформлять
более-менее удобно можно, и читать это нормально после обработки.
Posted via RSDN NNTP Server 2.1 beta
Re[12]: Корреляция между стилем и качеством кода
От: Maxim S. Shatskih Россия  
Дата: 30.11.07 14:11
Оценка:
B>более сложные чем a+b. А через doxygen с LaTeX формулы и оформлять
B>более-менее удобно можно, и читать это нормально после обработки.

И что — кому-то не лень пропускать код через 2 лишних тула, после чего его якобы читать удобнее?
Занимайтесь LoveCraftом, а не WarCraftом!
Re[6]: Корреляция между стилем и качеством кода
От: Maxim S. Shatskih Россия  
Дата: 30.11.07 14:14
Оценка:
MSS>>Если "интересненькое" сделано под винды, не в конкуренцию одному из продуктов Microsoft, и, таким образом, ворованный код использовался только для того, чтобы лучше понимать, как работает платформа у тебя под ногами — то расслабьтесь. Никто на вас в суд подавать не будет, как не подают в суд на тех, кто сделал reverse engineering каких-то кусков ядра виндов и опубликовал результаты.

Pzz>Вы собираетесь всю жизнь писать драйвера для виндов?


Личная жизнь человека и жизнь компании — вещи разные. Я вполне допускаю, что моему работодателю _никогда_ не будет интересно программирование не под винды. Как и многим другим работодателям.

В судебную разборку в данном случае влипнет именно компания.
Занимайтесь LoveCraftом, а не WarCraftом!
Re[13]: Корреляция между стилем и качеством кода
От: binarin Россия  
Дата: 30.11.07 14:37
Оценка:
"Maxim S. Shatskih" <29705@users.rsdn.ru> writes:

>> более сложные чем a+b. А через doxygen с LaTeX формулы и оформлять

>> более-менее удобно можно, и читать это нормально после обработки.

> И что — кому-то не лень пропускать код через 2 лишних тула, после чего

> его якобы читать удобнее?

Через одну, doxygen всё сам сделает. Просто читать таким образом сложные
формулы не "якобы", а действительно удобнее.
Posted via RSDN NNTP Server 2.1 beta
Re[7]: Корреляция между стилем и качеством кода
От: SkyDance Земля  
Дата: 30.11.07 17:06
Оценка:
MSS>P.S. В список подсистем не вошел TCP/IP, и к тому есть причины. Его перетащили за уши из OS/2 LAN Manager 1.x, он даже в другом стиле кодирования написан, чем все остальное ядро, и не переделывался аж до Висты (в Висте как минимум поменяли интерфейсы верхнего края — был TDI transport, стал WSK provider).

Ух ты. А ведь Microsoft утверждает, что OS/2 там вовсе не при чем. Утверждает официально в лице Рихтера в его знаменитой зелёной книжке про внутренности Виндов.
Стек TCP/IP, однако, там из FreeBSD. Был. До висты...
Re[5]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.11.07 17:40
Оценка:
Здравствуйте, Maxim S. Shatskih, Вы писали:

Pzz>>Если параметров просто много, значит функция просто продумана плохо.


MSS>Придумайте CreateFile с меньшим числом параметров, учитывая весьма развитый функционал этой функции, намного богаче, чем в юниксных аналогах.


Что такого содержательного делает эта функция, что не делает ее посиксный аналог?

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


MSS>Конкретику можно? какое именно действие, какие шаги, как размазано.


Да можно и конкретику.

Ну вот, например, bus driver от тостера. Он работает с 2-мя видами девайсов, PDO и FDO, и у каждого своя логика обработки запросов. Нормальный человек записал бы в Device Extensions табличку указателей на обработчики, а в MajorFunction[] засунул бы указатели на функции, которые достают указатель на нужный обработчит из Device Extensions конкретного DEVICE_OBJECT, и передают туда управление. Раз уж в венде таблица обработчиков одна на драйвер, а не на каждый девайс, порожденный этим драйвером.

Нет, в сампле каждый обработчик по-отдельности разбирается с тем, PDO или FDO ему дали, и по-разному с ними работает.

Я понимаю, что там 3 обработчика и 2 типа девайсов, кода мало, и поэтому неправильность такого подхода не очень видна. А представляете, если бы там было 15 обработчиков и 5 типов устройств, и Вам надо добавить 6-й? Это же весь драйвер перелопатить только чтобы воткнуться.

И так там все. Я привел первое, что вспомнил.

MSS>Есть такое подозрение, что после приведения вами примеров станет ясно, что причина этого не в стиле кодирования DDK, а в архитектуре ядра NT.


Плохому кодеру, как известно, и ядра мешают

Pzz>>Тех, кто учился программировать по DDK, надо долго и мучительно переучивать.


MSS>Смотря что разработчикам предстоит разрабатывать. Если что угодно в ядре виндов — то не нужно переучивать, DDK есть истина в последней инстанции.


Да ну, перестаньте. Я в DDKных самплах и настоящие ошибки находил, которые могут систему порушить, если не повезет. Лень просто сейчас вспоминать, где это было, но в каком-то из простых примеров — синхронизация вокруг IRP cancellation была с ошибкой. Пример этот я, кстати, читал именно что бы разобраться в этом самом cancellation'е

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

MSS>Причина делать такое утверждение очень проста: программируют, в частности, под платформу. Я понимаю, что программируют еще и под требования, и под соображения о красоте программирования — но если платформа достаточно сложна, то соображения "правильно воткнуться в платформу" уж точно перевешивают ЛЮБЫЕ (еще раз all caps — ЛЮБЫЕ) соображения красоты кода из любой литературы.


Вы лукавите. На самом деле, Вы ставите задачу не "правильно воткнутся в платформу", а "правильно воткнуться в платформу, не понимая, что Вы делаете". Только этим непониманием может объясняться столь священно-трепетное отношение к DDK.

MSS>Ядро НТ — достаточно сложная платформа с кучей тонких нюансов, которые могут породить кучу неприятных сложных в поиске багов именно в месте стыка "ваш код-платформа". Потому именно это место стыка начинает становиться _главным_ в вашем коде, а вовсе не его внутренняя красота.


Памилте. В одном из моих драйверов было 60 тышш строк кода, и работал он кроме венды еще на 2-х платформах. Вы правда думаете, что стык с платформой был главным в этом коде? На самом деле, все платформенное было аккуратно загнано в специально отведенное для него место, а большая часть кода знать не знала, на какой платформе она крутится.

Просто Вы сложных драйверов не писали. В простых драйверах, конечно, почти весь драйвер и есть стык железа с платформой.
Re[7]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.11.07 17:55
Оценка:
Здравствуйте, Maxim S. Shatskih, Вы писали:

Pzz>>Вы собираетесь всю жизнь писать драйвера для виндов?


MSS>Личная жизнь человека и жизнь компании — вещи разные. Я вполне допускаю, что моему работодателю _никогда_ не будет интересно программирование не под винды. Как и многим другим работодателям.


MSS>В судебную разборку в данном случае влипнет именно компания.


Для компании, интересы которой пересекаются с мелкософтом, держать в штате человека, который копался в исходниках ядра, может быть опасно. Одно дело, если человек про это молчит, компания не обязана его допрашивать с пристрастием при приеме на работу (расписочку, впрочем, могут и попросить). Совсем другое дело, если человек хвастается этим на каждом углу.
Re[8]: Корреляция между стилем и качеством кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.11.07 17:59
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD>Ух ты. А ведь Microsoft утверждает, что OS/2 там вовсе не при чем. Утверждает официально в лице Рихтера в его знаменитой зелёной книжке про внутренности Виндов.

SD>Стек TCP/IP, однако, там из FreeBSD. Был. До висты...

Не очень он похож на стек из BSD. Ни по поведению, не по видимым простому человеку интерфейсам (например, управление буферами в NDIS'е совсем не похоже на BSD'ное).
Re[10]: Корреляция между стилем и качеством кода
От: The Lex Украина  
Дата: 30.11.07 20:48
Оценка:
Здравствуйте, Pzz, Вы писали:

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


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

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


Ну, примерно это оно и есть.

Pzz>Ковырянием же доксигена можно, наверное, повлиять на стиль, в котором он форматирует свой output. Но я говорю совсем не об этом.


Лично я доксиген не прочувствовал: там в исходниках такие развесистые комментарии писать (а може я его не понял?) что имхо проще самому документацию вести и поддерживать в актуальном состоянии — благо "буквы писать" можно и отдельного специального человечка без глубокий знаний программирования посадить.
Голь на выдумку хитра, однако...
Re[7]: Корреляция между стилем и качеством кода
От: The Lex Украина  
Дата: 30.11.07 20:53
Оценка:
Здравствуйте, Maxim S. Shatskih, Вы писали:

MSS>Исторически ядро было написано группой единомышленников человек в 30-40 (это если считать авторов драйверов под главнейшее железо и авторов основных кернел-модулей типа NTFS, NDIS, SMB клиента и сервера и тому подобного).


MSS>Люди давно работали вместе еще в Digital, хорошо сработаны, и при возникновении тех или иных вопросов просто спрашивали друг друга лично.


История известная — и было это ядро NT чтобы не соврать 3.5 (специально смотреть NT 3.x не полез, а "наизусть" вроде как 3.5 было...) — и когда это было? И осталось ли что-нибудь из того ядра в современном хотя бы XP (нет, я не говорю что мол не осталось ничего — привда интересно осталось ли и что именно) и остались ли кто-нибудь из тех "30-40 единомышленников" до сих пор "кодить ядро"?
Голь на выдумку хитра, однако...
Re[12]: Корреляция между стилем и качеством кода
От: The Lex Украина  
Дата: 30.11.07 21:00
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Все это не выводится из исходников, и не раскладывается на описания функций и методов. И это гораздо более насущная документация, чем референс по функциям.


А вот ее-то по большому печальному и повсеместно распространенному опыту фиг добьешься — зато непреходяща масса менеджеров всех уровней, "вдруг открывших для себя доксиген и решивших что это хорошо" (к) — мол "теперь у нас будет документация по проекту! всем срочно писать в коде комменты для доксигена!" (к) — повбывав бы!
Голь на выдумку хитра, однако...
Re[12]: Корреляция между стилем и качеством кода
От: The Lex Украина  
Дата: 30.11.07 21:01
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Все это не выводится из исходников, и не раскладывается на описания функций и методов. И это гораздо более насущная документация, чем референс по функциям.


Тут как раз вспомнилась классика: "угадал все буквы, но не смог назвать слово." (к)
Голь на выдумку хитра, однако...
Re[8]: Корреляция между стилем и качеством кода
От: i_van  
Дата: 30.11.07 21:26
Оценка:
Здравствуйте, SP_, Вы писали:

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


U>>Разжёвывать мне сейчас лень, кому надо — правильно поймут, что я имел в виду.


SP_>Батенька, складывается впечатление, что круче вашей фирмы только яйца. Озвучте пожалуйста название вашей конторы.

+1
Re[12]: Корреляция между стилем и качеством кода
От: The Lex Украина  
Дата: 01.12.07 11:15
Оценка:
Здравствуйте, Pzz, Вы писали:

TL>>... А то как еще сказать "бак такой-то был исправлен в таком-то месте"?


Pzz>А зачем это говорить в исходниках? У вас что, нет системы контроля версий? Вот в ее логах и скажите.


Мысль! Т.е. я-то так и делаю — почему-то не подумал сопоставить... Хех! Надо теперь защищать "коментарии в исходниках"...

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


Да не очень, имхо. Во-первых, функции сильно разные. Ну, и этого достаточно — остальное уже следствия первого.
Голь на выдумку хитра, однако...
Re[5]: Корреляция между стилем и качеством кода
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 01.12.07 21:01
Оценка:
Здравствуйте, Maxim S. Shatskih, Вы писали:

Pzz>>Если нет, то что за радость от того, что они механически чекинятся одновременно с функцией?

MSS>Не запускать отдельные тулы для чтения документации. Это раз. Документация обязательно видна и мозолит глаза при работе с кодом, это два.

А зачем ей именно мозолить глаза?

В целом я, конечно, согласен, что документация желательно должна быть тут же в коде.
Но надо и делать так, чтобы она не мешала читать.

MSS>А что за радость в отдельной документации вне комментов?


MSS>>>Если параметров просто много — то есть смысл, чтобы четче понимать, где какой параметр.

Pzz>>Если параметров просто много, значит функция просто продумана плохо.
MSS>Придумайте CreateFile с меньшим числом параметров, учитывая весьма развитый функционал этой функции, намного богаче, чем в юниксных аналогах.

Ну если говорить именно об этом примере, то как минимум 4 параметра (dwDesiredAccess, dwShareMode, dwCreationDisposition, dwFlagsAndAttributes) частично или полностью входят во второй параметр open(), и проблем я от этого ни разу не видел. То есть вместо 7 параметров можно было бы спокойно сделать 4-5. А это уже значительно ближе к возможности легко помнить их состав, порядок и назначение (особенно если lpSecurityAttributes унести в конец, и расширить её тем, что относится к security, но напихано в dwFlagsAndAttributes).
Итого, пример я считаю достаточно неудачным.;)

И непонятно, какой смысл в сравнении именно с юниксом (у Вас, кажется, это слегка больное место). Есть специфические библиотеки (например, GTK) где бывает и 15 параметров в функции.:)

MSS>Ядро НТ — достаточно сложная платформа с кучей тонких нюансов, которые могут породить кучу неприятных сложных в поиске багов именно в месте стыка "ваш код-платформа". Потому именно это место стыка начинает становиться _главным_ в вашем коде, а вовсе не его внутренняя красота.


Угу — для очень большого количества применений можно было бы обойтись значительно более простым построением.
The God is real, unless declared integer.
Re[13]: Корреляция между стилем и качеством кода
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 01.12.07 21:32
Оценка:
Здравствуйте, The Lex, Вы писали:

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


Pzz>>Все это не выводится из исходников, и не раскладывается на описания функций и методов. И это гораздо более насущная документация, чем референс по функциям.


TL>А вот ее-то по большому печальному и повсеместно распространенному опыту фиг добьешься — зато непреходяща масса менеджеров всех уровней, "вдруг открывших для себя доксиген и решивших что это хорошо" (к) — мол "теперь у нас будет документация по проекту! всем срочно писать в коде комменты для доксигена!" (к) — повбывав бы! :maniac:


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

А ведь менеджеру в том числе нужно чтобы, если ты не дай бог попал под трамвай, или бросил всё и уехал в Шамбалу искать смысл жизни — чтобы заменить тебя было реально решаемой проблемой в течение максимум недель...
The God is real, unless declared integer.
Re[14]: Корреляция между стилем и качеством кода
От: The Lex Украина  
Дата: 02.12.07 11:39
Оценка:
Здравствуйте, netch80, Вы писали:

N>А ведь менеджеру в том числе нужно чтобы, если ты не дай бог попал под трамвай, или бросил всё и уехал в Шамбалу искать смысл жизни — чтобы заменить тебя было реально решаемой проблемой в течение максимум недель...


А теперь представь себе что все, кто начинал и продолжал писать эту программу, попали под трамвай и уехали в Шамбалу — и остался ты с программой один на один и есть у тебя описания всех функций и классов и даже названия у них очень даже "говорящие" и каждый отдельный алгоритм вполне понятен, но вот нет никаких данных а) что система делает вообще; б) что она должна делать в принципе. А проблемой замены "попавших под трамвай" в течение недели (после взятия на работу, да: поиск и найм — отдельный вопрос) я давно "озабочен" и определенные наработки имеются — в том числе, например, по динамическому переключенению имеющихся ресурсов на "горящие" участки. Так вот: доксиген там не только не помогает, а очень даже наоборот. А почему? А потому что писать много, а смысла — мало. Описывать хороший код по параметрам функций — смысла нет — описывать надо конкретные цели, которых добивались, конкретные решения, которые правили, и конкретные результаты, которых достигли. А для описания технической сути решения часто не только достаточно 2-3-х диаграмм — часто как эти 2-3 диаграммы дают гораздо более полное и полезное описание системы, модуля, etc., чем целый вагон доксигена. Знаем — плавали.
Голь на выдумку хитра, однако...
Re[8]: Корреляция между стилем и качеством кода
От: Maxim S. Shatskih Россия  
Дата: 02.12.07 15:49
Оценка:
Что говорил Рихтер, и какие байки ходят вокруг среди ненавистников Микрософта — мне не интересно, говорю то, что на самом деле:

— TCP/IP от NT3.5 и до Висты — из OS/2 LAN Manager 1.x
— в Win9x/Me он строился с тех же исходников с помощью макросов. Кое какие-то вещи обернуты в portability обертки — скажем, CTESignal у нас KeSetEvent на NT и какой-то VMMный вызов на Win9x/Me.
— что в Висте — не знаю.
— что было в NT 3.1. Был совсем другой TCP/IP, основанный на STREAMS, возможно, срисованный с Lachman TCP source из System V или чего-то вроде (нет, никоим образом не из FreeBSD). Выкинули на помойку в NT 3.5 из-за низкой производительности, да еще и весь STREAMS задепрекатили.
— утилиты типа PING и FTP — вот они действительно из BSD.
Занимайтесь LoveCraftом, а не WarCraftом!
Re[8]: Корреляция между стилем и качеством кода
От: Maxim S. Shatskih Россия  
Дата: 02.12.07 15:51
Оценка:
TL>История известная — и было это ядро NT чтобы не соврать 3.5 (специально смотреть NT 3.x не полез, а "наизусть" вроде как 3.5 было...) — и когда это было? И осталось ли что-нибудь из того ядра в современном хотя бы XP (нет, я не говорю что мол не осталось ничего — привда интересно осталось ли и что именно)

Процентов 80 осталось. А именно — все основные функции и структуры данных остались. Главное изменение ядра было между NT4 и w2k — появление PnP & Power.

Кое-какие внутренние кишки переписали поумнее, например, реестр между w2k и XP (он теперь на memory mapped файлах стал).

TL>и остались ли кто-нибудь из тех "30-40 единомышленников" до сих пор "кодить ядро"?


Остались их преемники как минимум.
Занимайтесь LoveCraftом, а не WarCraftом!
Re[8]: Корреляция между стилем и качеством кода
От: Maxim S. Shatskih Россия  
Дата: 02.12.07 15:53
Оценка:
Pzz>Для компании, интересы которой пересекаются с мелкософтом, держать в штате человека, который копался в исходниках ядра, может быть опасно. Одно дело, если человек про это молчит, компания не обязана его допрашивать с пристрастием при приеме на работу (расписочку, впрочем, могут и попросить). Совсем другое дело, если человек хвастается этим на каждом углу.

Это так, но а) в Америке б) если интересы пересекаются с мелкософтом. Не у всех они пересекаются.
Занимайтесь LoveCraftом, а не WarCraftом!
Re[6]: Корреляция между стилем и качеством кода
От: Maxim S. Shatskih Россия  
Дата: 02.12.07 16:00
Оценка:
Pzz>Что такого содержательного делает эта функция, что не делает ее посиксный аналог?

Backup semantics, возможность указать ACL для вновь создаваемого файла.

Pzz>Ну вот, например, bus driver от тостера. Он работает с 2-мя видами девайсов, PDO и FDO, и у каждого своя логика обработки запросов. Нормальный человек записал бы в Device Extensions табличку указателей на обработчики, а в MajorFunction[] засунул бы указатели на функции, которые достают указатель на нужный обработчит из Device Extensions конкретного DEVICE_OBJECT, и передают туда управление.


Ну я именно так и делаю, но ничто не мешает сделать иначе.

Pzz>Нет, в сампле каждый обработчик по-отдельности разбирается с тем, PDO или FDO ему дали, и по-разному с ними работает.


Минус, но маленький.

Pzz>Да ну, перестаньте. Я в DDKных самплах и настоящие ошибки находил, которые могут систему порушить, если не повезет. Лень просто сейчас вспоминать, где это было, но в каком-то из простых примеров — синхронизация вокруг IRP cancellation была с ошибкой.


Ага, было такое раз. Причем это был именно безделушечный sample типа toaster, но не

Пример этот я, кстати, читал именно что бы разобраться в этом самом cancellation'е

Pzz>Памилте. В одном из моих драйверов было 60 тышш строк кода


У меня тоже такое было.

Pzz>Просто Вы сложных драйверов не писали.


Точнее — не писал портабельных. Не были интересны моим работодателям платформы, отличные от винды.
Занимайтесь LoveCraftом, а не WarCraftом!
Re[15]: Корреляция между стилем и качеством кода
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 03.12.07 09:38
Оценка:
Здравствуйте, The Lex, Вы писали:

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


N>>А ведь менеджеру в том числе нужно чтобы, если ты не дай бог попал под трамвай, или бросил всё и уехал в Шамбалу искать смысл жизни — чтобы заменить тебя было реально решаемой проблемой в течение максимум недель...


TL>А теперь представь себе что все, кто начинал и продолжал писать эту программу, попали под трамвай и уехали в Шамбалу — и остался ты с программой один на один и есть у тебя описания всех функций и классов и даже названия у них очень даже "говорящие" и каждый отдельный алгоритм вполне понятен, но вот нет никаких данных а) что система делает вообще; б) что она должна делать в принципе.


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

TL> А проблемой замены "попавших под трамвай" в течение недели (после взятия на работу, да: поиск и найм — отдельный вопрос) я давно "озабочен" и определенные наработки имеются — в том числе, например, по динамическому переключенению имеющихся ресурсов на "горящие" участки. Так вот: доксиген там не только не помогает, а очень даже наоборот. А почему? А потому что писать много, а смысла — мало. Описывать хороший код по параметрам функций — смысла нет — описывать надо конкретные цели, которых добивались, конкретные решения, которые правили, и конкретные результаты, которых достигли. А для описания технической сути решения часто не только достаточно 2-3-х диаграмм — часто как эти 2-3 диаграммы дают гораздо более полное и полезное описание системы, модуля, etc., чем целый вагон доксигена. :user: Знаем — плавали. :crash:


Ну так я и не говорю, что doxygen (или аналог — мне достаточно без разницы, как оно зовётся) приоритетнее _этой_ документации или общей. Нет, скорее наоборот. Но общая нужна всегда, а пофункциональная имеет свою специфическую область применимости — и вот именно её многие не хотят осознавать и адекватно оценивать.
The God is real, unless declared integer.
Re[16]: Корреляция между стилем и качеством кода
От: The Lex Украина  
Дата: 03.12.07 15:19
Оценка:
Здравствуйте, netch80, Вы писали:

TL>>... но вот нет никаких данных а) что система делает вообще; б) что она должна делать в принципе.


N>Давай не представлять себе подобные крайние случаи? Я не представляю себе, как можно достичь подобного результата и, главное, зачем. Ну а сферических коней в вакууме рассматривать не хочу.


Вы можете лично устроить опрос и оценить статистику — хорошо если "подобного результата" будет процентов 50...

N>Ну так я и не говорю, что doxygen (или аналог — мне достаточно без разницы, как оно зовётся) приоритетнее _этой_ документации или общей. Нет, скорее наоборот. Но общая нужна всегда, а пофункциональная имеет свою специфическую область применимости — и вот именно её многие не хотят осознавать и адекватно оценивать.


Генерацию "документального" представления описания функций по составленному специальным образом описанию в исходном коде? Ну, гипертекстовая навигация по коду оказывается удобной — однако ту же функциональность весьма успешно обеспечивает все та же "микрософт студия" — имхо, удобнее просто текстовые пояснения в комментариях по коду писать, если уж есть что написать. Получется "документы, зачем-то зашитые форматированием в код" — а зачем?
Голь на выдумку хитра, однако...
Re[3]: Корреляция между стилем и качеством кода
От: Михаил  
Дата: 03.12.07 16:00
Оценка:
Здравствуйте, shrecher, Вы писали:

S>Стиль кода, кстати, очень характерный для всех драйверов, никакого c++. Доморощенные списки и очереди. Нормально названные переменные и пр.


А Вы еще не заметили, какой здесь бред обсуждается?
Ну в каком стиле C++ написано ядро Windows?!
...А отсюда наливаем, когда рецепт написан совсем неразборчиво...
Re[8]: Корреляция между стилем и качеством кода
От: trophim Россия  
Дата: 04.12.07 22:49
Оценка:
Здравствуйте, SP_, Вы писали:

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


U>>Разжёвывать мне сейчас лень, кому надо — правильно поймут, что я имел в виду.


SP_>Батенька, складывается впечатление, что круче вашей фирмы только яйца. Озвучте пожалуйста название вашей конторы.


Название? Ха! Вот еще. Кому надо, те догадаются.
[EOF]
Let it be! — Давайте есть пчелу!
Re[6]: Корреляция между стилем и качеством кода
От: trophim Россия  
Дата: 04.12.07 22:49
Оценка:
Здравствуйте, bkat, Вы писали:

B>Извини, но такие вещи тупо декларируются в фирменном "coding guideline",

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

Та вы шо??? Никак не можно!!! У них там на фирме даже стулья расставлены как в Майкрософт (как в отделе разработки ядра), воздух дует как в Майкрософт (как в отделе разработки ядра), и ваще, если вы кнопки жмете как не-кернел программер, то не судьба в этой конторе поработать.
[EOF]
Let it be! — Давайте есть пчелу!
Re[7]: Корреляция между стилем и качеством кода
От: trophim Россия  
Дата: 04.12.07 22:49
Оценка:
AZ>>Все "забивают" на апдейт коментариев...

U>А вы обновляете их ежедневно ?

U>Наверное, глупо.

U>При нормально поставленном процессе это необходимо делать раз в месяц, а то и реже.


Каков тогда смысл в комментариях, если изменили функцию, комменты еще не исправили, а я уже успел на основе старых комментов разработать другую функциональность, которая совсем не учитывает внесенных изменений. И синий экран мне в подарок... Может лучше править комменты сразу?
[EOF]
Let it be! — Давайте есть пчелу!
Re[11]: Корреляция между стилем и качеством кода
От: trophim Россия  
Дата: 04.12.07 22:49
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>ну.. яб не стал ровнять начинающих руководителей и самодуров

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

Что-то автор боится называть контору. Может понял, что антирекламу уже сделал?
[EOF]
Let it be! — Давайте есть пчелу!
Re[7]: Корреляция между стилем и качеством кода
От: trophim Россия  
Дата: 04.12.07 23:14
Оценка:
Здравствуйте, egaron, Вы писали:

E>+10


+10! (факториал, то бишь)
[EOF]
Let it be! — Давайте есть пчелу!
Re[7]: Вот теперь более понятно
От: trophim Россия  
Дата: 04.12.07 23:14
Оценка:
Здравствуйте, Unmanaged, Вы писали:

B>>Чтобы сэкономить время на поиск программеров, вы можете просто зафиксировать свои представления

B>>о хорошем стиле и поместить их на фирменный сайт.
B>>Тем самым вы избавите себя от тех кандидатов, которые не захотят писать код в таком стиле

U>Интересная мысль.

U>Спасибо за идейку .

И все же, может озвучите название фирмы и дадите ссылку на сайт ваш?
[EOF]
Let it be! — Давайте есть пчелу!
Re[7]: Что-то мы ушли в сторону от обсуждения
От: trophim Россия  
Дата: 04.12.07 23:14
Оценка:
Здравствуйте, Кэр, Вы писали:

Кэр>Ужас

...летящий на крыльях ночи...
[EOF]
Let it be! — Давайте есть пчелу!
Re[2]: Автора этого кода на работу возьмёте?
От: trophim Россия  
Дата: 04.12.07 23:14
Оценка:
Здравствуйте, SergeCpp, Вы писали:

SC>Здравствуйте, Unmanaged!


SC>Автора вот этого кода на работу возьмёте?


SC>А вот этого
Автор: SergeCpp
Дата: 08.02.07
?


Ка грицца: спасибо, поблевал...
[EOF]
Let it be! — Давайте есть пчелу!
Re[4]: Корреляция между стилем и качеством кода
От: trophim Россия  
Дата: 04.12.07 23:14
Оценка:
Здравствуйте, Maxim S. Shatskih, Вы писали:

MSS>Шелл у нас мдааа... но, говоря про "хороший стиль кодирования виндов" — говорят именно о кернеле и вообще о native OS. Шелл писала другая команда, команда Win95, и написан он именно такими же руками, что и вся Win95.


Хм, я кажется знаю откуда эти руки росли...
[EOF]
Let it be! — Давайте есть пчелу!
Re[8]: Корреляция между стилем и качеством кода
От: Valery A. Boronin Россия linkedin.com/in/boronin
Дата: 05.12.07 12:54
Оценка:
Здравствуйте, trophim, Вы писали:

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

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

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

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

PPS Я не говорю о black boxes, где кроме спецификаций\документации на интерфейс/API ничего нет.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.