Правильный стиль написания программного кода

Этот пост точнее было бы назвать как-нибудь вроде «Именование идентификаторов по общепринятым правилам» ибо так будет наиболее точно отражена суть статьи, но уже не важно…

Это достаточно скользкая тема т.к. споров по поводу правильного стиля написания кода достаточно много и у каждого программиста своя точка зрения на этот счёт. Тем не менее есть некоторые «инстанции», которые дают советы по, их авторитетному мнению, правильного написания программного кода. В первую очередь это компании и корпорации занимающиеся непосредственно разработкой языков программирования, такие как Oracle (Java), Microsoft (C#, VB, etc) и другие. В их документации есть отдельные главы посвященные именно правильному стилю написания кода.

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

Естественно, что у каждого отдельного языка программирования есть свои особенности и поэтому правила написания красивого кода тут тоже весьма разнятся. Так же подобные правила могут диктовать и сами работодатели у которых есть корпоративная этика. Ниже я приведу пожалуй самые важные и популярные правила правильного написания программного кода, которые подходят в большинстве случаев ко всем Си подобным языкам программирования: Pascal, Delphi, C, C++, PHP, Java, C#, JavaScript и другие.

В большинстве своём эти правила базируются на официальных рекомендациях от Oracle для языка программирования Java. Как ни странно, по моим наблюдениям, все эти же рекомендации применяются и других языках программирования с Си подобным синтаксисом. Так вот, все материалы доступны на официальном сайте документации по языку Java, на английском разумеется. Там достаточно много информации по этой теме, я же, в этой статье, приведу пожалуй наиболее важные составляющие.

Переменные

Переменные должны назваться понятными именами существительными, состоять из 1-3 слов. Все слова пишутся слитно, каждое следующее слово начинается с большой буквы (верхний регистр). Первая буква в нижним регистре.

Иногда так же внутренние (с модификаторами доступа private и реже так же protected), т.е. сугубо служебные для данного класса, переменные (поля) классов начинаются с префикса нижнего подчёркивания. Т.е. внутренние поля начинаются с подчёркивания, так можно легко отличить их от доступных (public) полей.

В ООП переменные классов называются полями, реже так же свойствами. В более продвинутых ООП языках, таких как Java, поля и свойства это разные вещи. Поля это внутренние переменные, а свойства это интерфейсы доступа к этим полям извне: геттеры и сеттеры.

Константы

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

Примеры:

$value;
strint arrayOfStrings;
public int firstVariable;

Функции

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

Примеры:

function getObject(int variable, string secondVariable) {...}
public static void setValue(int value) {...}

Классы

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

Примеры:

class FirstProgram {...}
public class SomeClass {...}
class Some {...};

Интерфейсы

Тоже самое, что и классы, только перед именем (в начале) дописывается большая буква I (от слова interface).

Примеры:

interface ISomeProgram {...}

Делегаты

Делегаты полностью подчиняются правилам именования интерфейсов, поэтому особых предписаний на этот счёт нет. Только вместо буквы I в начале названия делегата пишется символическая D (естественно от слова delegate).

Пространства имён

Одно существительное слово написанное полностью в нижнем регистре.

Всегда пишите только на английском языке (некоторые языки программирования поддерживают unicode в названиях сущностей) и не используйте транслитерацию при этом. Лучше лишний раз загляните в словарь или переводчик.

ООП в целом

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

PHP конкретно

Лучше пишите постоянные вкропления тегов php в код html чем выводить всю вёрстку через непосредственно php. Вообще всегда надо разделять сущности. Данные, программный код, логика, вёрстка, стили и прочее… Всё должно быть отдельно.

Это так сказать общие универсальные правила именований. Так же забывайте, что каждый шаг (stepment) должен писаться на новой строке. Не пренебрегайте форматированием кода (горизонтальным смещением по 4 символа), что бы каждые отдельные блоки были полностью видны. Насчёт переносов фигурных скобок ситуация спорная, каждый считает по своему. Я же думаю, что открывающие фигурные скобки лучше не переносить на отдельную строку, дабы их и так видно и так код сокращается. Закрывающие же надо переносить на новую отдельную строку. За счёт того, что в строке всего одна фигурная скобка становится визуально видно как один блок кода оделён от другого и нет необходимости делать ещё одни перенос для отделения.

Если ещё, что вспомню, то обязательно допишу, спасибо за внимание.

Поделиться!
Tags: , , ,

49.69MB | MySQL:53 | 0,348sec