Re[21]: Оцените код
От: ancient  
Дата: 11.09.08 11:26
Оценка:
Здравствуйте, dkon, Вы писали:

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


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


D>>>Предлагаю проголосовать в специально созданном по этой теме голосовании.


LMA>>А чего же не дали возможности свой вариант ответа вводить?


D>Думал, что постановка вопроса не предполагает вариаций Исправил.


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

0: ноль, просто ноль.
Re[22]: Оцените код
От: LordMAD Россия  
Дата: 11.09.08 12:57
Оценка:
Здравствуйте, ancient, Вы писали:

A>Мда... Особенно радуют те, кто голосуют "За, но иногда против" Неужто нельзя придумать константе имя, чтобы бы оно было, по крайней мере, такое же информативное, как значение константы?


Зачем? Чтобы кода было больше и, соответственно, чтобы было сложнее в нем разбираться?

Я уже писал выше, что любое правило можно довести до полного идиотизма:

const int empty_sum = 0;
int sum = empty_sum;

while (q()) sum += f();


Нравится, наверное, код, да?
Re[23]: Оцените код
От: ancient  
Дата: 11.09.08 14:11
Оценка: +1
Здравствуйте, LordMAD, Вы писали:

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


A>>Мда... Особенно радуют те, кто голосуют "За, но иногда против" Неужто нельзя придумать константе имя, чтобы бы оно было, по крайней мере, такое же информативное, как значение константы?


LMA>Зачем? Чтобы кода было больше и, соответственно, чтобы было сложнее в нем разбираться?


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

LMA>Я уже писал выше, что любое правило можно довести до полного идиотизма:


А зачем?

LMA>
LMA>const int empty_sum = 0;
LMA>int sum = empty_sum;

LMA>while (q()) sum += f();
LMA>


LMA>Нравится, наверное, код, да?


Против арифметического "0" ничего не имею, эту константу действительно все знают и именно под таким обозначением В отличии от... ну, ты знаешь какого числа
Re[24]: Оцените код
От: LordMAD Россия  
Дата: 11.09.08 15:15
Оценка: 1 (1)
Здравствуйте, ancient, Вы писали:

A>>>Мда... Особенно радуют те, кто голосуют "За, но иногда против" Неужто нельзя придумать константе имя, чтобы бы оно было, по крайней мере, такое же информативное, как значение константы?


LMA>>Зачем? Чтобы кода было больше и, соответственно, чтобы было сложнее в нем разбираться?


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


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

LMA>>Я уже писал выше, что любое правило можно довести до полного идиотизма:


A>А зачем?


Ответ на вопрос "Неужто нельзя придумать константе имя, чтобы бы оно было, по крайней мере, такое же информативное, как значение константы?"
Или конкретно имя empty_sum не нравится?

LMA>>
LMA>>const int empty_sum = 0;
LMA>>int sum = empty_sum;

LMA>>while (q()) sum += f();
LMA>>


LMA>>Нравится, наверное, код, да?


A>Против арифметического "0" ничего не имею, эту константу действительно все знают и именно под таким обозначением


Т.е. "За, но иногда против" нравится?

A>В отличии от... ну, ты знаешь какого числа


Кто чего не знает — угадать невозможно. Если программист не сейчас что-то придумал (например, такую константу), а помнит её (и не забудет через пол года) — то логично, что он считает, что и другие её помнят. Это не задача программиста — сидеть и угадывать, что знают все, а что знают единицы. Если программист будет соц.опросы устраивать на тему: "а вам понятно, что есть "int sum = 0;", то производительность труда его будет "не айс" . В конце концов, если действительно членам команды, которым действительно с этим кодом работать, скажут на code review, что не понятно это им — можно будет решать — толи исправлять, толи орг.выводы делать относительно тех, кому не понятно — это уже зависит от того, что именно им не понятно.
Re[25]: Оцените код
От: Аноним  
Дата: 11.09.08 16:03
Оценка:
Здравствуйте, LordMAD, Вы писали:

