Стандарт оформления кода разрабатываемых модулей

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

На мой взгляд, указанный по ссылке стандарты оформления кода, описаны достаточно хорошо, но требуют внесения нескольких правок (в контексте PascalABC.Net):

  1. Все имена классов или записей имеют префикс T (от слова type): TPoint. Цель: избежание конфликтов имён.
  2. Все имена полей начинаются с префикса f (от слова field) и пишутся в Pascal Case: fName.
  3. Именования переменных (включая глобальные, пишутся в Camel Pase).

Я, например, не согласен с некоторыми положениями.

Я выше написал, что можно подправить. Но, я рад выслушать Ваше мнение по этому поводу.

А вот с этим не согласен категорически!

Как только вижу такой код, появляется ощущения древних версий (Delphi, FreePascal).

То же самое.

Можно подробнее?

Можно, например:

begin
  var someName: byte; // Вместо var SomeName: byte;
end.

.

Значит и с этим не согласен.

Предлагайте альтернативы. И аргументы почему Вы были против этого.

И так практически никто ничего делать не хочет реального - только советы и пожелания, а временами даже чуть ли требования. А если еще те единицы, которые готовы чем-то помочь, загнать попытаться в “стандарт”… Наивно и смешно. Для начала придется разработчикам весь компилятор в такой “стандарт” переписать.

Давайте сначала обсудим стандарт. Потом посмотрим на реакцию разработчиков. Их мнение тоже должно учитываться.

1 лайк

Писать все слова с большой буквы.

var MyName: Int32;

Писать имена классов, структур и перечислений БЕЗ T и начиная каждое слово большой буквой:

Type MyClass = sealed class
End;

Поля не имеют лишних знаков (f).

Public MyField: Int32;

Их мнение - основное. А вот мнение остальных они могут учитывать. Если сочтут нужным.

1 лайк

Я вообще сомневаюсь, что такая жёсткая стандартизация нужна.

2 лайка

Мнение всех учитывается. Но решение принимается разработчиками. Я бы сказал так.

1 лайк

Так правильнее.

type
  TSomeClass = class
  private
    _x: byte;
  
  public
    property X: byte read _x;
  end;
  
begin
end.

Я предлагал f как префикс по той причине, что символ подчеркивания выглядит коряво в названиях приватных полей.

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

1 лайк

С другой стороны, если кто-то напишет на C# что-то в таком роде:

public sealed class TMyClass{
}

вопросов будет очень много :smile:

Это как понять?

Я не предлагал переписать компилятор в стандарт. Я предложил переписать обучающие модули в стандарт (при возможности). На счёт компилятора - он не на PascalABC.Net пишется, так что там правильнее стандарты кода C# применять.

Но он сразу бросается в глаза. Не просто так в C/C++/C# пишут именно так. Читабельность выше. Касательно TSomeClass - вообще не понятно, зачем T.