Есть ли стандартные форматы для комментариев в рамках кода?

Теперь я использую одну из альтернативных таблиц Kingsoft в MS Excel. Мой фрагмент ниже используется для запуска приложения в фоновом режиме.

from win32com import client

xApp = None
for aname in ('Excel', 'eT', 'KeT'):
    try:
        xApp = client.Dispatch(aname + '.Application')
    except client.pywintypes.com_error:
        continue
    else:
        break
if xApp is None:
    print('No app found')
    raise SystemExit    # Application is unavailable.
else:
    # do something
    wb = excel.Workbooks.Open('my_sheet.xlsm')

В более старых версиях MS Excel (до 2013 г.) и KS Spreadsheet (до 2014 г.) приведенный выше код работал нормально, даже без явной установки xApp.Visible в False. Однако в последней версии Spreadsheet при выходе из приложения запускается небольшое окно пользовательского интерфейса.

14
задан Community 23 May 2017 в 12:18
поделиться

25 ответов

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

  1. Не просто повторяйте то, что делает код. Например,
  // Запустить сервисы
 StartServices ();

чертовски ужасный комментарий!

  1. Опишите , почему . Почему код делает то, что делает? Что такое бизнес-допущение или алгоритм?

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

  3. Если кто-то уже начал комментировать стандартным способом, не нарушайте этот стандарт.

  4. Прочтите эту статью на MSDN, чтобы написать эффективные комментарии: http: //msdn.microsoft.com/en-us/library/aa164797.aspx

25
ответ дан 1 December 2019 в 06:02
поделиться

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

, например doxygen:

http://www.doxygen.nl/manual/docblocks.html

/*! \brief Brief description.
 *         Brief description continued.
 *
 *  Detailed description starts here.
 */
0
ответ дан 1 December 2019 в 06:02
поделиться

Я удивлен, что не больше людей рекомендуют doxygen. Это хороший способ документирования кода с побочным эффектом, заключающимся в том, что он может автоматически генерировать документацию html + pdf API в конце дня.

0
ответ дан 1 December 2019 в 06:02
поделиться

My code is self-documenting. I need no comments.

0
ответ дан 1 December 2019 в 06:02
поделиться

В C / C ++ / C # / Java, когда у меня есть комментарий, объясняющий блок кода:

// comment
code;
more_code;

, когда комментарий объясняет одну строку:

code; // comment

Я обычно использую // для комментариев в одном предложении и / * ... * / для комментариев в нескольких предложениях.

0
ответ дан 1 December 2019 в 06:02
поделиться

Один из стилей комментариев в C ++ / Java и т. Д. Таков:

// Use // for all normal comments...
// and use multiline comments to comment out blocks of code while debugging:
/*
for(int i = 0; i < n; ++i) {
    // If we only use // style comments in here,
    // no comment here will mess up the block comment.
}
*/

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

0
ответ дан 1 December 2019 в 06:02
поделиться

Я не думаю, что есть стандарт для того, что вы просите. И я не вижу, как это могло бы добавить какую-либо выгоду от /// комментариев к самому методу.

Для создания документации из ваших классов C # взгляните на Sandcastle .

0
ответ дан 1 December 2019 в 06:02
поделиться

Мне нравится делать такие вещи:

/************
*  Comment  *
************/

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

0
ответ дан 1 December 2019 в 06:02
поделиться
/*
 * Brief summary of what's going on.
 */
int code_that_goes_on(int c)
{
     /* and then if I have to remark on something inside... */
     return 0;
}

99% компиляторов будут поддерживать комментарии // , что удивительно, но этот 1% все еще существует, и не так уж трудно сделать их пригодными для жизни.

РЕДАКТИРОВАТЬ: комментарий Delphi немного тупой, но указывает на реальный недостаток. Я предполагаю, что это будет специфический для Си ответ.

0
ответ дан 1 December 2019 в 06:02
поделиться

На эту тему могут быть религиозные войны.

То, что я пытаюсь сделать, это не вызывает много войн, это

 // explain the purpose of the following statement in functional terms
... some statement ...

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

Что-то полезное в качестве способа закомментировать код, который, по вашему мнению, вам может понадобиться снова:

 /*
 ... some code ...
/**/

затем измените первую строку - либо удалите его или измените на / ** /

 /**/
... some code ...
/**/
0
ответ дан 1 December 2019 в 06:02
поделиться

Если вы параноик и не используете или не доверяете контролю исходного кода, вы можете сделать это