LMA>Кто чего не знает — угадать невозможно. Если программист не сейчас что-то придумал (например, такую константу), а помнит её (и не забудет через пол года) — то логично, что он считает, что и другие её помнят. Это не задача программиста — сидеть и угадывать, что знают все, а что знают единицы. Если программист будет соц.опросы устраивать на тему: "а вам понятно, что есть "int sum = 0;", то производительность труда его будет "не айс" . В конце концов, если действительно членам команды, которым действительно с этим кодом работать, скажут на code review, что не понятно это им — можно будет решать — толи исправлять, толи орг.выводы делать относительно тех, кому не понятно — это уже зависит от того, что именно им не понятно.


ага, когда программистов ровно 3 и сидят они в одной кучке. А когда их 103 и сидят они в разных странах, вот тогда появляются проблемы
Re[26]: Оцените код
От: LordMAD Россия  
Дата: 12.09.08 03:55
Оценка:
Здравствуйте, Аноним, Вы писали:

LMA>>Кто чего не знает — угадать невозможно. Если программист не сейчас что-то придумал (например, такую константу), а помнит её (и не забудет через пол года) — то логично, что он считает, что и другие её помнят. Это не задача программиста — сидеть и угадывать, что знают все, а что знают единицы. Если программист будет соц.опросы устраивать на тему: "а вам понятно, что есть "int sum = 0;", то производительность труда его будет "не айс" . В конце концов, если действительно членам команды, которым действительно с этим кодом работать, скажут на code review, что не понятно это им — можно будет решать — толи исправлять, толи орг.выводы делать относительно тех, кому не понятно — это уже зависит от того, что именно им не понятно.


А>ага, когда программистов ровно 3 и сидят они в одной кучке. А когда их 103 и сидят они в разных странах, вот тогда появляются проблемы


Наоборот, чем команда больше, тем это работает лучше, потому что координатор code review в любом случае должен состав участвующих делать репрезентативным по отношению ко всей команде. А вот в маленьких командах есть вероятность, что вся команда код пропустит дальше, а при вливании в команду новых людей — для них такой код будет проблемой, поэтому в маленьких командах приходится привлекать людей из других команд. Кроме того, в насколько маленьких командах (3 человека), code review стараются сделать менее формальным, что негативно сказывается на координации code review.
Re[25]: Оцените код
От: ancient  
Дата: 12.09.08 04:40
Оценка:
Здравствуйте, LordMAD, Вы писали:

LMA>Дык, пусть учатся. Планка должна задаваться не по самому глупому или малоопытному человеку в команде, а наоборот, в идеале. Требование для программиста "суметь найти в интернете описание" я не считаю высоким. Специально сейчас попробовал найти в MSDN константу FDFDFDFD — сразу получил ссылку на соответствующую статью.


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

LMA>>>Я уже писал выше, что любое правило можно довести до полного идиотизма:


A>>А зачем?


LMA>Ответ на вопрос "Неужто нельзя придумать константе имя, чтобы бы оно было, по крайней мере, такое же информативное, как значение константы?"

LMA>Или конкретно имя empty_sum не нравится?

Нравится, только оно ничего не упрощает для понимания, а значит является лишним.

LMA>>>
LMA>>>const int empty_sum = 0;
LMA>>>int sum = empty_sum;

LMA>>>while (q()) sum += f();
LMA>>>


LMA>>>Нравится, наверное, код, да?


A>>Против арифметического "0" ничего не имею, эту константу действительно все знают и именно под таким обозначением


LMA>Т.е. "За, но иногда против" нравится?


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

A>>В отличии от... ну, ты знаешь какого числа


