Давно уже идет спор, что лучше для оформления кода - пробелы или символы табуляции. У обоих способов есть плюсы и минусы и каждый волен выбирать свой собственный. Но лично я предпочитаю Tab и объясню почему.
В настройках редакторов можно установить значение по умолчанию для отступов во время перехода на новую строку. Допустим, что один программист использует два символа, а другой использует 4. При совместной разработке кода, форматирование превратиться в ужас если эти два человека будут писать код для одного и того же модуля. Особенно если вы пользуетесь нормальными средствами управления кодом, такими как git. Если объединить код таких двух программистов, то читать его потом будет нереально.
Можно воспользоваться автоформатированием, которое опять же поддерживается всеми современными редакторами кода. Открываем файл, видим ужас после работы git и двух программистов, которые любят разные отступы, нажимаем магические клавиши и вуаля, все отформатировано отлично. Второй программист делает то же самое, делает commit в репозиторий кода, а там уже первый программист сохранил свое форматирование. Результат? Кто пользовался git, угадает с первого раза, чем закончится это дело.
Я ничего плохого в пробелах не вижу, если все будут писать одинаково, но практика показывает, что это не получается. Поэтому лично я отдаю предпочтения табуляции, а там каждый настраивает свой редактор как хочет - рендерить 2 пробела вместо табуляции, или 8.
Можете здесь поспорить, что лучше, если хотите, только цивилизованно, а для меня золотые слова: Choose tabs, choose spaces, choose whatever layout conventions make sense to you and your team. It doesn't actually matter which coding styles you pick. What does matter is that you, and everyone else on your team, sticks with those conventions and uses them consistently.
Не всем нравится форматирование с 2 символами пробела и не всем нравится форматирование с 4-мя символами. Но при использовании табуляции, все могут настроить свой редактор кода, как они хотят и не создавать конфликтов в git.
Любители Tab оперируют часто тем, что он занимает на диске меньше места. Ну это фигня и на этот довод я бы не обращал внимания. При нынешних размерах дисков какие-то байты пробелов погоды не сыграют.
Я не утверждаю, что tab лучше, я всего лишь говорю, почему я выбрал их. Это такой же халивар, как Linux vs Windows или iOS vs Android и так далее. Каждый просто может выбрать то, что ему по душе, но если вы работаете в команде, вся команда должна писать код одинаково.
То же самый халивар можно развести на тему того, как оформлять фигурные скобки. Функции можно писать так:
void foo() {
}
или
void foo()
{
}
Да пишите как вам удобно, просто когда работаете в команде, пишите все одинаково. Я могу писать и так и так, я адаптируюсь под то, как пишут остальные программисты, которые работают над проектом. Но для себя больше предпочитаю tab из-за его гибкости.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
А скобки какие предпочитаете?
В скобках предпочитаю писать
void foo()
{
}
Тут нет никакой выгоды, просто привычка, но я переключаюсь очень быстро и на любой другой вариант. Когда нужно модифицировать чужой код, то открывая модуль сразу смотрю как он оформлен и оформляю свой код так же
Python исправляет дурные привычки лучше любых кнопок, фишек и прибамбасиков. Его код не допускает двоякого написания, в нём нет лишних конструкций, нет зависимости от множественного синтаксиса, все программисты должне придерживаться стандарта прилагающегося к документации по Python. Если учесть что любой программист должен обязательно познакомиться с этим языком, пусть даже не программируя на нём в последствии, то хорошие манеры таким образом развить в себе можно. Михаил, но ведь ни в одной книге по программированию нет неряшливого кода, а стиль отступов является деловм привычки, а не использования какого либо редактора, сам начиная изучение С++ прочитал сначала Герберта Шилдта, код всех примеров набирал самостоятельно используя листинги из книги, где видно автором было установленно 2 пробела, эта книга была для меня можно сказать вводным курсом в С++, но вот основательно стал изучать по книге Стивена Праты. Там в примерах кода 4 отступа, но к этому моменту выработалась привычка в 2 отступа, и не смотря на то что по содержанию книгу последнего считаю значительно лучше по содержанию, всё равно если можно так сказать в отношении кода, "почерк" менять не стал. Впрочем как и разночтения в написании деректив прекроцессора, здесь код Шилдта тоже выглядит на мой взгляд логичнее:
NetBeans пока не разочаровал
кстати, в нетбинсе жаба-код форматируется по египетски если чо
то есть
foo(){
}
еще на заметку
//gnu
namespace foospace
{
int Foo()
{
if (isBar)
{
bar();
return 1;
}
else
return 0;
}
}
//ANSI
namespace foospace
{
int Foo()
{
if (isBar)
{
bar();
return 1;
}
else
return 0;
}
}
//java
class foospace {
int Foo() {
if (isBar) {
bar();
return 1;
} else
return 0;
}
}
//linux
namespace foospace
{
int Foo()
{
if (isBar) {
bar();
return 1;
} else
return 0;
}
}
//K&R
namespace foospace {
int Foo() {
if (isBar) {
bar();
return 1;
} else
return 0;
}
}
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.