Если я использую идентификаторы блока (“конец”;) в моем коде?

Я верю const, значение является тем же для всех объектов (и должен быть инициализирован с литералом), тогда как readonly может отличаться для каждого инстанцирования...

6
задан Jon Seigel 4 April 2010 в 15:41
поделиться

14 ответов

Лично я предпочитаю первый, так как ИМХО «конец»; не рассказывайте мне много, и как только все будет близко, я могу сказать по идентификации, что и когда произойдет.

Я считаю, что блоки более полезны при наличии больших операторов. Вы можете использовать смешанный подход, когда вы вставляете несколько "begin ... end;" и комментируете то, что они заканчивают (например, используйте его для with и первого if).

IMHO, вы также можете сломать это в другие методы, например, часть

  if not(RecordExists(currRow)) then begin
    InsertNewRecord(currRow);
  end  //if it didn't exist, so insert it
  else begin
    UpdateExistingRecord(currRow);
  end;  //else it existed, so update it

может быть в отдельном методе.

7
ответ дан 8 December 2019 в 02:18
поделиться

частые // комментарии в конце строк кода (в соответствии с вашим примером Well Behaved and Verbose) сделать код сложнее для чтения imho - когда я его вижу, я в конечном итоге сканирую «очевидные» комментарии, формируя что-то особенное, чего обычно нет.

Я предпочитаю комментарии только там, где нет очевидного (т.е. общая и / или уникальная функциональность)

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

комментирование конца действительно полезно для html-подобных языков, поэтому используйте искаженный код C, например бесконечную последовательность if / else / if / else

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

My knee-jerk reaction would be the second listing (with the repetitive comments removed from the end of the lines, like everyone's been saying), but after thinking about it more deeply I'd go with the first plus a one or two line useful comment beforehand explaining what's going on (if needed). Obviously in this toy example, even the comment before the concise answer would probably not be needed, but in other examples it might.

Having less (but still readable) and easy to understand code on the screen helps keep your brain space free for future parts of the code IMO.

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

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

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

Если я правильно помню, CC также давал несколько советов по поводу комментариев. Особенно о том, чтобы не переписывать то, что код делает в комментариях, а объяснять , почему он делает то, что делает.

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

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

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

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

2
ответ дан 8 December 2019 в 02:18
поделиться

Я думаю, это в некоторой степени зависит от ситуации. Иногда у вас просто есть такой метод:

void Foo(bool state)
{
    if (state)
        TakeActionA();
    else
        TakeActionB();
}

Я не понимаю, как это выглядит так:

void Foo(bool state)
{
    if (state)
    {
        TakeActionA();
    }
    else
    {
        TakeActionB();
    }
}

Совсем улучшает читаемость.

5
ответ дан 8 December 2019 в 02:18
поделиться

Я разработчик Python, поэтому не вижу необходимости в идентификаторах блоков. Я без них вполне доволен. Для меня достаточно отступов.

4
ответ дан 8 December 2019 в 02:18
поделиться

Я бы использовал то, что моя компания установила для своих стандартов кодирования.

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

7
ответ дан 8 December 2019 в 02:18
поделиться

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

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

Совет : ярлык Visual Studio KB для C # переход к началу и концу: Ctrl +]

Если вы используете Visual Studio, то наличие фигурных скобок для C # в начале и конце блока помогает еще и потому, что у вас есть ярлык KB для перехода к началу и концу

10
ответ дан 8 December 2019 в 02:18
поделиться

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

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

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

// clear and succinct
with myGrid do begin
  for currRow := FixedRows to RowCount - 1 do begin
    if RowChanged(currRow) then begin
      if not(RecordExists(currRow))
        InsertNewRecord(currRow);
      else
        UpdateExistingRecord(currRow);
    end;  // if RowChanged
  end;  // next currRow
end;  // with myGrid
1
ответ дан 8 December 2019 в 02:18
поделиться

Я с теми, кто предпочитает более лаконичный код.

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

Это похоже на излишние круглые скобки: некоторые люди предпочитают (F1 и F2) или ((не F2) и F3). ] или (A - (B * C)) < 0, и не обязательно потому, что они не знают о правилах приоритета. Просто им так понятнее.

1
ответ дан 8 December 2019 в 02:18
поделиться
Другие вопросы по тегам:

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