Комментарии 28
if (b) { // Пробел после ключевого слова в условии или цикле
} else { // Пробелы вокруг else
}
вместо того чтобы выделить весь блок, поставив её в той же позиции что и соответствующая ей закрывающая скобка "}":
if (b)
{
// текст блока
}
else
{
// текст блока
}
Это заставляет чересчур полагаться на правильно расставленные отступы для всего текста блока — если в части по каким-то причинам они расставлены неправильно, то начинаешь неправильно читать области действия.Есть какие-то причины так экономить строчки?
Это заставляет чересчур полагаться на правильно расставленные отступы для всего текста блока — если в части по каким-то причинам они расставлены неправильно
Так можно же прогнать через линтер и все отступы будут там где надо? Мне думается в С++ эта проблема полностью решена.
Если же ты редактируешь её текст, пользуясь всеми любимой копипастой — то автоматическое форматирование с лёгкостью поставит волосы дыбом.
Не соглашусь — хороший линтер должен срабатывать где-то около нажатия ctrl+s (а очень хороший — и по ctrl+v). И уж точно перед коммитом.
Можете привести пример когда автоформаттер распотрошит код на вставке? Из моей практики (JS & Go форматируют на вставке) у меня был только один нюанс недавно. Когда вставлял куски yaml в .ts файл чтобы переписать yaml в inline-js, автоформаттер отбивал в строках всяческие -
пробелами, но это решилось одним ctrl+shift+v (у меня это вставка без форматирования). В остальных случаях форматирование автоматически применяется на основании контекста.
Есть какие-то причины так экономить строчки?Есть. Как минимум больше полезного текста помещается на экран.
А вообще, на вкус и цвет все фломастеры разные.
Чем более концентрирован текст, тем сложнее его читать. А чтение и так — самая сложная часть разработки.
> А вообще, на вкус и цвет все фломастеры разные.
Вот только это — руководство по стилю, т.е. оно заставляет всех жрать фломастер одного цвета.
Как человек долгое время писавший так:
if
{
}
а потом так:
if {
}
считаю, что это дело исключительно привычки. Привычка формируется быстро.
Ах да, к чему это я. Все это исключительно дело привычки
del
Простите, а переведены только части 1, 8, 9, 10? Просто только сейчас увидел часть 10, но как-то стало интересно, что там в остальных частях.
Почему максимальная длина строки 80?
Экран 80 символов. По 1 символу на рамку редактора справа и слева. Еще нужно хотя бы 2 символа оставить, чтобы было понятно, что строка закончилась, и за краем окна ничего нет. Остается 76 символов.
Если мне понадобится закомментировать строку, то я должен буду добавить 3 символа, // и 1 пробел, после этого строка все равно не должна вылезти за пределы окна.
Итого остается 73 символа.
Иначе будте вот так
Я вот думаю, что 80 символов на строку во времена 16:9 — это мало.
2 пробела? Злодейство.
MyClass::MyClass(int var)
: some_var_(var), some_other_var_(var + 1) {
DoSomething();
}
Перенос двоеточия это просто убийство, лучше сразу застрелиться.
Не раз встречался с ситуацией, когда на собесе спрашивают что-то умное, красивое и интересное. Но потом в реальном проекте погружают в такую чачу, что голова становится квадратной через неделю, а глаза читают любой код, даже самый корявый без эмоций. Реальные проблемы в коде, они не обложены ни комментариями ни красивым форматированием. Найди проблему в коде 20 летней давности и станешь внедорожным программистом, которому наплевать на любую грязь. Вот это я называю hard-skill. А украшение - это soft-skill.
Руководство Google по стилю в C++. Часть 10