// Initials-YYMMDD-fixNo-Start
dosomething();
// Initials-YYMMDD-fixNo-Finish

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

Но я бы предложил использовать контроль источников

0
ответ дан 1 December 2019 в 06:02
поделиться

- я обычно пишу такие комментарии

в SQL

-1
ответ дан 1 December 2019 в 06:02
поделиться
(* Modula-2 comments go like this *)
0
ответ дан 1 December 2019 в 06:02
поделиться
<!--How about comments like this!?-->
1
ответ дан 1 December 2019 в 06:02
поделиться
' I usually write comments like this
1
ответ дан 1 December 2019 в 06:02
поделиться

Стандарты комментариев наиболее полезны, когда комментарий будет проанализирован внешним инструментом (обычно генератором документов, таким как javadoc).

В этом случае внешний инструмент установит стандарты .

О других случаях см. . Как вам нравятся ваши комментарии? (Лучшие практики)

2
ответ дан 1 December 2019 в 06:02
поделиться
# ----------------------------------
# BIG IMPORTANT COMMENTS IN PERL/SH
# ----------------------------------
2
ответ дан 1 December 2019 в 06:02
поделиться
/* I will sometimes write
comments like this */
2
ответ дан 1 December 2019 в 06:02
поделиться
//For one line, I write them like this

/*
For multiple lines of text
I write them like this
*/

/*
for(multiple lines of code){
  I.WriteComents(With("//"));
  Reason==If(I.Remove('The top begin-quote mark') then
    I.Worry.Not('About removing the close-quote mark');
//*/
3
ответ дан 1 December 2019 в 06:02
поделиться

Не могу поверить, что мы пропустили ключевое слово REM.

Хотя, честно говоря, это ЗАМЕЧАНИЕ, а не КОММЕНТАРИЙ.

3
ответ дан 1 December 2019 в 06:02
поделиться

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

В общем, комментарии внутри кода должны следовать четырем правилам:

  1. Они не должны указывать очевидное
  2. Они должны быть совместимым с тем, что они описывают
  3. . Должно быть ясно , что они описывают (например, какая строка, блок).
  4. Они должны быть читаемы любым будущим сопровождающим.

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

4
ответ дан 1 December 2019 в 06:02
поделиться
/**
 * block comments to document a method for javadoc go like this
 * @param
 * @return
 * @exception BTKException
 * @see BTK
 */
4
ответ дан 1 December 2019 в 06:02
поделиться

Прокомментируйте строку над кодом (блоком), который выполняет то, что вы описываете

// This is a comment.
Some code goes here

Избегайте таких вещей, как

// ----------------
// IMPORTANT COMMENT
// ----------------

И я избегаю использования

/* comment */

И, возможно, самое главное, убери комментарии! Комментарий, описывающий несуществующую функциональность, хуже, чем вообще никакого комментария.

4
ответ дан 1 December 2019 в 06:02
поделиться
// I usually write comments like this

Там, где я работаю, требуется использовать стандартный стиль комментариев xml для большинства объявлений (классов, методов, некоторых свойств) (мы используем C #).

Иногда вы можете увидеть header / используются комментарии нижнего колонтитула.

/****************************************************/
// Filename: Customer.cpp
// Created: John Doe
// Change history:
// 18.12.2008 / John Doe
// 14.01.2009 / Sara Smith
/****************************************************/

/* Here goes a lot of stuff */

/****************************************************/
// EOF: Customer.cpp
/****************************************************/

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

Во многих хороших магазинах программного обеспечения есть внутренние рекомендации относительно того, когда и как писать комментарии. Документы обычно называют «политикой стиля исходного кода» или чем-то подобным. Очень важно придерживаться одного общего стиля комментирования кода.

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

/// <summary>
///     Handles the standard PageLoad event
/// </summary>
/// <param name="sender">
///    Event sender
/// </param>
/// <param name="e">
///    Event arguments
/// </param>
public void Page_Load (object sender, EventArgs e)
{
    // Do something here
}

Это хороший пример чрезмерной одержимости комментариями. Нечто подобное добавляет абсолютно нулевую информацию, но только добавляет шум в исходный файл. И мы должны делать это на работе по мере необходимости.

Мое личное мнение - добавлять комментарии, когда вам есть что сказать или объяснить, а не только ради того, чтобы все комментировать.

7
ответ дан 1 December 2019 в 06:02
поделиться
//Cheap Debugger

//Response.Write(MySQLStringBecauseINeedToKnowWhatsBroken);
1
ответ дан 1 December 2019 в 06:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: