Здравствуйте, The_Thing, Вы писали:
T_T>имхо...? T_T>Хотелось бы до обеда по мск получить ответ так как собираются выслушать наши пожелания. А так как, чел который нас собирает не особо валакёт в этом деле(у нас всё так в России), не хотелось бы потом позориться за свой код прийдя в другую контору!
T_T>пишите, что от вас требуют, и какие недоработки вы видите в требованиях от вас. T_T>спасибо.
Это зависит от языка.
Когда передо мной встал вопрос стандартов кодирования в команде я поставил fxcop и stylecop в стандартной конфигурации.
Re[7]: У кого какой стандарт кодирования на предприятие?
Если честно — не видно нифига. Допускаю, что это вопрос привычки. Но без привычки таки не видно. И этот пример с комментариями не лучше, чем тот что без.
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, Donz, Вы писали:
D>>1)открывающая фигурная скобка всегда на новой строке (платят НЕ за строки, если что ).
_FR>Как я посмотрю, это достаточно распространённый стиль. А почему?
Это еще МакКоннелл объяснял. Когда скобки на одном уровне проще визуально проверить их парность.
Re[11]: У кого какой стандарт кодирования на предприятие?
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, samius, Вы писали:
_FR>>>Или, например, в T-SQL как надо писать (где тоже BEGIN-END язык)?
S>>Мы не договоримся. Речь идет о субъективном качестве восприятия, которое еще и зависит от принятых в команде стандартов.
_FR>Пожалуйста ответь на конкретный вопрос: среди тебя или среди твоей команды как принято писать T-SQL? Переносите BEGIN-END или нет? Или не пишите и такой вопрос попросту не стоит?
Мы фактически не пишем T-SQL. BEGIN-END у нас встречаются только в deploy или update скриптах и попадают туда сгенеренные в Sql Мanagement Studio без переформатирования, т.е. фактически как SqlMS положит, так и есть. Команду это фактически не напрягает, т.к. соотношение объемов кода cs против всего SQL в проекте примерно 15Мб против 150Кб. Такой вопрос с BEGIN-END просто не вставал.
_FR>Договариваться о том, как лучше или о том, как должно быть я не буду Но мне инетерсно, наблюдается ли какая-нибудь последовательность в стандартах.
Вообще о последовательности в стандартах для разных языков (в нашей команде) речи не идет. А в рамках C# самая значительная последовательность — это то, что уже налабано слишком много кода чтобы что-то менять. Переформатировать код технически не так сложно. А вот причина изменения стандарта должна быть достаточно серьезной. Т.е. последовательность такая: приняли — пользуемся.
_FR>Вот в данном вопросе о скобочках я вижу противоречие: в языках со скобочками "Проще код читать" тогда, когда открывающая скобка на отдельной строке. Примеры такого подхода, как я и говорил и что подтверждают оценки (здесь
) встречаются часто. Однако, тот же подход в ни в T-SQL, ни тем более в бэйсике, почти не увидеть. Кто-нибудь может мне сказать, почему? Потому что, когда вместо скобочки текст, то "Проще код читать" по-другому? И только-то?
Не скажу, какая причина основная, но эта со скобочками — одна из причин.
Скобочки друг под другом — хорошо. Текст друг под другом — тоже хорошо. С текстом уже не так важно, расположены ли друг под другом скобки
BEGIN
END
либо какой другой текст, типа
FOR ...
END
Главное чтобы он одинаково подсвечивался средой и был бы одного регистра, тогда глаз проглотит.
А
for
}
— это для глаза тяжело увязать в пару.
S>>Вот до последней команды, в которой я работал, привык писать так:
_FR>Привыкну-не привыкну не интересно, это уже другой вопрос. Меня же интересует, как делаете и есть ли какие мысли по этому поводу кроме того, что "делаем так потому что такие правила". Ведь, наверное, "такие правила" не потому "что простакие такие и всё", а потому что "что-то ещё".
Такие правила существуют чтобы каждый член команды не форматировал код согласно своим субъективным ощущениям прекрасного. Какие они в деталях — уже не так важно, как то, что набор правил должен нравиться большинству команды. Демократия здесь уместна до тех пор пока не будет принят _единый_ стандарт.
_FR>P.S. Переубеждать кого-то в чём-то или что-то пропагандировать у меня возможности нет, флейм затеял только в качестве очередной попытки отыскать ответ на вопрос, выделенный жирным. Вернее, один вариант ответа можно найти в CodeComplete, но он, вот парадокс, расходится с видимой мне практикой
На вопрос почему со скобками я попытался ответить. По поводу обобщенного "почему" в случае принятия командных стандартов (отступы, переносы и т.п.) — ответ можно искать долго, потому как перед принятием командных стандартов как правило не производятся какие-нибудь серьезные исследования. В лучшем случае за основу берется чей-то стандарт и бегом кусочно изменяется под себя.
Re[5]: У кого какой стандарт кодирования на предприятие?
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, gandjustas, Вы писали:
D>>>>1)открывающая фигурная скобка всегда на новой строке (платят НЕ за строки, если что ).
_FR>>>Как я посмотрю, это достаточно распространённый стиль. А почему? G>>Это еще МакКоннелл объяснял. _FR>МакКонелл как раз объяснял про открывающую кавыку на одной строке с ключевым словом.
А какая разница?
G>>Когда скобки на одном уровне проще визуально проверить их парность. _FR>Вот в это не могу поверить. К тому же, мне непарность скобок показывает ИДЕ.
Это она показыват гораздо позже и зачастю гораздо менее понятно.
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, samius, Вы писали:
_FR>Если нет желания флеймить, просто пошли меня нафик и я пойму: темка-то та ещё :о))
Нет, желания нет, но и посылать не стану
_FR>Но всё же: а если данный код написан на паскале или бэйсике, то как он должен выглядеть, что бы "было видно"?
_FR>Ы? _FR>
_FR>(* сорри, не помню уже как закрываются блоки и как писать коментарий до конца строки *)
_FR>if(someExpression) begin
_FR> someCode();
_FR> for(var i=0; i<N; i++) begin
_FR> if(someExpression2) begin
_FR> someCodefsdfs();
_FR> someCodefdsfdfds();
_FR> end else begin
_FR> someCodefsdsd();
_FR> end; (* if *)
_FR> someCodegfgxgvcx();
_FR> end; (* for *)
_FR>end else begin
_FR> someCodevxcvxcv();
_FR>end; (* if *)
_FR>
_FR>или
S>>Так виднее. _FR>
_FR>if(someExpression)
_FR>begin
_FR> someCode();
_FR> for(var i=0; i<N; i++)
_FR> begin
_FR> if(someExpression2)
_FR> begin
_FR> someCodefsdfs();
_FR> someCodefdsfdfds();
_FR> end
_FR> else
_FR> begin
_FR> someCodefsdsd();
_FR> end;
_FR> someCodegfgxgvcx();
_FR> end;
_FR>end
_FR>else
_FR>begin
_FR> someCodevxcvxcv();
_FR>end;
_FR>
_FR>? Оверхеда синтаксического не видно?
Нет. И кода тоже не видно. Лет 10 назад — прочитал бы второй вариант легко.
Но с паскалем — тут другая клиника. Впринципе "begin" и "end" сами по себе разной длины и друг под другом не так замечательно смотрятся, как фигурные скобки. Потому я в паскалевскую пору предпочитал что-то среднее между первым и вторым вариантом.
_FR>Или, например, в T-SQL как надо писать (где тоже BEGIN-END язык)?
Мы не договоримся. Речь идет о субъективном качестве восприятия, которое еще и зависит от принятых в команде стандартов.
Вот до последней команды, в которой я работал, привык писать так:
if(someExpression2)
someCodefsdsd();
В последней команде стандарт такой:
if(someExpression2)
{
someCodefsdsd();
}
Я дико возмущался такому стандарту. Но спустя 3 года привых и не нахожу здесь ничего лишнего. Даже пишу так для себя. Если поработаю 3 года в команде, где будет так
if(someExpression2) {
someCodefsdsd();
}
То и к этому привыкну. Но не сразу. Думаю, что месяцев 3-6 уйдет.
Re[2]: У кого какой стандарт кодирования на предприятие?
Здравствуйте, Donz, Вы писали:
D>Для Java приняли Sun'овскую рекомендацию, с некоторыми оговорками: D>1)открывающая фигурная скобка всегда на новой строке (платят НЕ за строки, если что ).
Ну, если что — то отдельно стоящая скобка, как и комментарий, и пустые строки — все равно не считаются за строку кода . Строка кода — это то, в чем возможна бага.
D>Крайней рекомендую сразу же поставить какую-нибудь приблуду, которая мониторит VCS на предмет изменений, а измененный код мониторит на соответствие соглашению по оформлению кода. Иначе получается зоопарк.
Тул — хорошо. А еще лучше — код-ревью проводить. В принципе, тогда можно и без тула, хотя тул — хорошо.
имхо...?
Хотелось бы до обеда по мск получить ответ так как собираются выслушать наши пожелания. А так как, чел который нас собирает не особо валакёт в этом деле(у нас всё так в России), не хотелось бы потом позориться за свой код прийдя в другую контору!
пишите, что от вас требуют, и какие недоработки вы видите в требованиях от вас.
спасибо.
Re: У кого какой стандарт кодирования на предприятие?
Здравствуйте, The_Thing, Вы писали:
T_T>пишите, что от вас требуют, и какие недоработки вы видите в требованиях от вас. T_T>спасибо.
Если это С++, то у нас было основано на C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (C++ In-Depth Series) by Herb Sutter & Andrei Alexandrescu. То есть как база, бралось это, плюс наши свои дополнения.
Lisp is not dead. It’s just the URL that has changed: http://clojure.org
Re: У кого какой стандарт кодирования на предприятие?
Здравствуйте, The_Thing, Вы писали:
T_T>имхо...? T_T>Хотелось бы до обеда по мск получить ответ так как собираются выслушать наши пожелания. А так как, чел который нас собирает не особо валакёт в этом деле(у нас всё так в России), не хотелось бы потом позориться за свой код прийдя в другую контору!
T_T>пишите, что от вас требуют, и какие недоработки вы видите в требованиях от вас. T_T>спасибо.
Для Java приняли Sun'овскую рекомендацию, с некоторыми оговорками:
1)открывающая фигурная скобка всегда на новой строке (платят НЕ за строки, если что ).
2)Длина строки 120-140 символов. 80 символов на строку — это законченный архаизм
3)Используем табы, один таб — два пробела, а не восемь.
Крайней рекомендую сразу же поставить какую-нибудь приблуду, которая мониторит VCS на предмет изменений, а измененный код мониторит на соответствие соглашению по оформлению кода. Иначе получается зоопарк.
Re: У кого какой стандарт кодирования на предприятие?
Здравствуйте, abibok, Вы писали:
A>StyleCop + FxCop, которые ломают билд при любой ошибке. Правила без энфорсмента не имеют смысла.
Поддерживаю.
Кстати, если кому надо — настройки для студии 2008sp1 и styleCop 4.3. Т.к. стоит куча аддинов, экспортировал только настройки текстового редактора + подсветку. Как оно выглядит — на скриншотах в архиве. Settings.StyleCop кинуть в корень папок с исходниками (например в Documents\Visual Studio 2008). Правится через контекстное меню проекта (в солюшн эксплорере)-> StyleCop settings -> вкладка "Settings Files" -> Merge with parent|Edit
На ваш страх и риск естественно
Re[2]: У кого какой стандарт кодирования на предприятие?
Здравствуйте, gandjustas, Вы писали:
D>>>1)открывающая фигурная скобка всегда на новой строке (платят НЕ за строки, если что ).
_FR>>Как я посмотрю, это достаточно распространённый стиль. А почему?
G>Это еще МакКоннелл объяснял.
МакКонелл как раз объяснял про открывающую кавыку на одной строке с ключевым словом.
G>Когда скобки на одном уровне проще визуально проверить их парность.
Вот в это не могу поверить. К тому же, мне непарность скобок показывает ИДЕ.
Help will always be given at Hogwarts to those who ask for it.
Re[6]: У кого какой стандарт кодирования на предприятие?
Здравствуйте, gandjustas, Вы писали:
D>>>>>1)открывающая фигурная скобка всегда на новой строке (платят НЕ за строки, если что ). _FR>>>>Как я посмотрю, это достаточно распространённый стиль. А почему? G>>>Это еще МакКоннелл объяснял. _FR>>МакКонелл как раз объяснял про открывающую кавыку на одной строке с ключевым словом. G>А какая разница?
Такая, что он _объяснял_, _почему_ другой способ является более предподчтительным.
G>>>Когда скобки на одном уровне проще визуально проверить их парность. _FR>>Вот в это не могу поверить. К тому же, мне непарность скобок показывает ИДЕ. G>Это она показыват гораздо позже и зачастю гораздо менее понятно.
G>Пример
Если нет желания флеймить, просто пошли меня нафик и я пойму: темка-то та ещё :о))
S>Если честно — не видно нифига.
Но всё же: а если данный код написан на паскале или бэйсике, то как он должен выглядеть, что бы "было видно"?
Ы?
(* сорри, не помню уже как закрываются блоки и как писать коментарий до конца строки *)if(someExpression) begin
someCode();
for(var i=0; i<N; i++) begin
if(someExpression2) begin
someCodefsdfs();
someCodefdsfdfds();
end else begin
someCodefsdsd();
end; (* if *)
someCodegfgxgvcx();
end; (* for *)end else begin
someCodevxcvxcv();
end; (* if *)
или
S>Так виднее.
if(someExpression)
begin
someCode();
for(var i=0; i<N; i++)
begin
if(someExpression2)
begin
someCodefsdfs();
someCodefdsfdfds();
end
else
begin
someCodefsdsd();
end;
someCodegfgxgvcx();
end;
end
else
begin
someCodevxcvxcv();
end;
? Оверхеда синтаксического не видно?
Или, например, в T-SQL как надо писать (где тоже BEGIN-END язык)?
Help will always be given at Hogwarts to those who ask for it.
Re[10]: У кого какой стандарт кодирования на предприятие?
Здравствуйте, samius, Вы писали:
_FR>>Или, например, в T-SQL как надо писать (где тоже BEGIN-END язык)?
S>Мы не договоримся. Речь идет о субъективном качестве восприятия, которое еще и зависит от принятых в команде стандартов.
Пожалуйста ответь на конкретный вопрос: среди тебя или среди твоей команды как принято писать T-SQL? Переносите BEGIN-END или нет? Или не пишите и такой вопрос попросту не стоит?
Договариваться о том, как лучше или о том, как должно быть я не буду Но мне инетерсно, наблюдается ли какая-нибудь последовательность в стандартах.
Вот в данном вопросе о скобочках я вижу противоречие: в языках со скобочками "Проще код читать" тогда, когда открывающая скобка на отдельной строке. Примеры такого подхода, как я и говорил и что подтверждают оценки (здесь
) встречаются часто. Однако, тот же подход в ни в T-SQL, ни тем более в бэйсике, почти не увидеть. Кто-нибудь может мне сказать, почему? Потому что, когда вместо скобочки текст, то "Проще код читать" по-другому? И только-то?
S>Вот до последней команды, в которой я работал, привык писать так:
Привыкну-не привыкну не интересно, это уже другой вопрос. Меня же интересует, как делаете и есть ли какие мысли по этому поводу кроме того, что "делаем так потому что такие правила". Ведь, наверное, "такие правила" не потому "что простакие такие и всё", а потому что "что-то ещё".
P.S. Переубеждать кого-то в чём-то или что-то пропагандировать у меня возможности нет, флейм затеял только в качестве очередной попытки отыскать ответ на вопрос, выделенный жирным. Вернее, один вариант ответа можно найти в CodeComplete, но он, вот парадокс, расходится с видимой мне практикой
Help will always be given at Hogwarts to those who ask for it.
Re[11]: У кого какой стандарт кодирования на предприятие?
Всё просто — скобочки на новых строках создают пустое пространство, визуально выделяя блоки кода. От begin/end такого выигрыша не будет и тут уже важнее большие отступы.