Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 18:13
Оценка: +1 -2 :))
Привет.

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

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

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

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


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

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

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

Спасибо за внимание.
За ссылки на обсуждения данного вопроса — отдельное спасибо.
STATUS_INVALID_DEVICE_REQUEST
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: Корреляция между стилем и качеством кода
От: Roman Odaisky Украина  
Дата: 25.11.07 19:24
Оценка: +1
Здравствуйте, Unmanaged, Вы писали:

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

Это как?

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

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

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: Корреляция между стилем и качеством кода
От: 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[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[2]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 20:44
Оценка: :))) :)
B>Есть бесконечное число способов "хорошо" и "читабельно" оформить код.

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

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


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

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

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

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

Излишней?
Возможно.
Но совсем без неё — никак.
STATUS_INVALID_DEVICE_REQUEST
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[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[3]: Корреляция между стилем и качеством кода
От: raydac Эстония http://www.igormaznitsa.com
Дата: 25.11.07 21:05
Оценка: +1
U>Код, который без проблем, не напрягаясь, читает большинство — и есть эталон в моём понимании.

код, при существующих и применяющихся концепциях языков программирования, без напряжения может понимать только тот кто его написал, да и то если его не просят вернуться к нему через месяц другой после написания.. так же как у алгоритмов и литературных произведений, есть бесконечное количество стилей и если чел пишет неперевариваемый код, но комментирует каждую строку и общие идеи то это уже неплохо
так как стиль вырабатывается годами (как я и писал выше), то ждать чуда в том что придет готовенькое не стоит, так как это готовенькое скорее всего придет не на собеседование, а его приведет владелец конторы и он сам глянет ваше резюме и будет вызвать вас в кабинет, каждую встречу начиная словами — "я 20 лет код писал, а теперь вот решил поруководить.. надо бы вам оптимизировать ваш стиль кодирования"
https://github.com/raydac
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[6]: Корреляция между стилем и качеством кода
От: Unmanaged Россия ICQ 476611995
Дата: 25.11.07 21:18
Оценка: -10 :)))
B>Ты мешаешь в кучу стиль кодирования с каким-то узкоспециализированным опытом.

Нет, просто ты недопонял мои мысли, такое бывает.
Разжёвывать мне сейчас лень, кому надо — правильно поймут, что я имел в виду.
STATUS_INVALID_DEVICE_REQUEST
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>


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