Стилевой кодовый минимум — различия между версиями

Материал из YourcmcWiki
Перейти к: навигация, поиск
м
м
Строка 13: Строка 13:
 
<blockquote>В Интернетах есть куча срачей на тему «табы vs пробелы», но когда в тред приходит человек, который говорит, что ему всё равно, хоть смесь — его точно бьют и те, и другие :)</blockquote>
 
<blockquote>В Интернетах есть куча срачей на тему «табы vs пробелы», но когда в тред приходит человек, который говорит, что ему всё равно, хоть смесь — его точно бьют и те, и другие :)</blockquote>
  
Соответственно, если используем пробелы, в опциях редактора ОТКЛЮЧАЕМ табы!
+
Соответственно, если используем пробелы, в опциях редактора '''отключаем табы'''!
Если в редакторе есть режим «эмуляции половины таба», ОБЯЗАТЕЛЬНО отключите и его, он генерирует смесь табов и пробелов! (в Midnight Commander например есть)
+
  
Если используем табы, то ВСЕ ОТСТУПЫ ДЕЛАЕМ ИСКЛЮЧИТЕЛЬНО ТАБАМИ!
+
Если в редакторе есть ещё и режим «эмуляции половины таба», '''обязательно''' отключите и его, ибо он генерирует смесь табов и пробелов! Пример такого редактора — встроенный в Midnight Commander.
 +
 
 +
Если же используем табы, то делаем все отступы '''исключительно табами'''!
  
 
== Блоки и функции ==
 
== Блоки и функции ==
Строка 24: Строка 25:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Очень желательно:
+
!width=33 % valign=top| Очень желательно:
! Можно, но не нужно — визуально тело сливается с условием:
+
!width=33 % valign=top| Можно, но не нужно — визуально тело сливается с условием:
! НИ В КОЕМ СЛУЧАЕ:
+
!width=33 % valign=top| НИ В КОЕМ СЛУЧАЕ:
 
|-
 
|-
 
|
 
|
 +
<<<<<<< старый текст:
 +
if (...)
 +
{
 +
    код...
 +
}
 +
=======
 
<pre>if (...)
 
<pre>if (...)
 
{
 
{
 
     код...
 
     код...
 
}</pre>
 
}</pre>
 +
>>>>>>> (чужая версия)
 
|
 
|
 +
<<<<<<< старый текст:
 +
if (...) {
 +
    код...
 +
}
 +
=======
 
<pre>if (...) {
 
<pre>if (...) {
 
     код...
 
     код...
 
}</pre>
 
}</pre>
 +
>>>>>>> (чужая версия)
 
Хотя, например, [http://perldoc.perl.org/perlstyle.html perlstyle] предлагает именно этот способ форматирования блоков, лично я не использую его и в Perl-коде, ибо неудобно.
 
Хотя, например, [http://perldoc.perl.org/perlstyle.html perlstyle] предлагает именно этот способ форматирования блоков, лично я не использую его и в Perl-коде, ибо неудобно.
 
|
 
|
 +
<<<<<<< старый текст:
 +
if (...)
 +
    {
 +
    код...
 +
    }
 +
=======
 
<pre>if (...)
 
<pre>if (...)
 
     {
 
     {
Строка 44: Строка 64:
 
     }
 
     }
 
</pre>
 
</pre>
 +
>>>>>>> (чужая версия)
 
или
 
или
 +
<<<<<<< старый текст:
 +
if (...)
 +
  {
 +
    код...
 +
  }
 +
=======
 
<pre>if (...)
 
<pre>if (...)
 
   {
 
   {
 
     код...
 
     код...
 
   }</pre>
 
   }</pre>
 +
>>>>>>> (чужая версия)
  
 
|}
 
|}

Версия 00:49, 30 мая 2011

Чтобы был качественный код, лучше следовать какому-то Style Guide, например гугловскому: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml

Но «чтобы не было говна», какому стилю следовать — не так важно, главное следовать хоть какому-то.

Как минимум:

Отступы

Я рекомендую использовать для отступов только пробелы и размер табуляции в 4 символа. НО не так важно, табы или пробелы и какой размер табуляции!

Важно, чтобы размер отступа был ОДИНАКОВЫЙ по всей программе и чтобы не было СМЕСИ табов с пробелами!

В Интернетах есть куча срачей на тему «табы vs пробелы», но когда в тред приходит человек, который говорит, что ему всё равно, хоть смесь — его точно бьют и те, и другие :)

Соответственно, если используем пробелы, в опциях редактора отключаем табы!

Если в редакторе есть ещё и режим «эмуляции половины таба», обязательно отключите и его, ибо он генерирует смесь табов и пробелов! Пример такого редактора — встроенный в Midnight Commander.

Если же используем табы, то делаем все отступы исключительно табами!

Блоки и функции

Во-первых, опять-таки их нужно хотя бы форматировать одинаково по всей программе. А во-вторых, фигурные скобочки должны быть на одном уровне с началом блока!

Очень желательно: Можно, но не нужно — визуально тело сливается с условием: НИ В КОЕМ СЛУЧАЕ:

<<<<<<< старый текст:

if (...)
{
    код...
}

=

if (...)
{
    код...
}

>>>>>>> (чужая версия)

<<<<<<< старый текст:

if (...) {
    код...
}

=

if (...) {
    код...
}

>>>>>>> (чужая версия) Хотя, например, perlstyle предлагает именно этот способ форматирования блоков, лично я не использую его и в Perl-коде, ибо неудобно.

<<<<<<< старый текст:

if (...)
    {
    код...
    }

=

if (...)
    {
    код...
    }

>>>>>>> (чужая версия) или <<<<<<< старый текст:

if (...)
  {
    код...
  }

=

if (...)
  {
    код...
  }

>>>>>>> (чужая версия)