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

Воспоминания о днях моего обучения в Infosys, где я познакомился с программированием на C, Java и других программных технологиях, до сих пор живы в моей памяти.

Будучи выпускником ECE, а не известным инженерным колледжем, мой опыт в колледже не дал мне существенного опыта программирования. Вместо этого я прибегал к запоминанию списка программ исключительно для того, чтобы сдать экзамены.

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

Тем не менее, код — это основа нашей работы, особенно при управлении командой инженеров с разным уровнем опыта (0–10+ лет). Обзоры кода играют ключевую роль, но важно знать, что проверять и как проводить эти обзоры. Именно поэтому понимание лучших отраслевых практик кодирования становится жизненно важным для менеджера. Это позволяет вам эффективно применять эти методы в вашей команде.

Что я заметил в своих многочисленных сеансах проверки кода, так это то, что менее опытные члены команды, как правило, восприимчивы и открыты для обучения, что облегчает их руководство к написанию лучшего кода. Однако некоторые более старшие члены команды иногда переходят в оборонительный режим, часто говоря: «У нас много работы; мы сделаем это позже, сэр. Такое отношение приводит к техническому долгу, а поскольку мы редко уделяем время рефакторингу кода, это приводит к грязному и неподдерживаемому коду.

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

Значимые имена.Подобно тому, как когда в семье рождается новый ребенок, и каждый член начинает искать значимые и модные имена, тот же принцип применяется к тому, чтобы относиться к вашему коду как к своему «ребенку» — он заслуживает тоже значимое имя.

  1. В контексте лучших практик кодирования рекомендуется, чтобы имя класса было существительным, а имя метода — глаголом. Это соглашение об именах повышает читабельность кода.
  2. Независимо от того, называете ли вы переменную, класс, переменную-член или любой другой элемент в своем коде, убедитесь, что имя отражает его контекст и использование. Даже если название окажется длинным, действительно важно то, что оно передает значимую историю о своей цели.
Class x {
   int x;
   int y;

   int mult() {
       return x*y;         
   }

}

int d; // start time
int f; // end time
Int g; // delta time

// Instead
int startTimeIndays;
int endTimeIndays;
int differenceBetweenStartAndEndTime; 

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

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

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

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

6. Избегайте использования префикса «m_*» для переменных-членов. Вместо этого стремитесь создать читаемые и достаточно лаконичные имена методов и классов.

public class Product {
 
   String m_dsc; // discription
    
   void setName(String name) {

          m_dsc = name;
   }

}

// Instead
public class Product {
 
   String description; // discription
    
   void setName(String description) {

          this.description = description;
   }

}

7. При работе с интерфейсами и их реализациями принято ставить префикс «I» перед именем интерфейса. Однако лучше избегать префикса «I» для самого интерфейса и использовать его только для реализации. Например, переименуйте «IShapeFactory» в «ShapeFactory» и назовите реализацию «ShapeFactoryImp».

В следующем сегменте (часть 2) мы углубимся в функции/методы…