Основной вопрос по макету кода - PullRequest
3 голосов
/ 04 марта 2010

Привет, у меня простой вопрос, я задал 3-4 разных человека и получил разные ответы от каждого из них.

Какая схема кода лучше и больше используется?

действительно ли это имеет значение, если оно согласованно?

Что считается лучшей практикой в ​​мире работы программистом?

Например,

A)

for(int i=0;i<8;i++)
{
    for(int p=0;p<8;p++)
    {
        if(array[i][p]->Equals(String))
        {
                    //Do Stuff
        }
    }
}

ИЛИ

B)

for(int i=0;i<8;i++){
 for(int p=0;p<8;p++){
  if(array[i][p]->Equals(String)){
                    //Do Stuff
                }
        }
}

Спасибо, Тим

Ответы [ 8 ]

1 голос
/ 04 марта 2010

Практически во всех случаях есть четкий ответ: используйте стиль, который в настоящее время используется в кодовой базе, с которой вы работаете. Если вы начинаете новый проект, используйте стиль, который в настоящее время используется в других проектах, поддерживаемых командой, которая будет поддерживать ваш код.

Основы кода, с которыми я работал, в значительной степени основывались на GCC и другом программном обеспечении FSF, что означает, что все мои проекты использовали стиль с "{" на отдельной строке. Я мог бы придумать обоснования того, почему это «лучше», но это вопрос субъективного стиля. Быть последовательным в проекте и в команде - объективно лучше.

1 голос
/ 04 марта 2010

Существует несколько опубликованных руководств по стилю - например, у Google это здесь , и это требуется для функций:

ReturnType ClassName::FunctionName(Type par_name1, Type par_name2) {
  DoSomething();
  ...
}

и для блоков:

if (condition) {  // no spaces inside parentheses
  ...  // 2 space indent.
} else {  // The else goes on the same line as the closing brace.
  ...
}

с аналогичными примерами для других блоков.

Итак, осмотрите несколько таких руководств по стилю, выберите одно из довольно престижного источника и вам нравится, и если кто-то возражает против вашего стиля, просто скажите «о, я взял это из X» (где X может Google, geosoft или любой другой источник, который вам нравится (многие другие перечислены здесь ).

0 голосов
/ 04 марта 2010

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

С возрастом мое зрение становится все более астигматичным. Без операции астигматизм можно исправить с помощью очков или контактов, но коррекция далека от совершенства.

Астигматизм затрудняет чтение, включая чтение кода.

Для человека с астигматизмом, такого как я, identifiers_with_underscored_spacing гораздо легче читать, чем IdentifiersWithCamelCaseWordBreaks.

Точно так же, для меня скобки на строках легче читать, чем скобки, разделяющие строку с кодом.

Поэтому я рекомендую второй стиль, который вы предлагаете, потому что он более доступен.

0 голосов
/ 04 марта 2010

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

Однако, если вы учитесь в колледже или никогда не пользовались языком, в котором используются фигурные скобки, я бы предложил размещать фигурные скобки на отдельной строке. Я обнаружил, что у новых разработчиков могут возникнуть проблемы с определением отсутствующих фигурных скобок, когда они помещаются в одну строку с кодом. Это, вероятно, не так уж важно для современных IDE.

0 голосов
/ 04 марта 2010

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

Мне нравится сжатый стиль, он делает код более компактным, и, поскольку мне нравится, когда мои функции компактны и помещаются на экране, это помогает.

Хотя это сводит других людей с ума, и им не нравится, когда они не видят начало и конец блока на своей собственной линии. Я вижу их точку зрения.

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

Конечно, YMMV.

0 голосов
/ 04 марта 2010

Что, нет среднего уровня? Всего два примера, каждый из которых рассчитан на (относительно) крайнюю позицию?

Очевидно, что вы пропустили целую кучу промежуточных примеров с множеством немного отличающихся правил форматирования.

На самом деле вы не прикладываете никаких усилий, если не можете придумать еще как минимум десять вариантов. Два варианта недостаточно, чтобы сосредоточиться на нюансах.

Вы можете - если хотите - быть ленивым. Приличный IDE будет форматировать для вас. Я использую Eclipse, и он форматируется для меня, и это то, что я использую, даже не думая об этом.

Вы также можете загружать и читать открытый исходный код и фактически эмулировать стили, которые вы там найдете. Это немного менее ленивый подход, вы должны читать чужой код.

0 голосов
/ 04 марта 2010

Здесь нет правильного или неправильного. Это зависит от вас или вашей команды / организации.

Что касается скобок, моя нынешняя команда выбрала вариант B, но я на самом деле предпочитаю вариант A.

Лично я бы порекомендовал немного больше пробелов, особенно после "for" и "if", и немного больше отступа для опции B, для удобства чтения. Но это только мои предпочтения.

0 голосов
/ 04 марта 2010

Это полностью субъективно. Оба популярны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...