Как правильно форматировать код? - PullRequest
19 голосов
/ 12 марта 2009

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

Я считаю, что это способствует аккуратности и читабельности кода.

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

Один из моих учителей понижал одно из моих назначений, потому что я логически расставил свой код. Он сказал: «Когда вам придется читать код весь день в реальном мире, вы не будете вставлять этот межстрочный интервал и будете благодарить меня». Конечно, я никогда не читал и не буду его благодарить.

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

Это, вероятно, более распространено в языках типов VB, чем в языках типов C, но применяется та же концепция.

На ум приходят два вопроса:

  • Где вы оставите пустую строку в вашем коде?
  • Сколько межстрочного интервала слишком много?

Ответы [ 22 ]

0 голосов
/ 12 марта 2009

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

Вот метод, который я только что скопировал и вставил из проекта:

public static void Startup(bool startupUser)
{
    URI = "";
    AutoComplete = new AutoCompleteWrapper();
    SessionToken = Guid.Empty;
    ExternalDataSetLock = new object();

    ConfigDS.Init();
    CalendarDS.Init();
    CalendarDSBuilder.Init();

    if (startupUser && UserName != null)
    {
        string autoCompleteFilename = Path.Combine(UserFolder, "autocomplete.xml");
        AutoComplete.Load(autoCompleteFilename);
    }
}

Что здесь делают пустые строки? Они поясняют, что в этом методе в основном происходит три вида инициализации. Если я добавлю новое свойство, которое нужно инициализировать при запуске, я знаю, куда я собираюсь поместить строку, которая его инициализирует. Пустые строки также намекают на то, как я собираюсь реорганизовать эту функцию, если она удвоится в размере.

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

Но милосердие, это не причина, чтобы не использовать их.

0 голосов
/ 12 марта 2009

Я начал следовать указаниям Microsoft Design, найденным здесь:

Рекомендации по разработке для разработчиков библиотек классов

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