LMA>Кто чего не знает — угадать невозможно. Если программист не сейчас что-то придумал (например, такую константу), а помнит её (и не забудет через пол года) — то логично, что он считает, что и другие её помнят. Это не задача программиста — сидеть и угадывать, что знают все, а что знают единицы. Если программист будет соц.опросы устраивать на тему: "а вам понятно, что есть "int sum = 0;", то производительность труда его будет "не айс" . В конце концов, если действительно членам команды, которым действительно с этим кодом работать, скажут на code review, что не понятно это им — можно будет решать — толи исправлять, толи орг.выводы делать относительно тех, кому не понятно — это уже зависит от того, что именно им не понятно.


Дык, правило, что надо именовать все константы, и избавляет программиста от необходимости думать, кто что знает. Если число имеет смысл отличный от абстрактного ноль икс эф дэ, опиши этот смысл в имени и используй имя. Почему даже MS в crt использует имя, а ты считаешь, что тебе это не нада?
Re[26]: Оцените код
От: LordMAD Россия  
Дата: 12.09.08 08:13
Оценка:
Здравствуйте, ancient, Вы писали:

LMA>>Дык, пусть учатся. Планка должна задаваться не по самому глупому или малоопытному человеку в команде, а наоборот, в идеале. Требование для программиста "суметь найти в интернете описание" я не считаю высоким. Специально сейчас попробовал найти в MSDN константу FDFDFDFD — сразу получил ссылку на соответствующую статью.


A>Везет тебе, ты знаешь, что искать надо в MSDN Другой бы, увидевший 0xFD первый раз, сначала поискал в исходниках, потом во внешних хедерах, потом стал бы дергать коллег... Вобщем, потратил бы на свое обучение времени несоразмерно с реальной полезностью этого знания.


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

LMA>>Ответ на вопрос "Неужто нельзя придумать константе имя, чтобы бы оно было, по крайней мере, такое же информативное, как значение константы?"

LMA>>Или конкретно имя empty_sum не нравится?

A>Нравится, только оно ничего не упрощает для понимания, а значит является лишним.


LMA>>>>
LMA>>>>const int empty_sum = 0;
LMA>>>>int sum = empty_sum;

LMA>>>>while (q()) sum += f();
LMA>>>>


LMA>>>>Нравится, наверное, код, да?


A>>>Против арифметического "0" ничего не имею, эту константу действительно все знают и именно под таким обозначением


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

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

LMA>>Т.е. "За, но иногда против" нравится?


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


И люди со здравым смыслом и минимальным опытом отладки, когда они пишут именно под MS VS, 0xFDFDFDFD и так понимают, я думаю.

LMA>>Кто чего не знает — угадать невозможно. Если программист не сейчас что-то придумал (например, такую константу), а помнит её (и не забудет через пол года) — то логично, что он считает, что и другие её помнят. Это не задача программиста — сидеть и угадывать, что знают все, а что знают единицы. Если программист будет соц.опросы устраивать на тему: "а вам понятно, что есть "int sum = 0;", то производительность труда его будет "не айс" . В конце концов, если действительно членам команды, которым действительно с этим кодом работать, скажут на code review, что не понятно это им — можно будет решать — толи исправлять, толи орг.выводы делать относительно тех, кому не понятно — это уже зависит от того, что именно им не понятно.


A>Дык, правило, что надо именовать все константы, и избавляет программиста от необходимости думать, кто что знает. Если число имеет смысл отличный от абстрактного ноль икс эф дэ, опиши этот смысл в имени и используй имя. Почему даже MS в crt использует имя, а ты считаешь, что тебе это не нада?


Потому, что это менее читабельно.
Re[12]: Оцените код
От: degor Россия  
Дата: 15.09.08 19:40
Оценка: :))
Здравствуйте, slavo, Вы писали:

S>тихо, тихо. только не все сразу, вакансии кончились


а вот мимо этого я не пройду! типа анекдот.

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

— мальчики, мальчики, не все сразу! — спросонок бормотала белоснежка.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.