CS

CS


Над большинством проектов приходится работать сообща.

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

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


Так вот.


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

Для именования модулей/классов/интерфейсов используется (Upper)CamelCase:


class ItsMyClass


Название ts-файла, в котором содержится класс, должно повторять его наименование (компилятору, вообще говоря, без разницы, как называются сами файлы).


Для именования переменных и функций мы используем lowerCamelCase:


public myVar: number;
public myFunction(): void {...}

   

Для именования констант мы используем заглавные буквы со знаком подчеркивания для разделения слов:


public const MY_CONST: number = 7;
public readonly MY_CONST: number = 7;

   

Так как в ts нельзя использовать const в теле класса, то, если это не что-то глобальное, константы мы объявляем через readonly.


Катимся дальше.

Призываю у всех переменных, констант и функций писать модификаторы видимости: public, private, protected.

(У классов: private, protected.)


При этом, что касается приватных переменных (и только переменных!) в теле класса (то есть переменные внутри ф-й сюда не относятся), перед их именем ставим знак подчеркивания:


private _myPrivateVar: number;

   

Так же, крайне желательно ставить у всех переменных и функций их тип (в том числе тип void, вытрите слезы). Если по какой-то причине вы не можете определиться с типом или необходимо, чтобы он был динамическим, используйте тип any:


public someVar: any;

 

Это касается и итераторов, используемых в циклах.


for (let i: number = 0; i < N; i++)


И финальная боль:

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


Ну и да. Писать следует с чувством, с толком, с расстановкой, отделяйте пустыми строками логические блоки внутри функций (и в других конструкциях), не бойтесь пробела.


public nameVar: <space> number;
nameFunctionOne(): <space> number <space> {...}
nameFunctionTwo(var: <space> number): <space> void <space> {...}
if <space> (...) <space> {...}
... и тд. по аналогии


Report Page