Стиль кода

Соглашения и рекомендации по написанию кода.

Plugify следует собственному стилю кода, разработанному для обеспечения последовательности, читаемости и поддерживаемости во всем проекте. Хотя мы не придерживаемся популярных соглашений о стиле, таких как Google Style или LLVM Style, наш стиль прост и легок для понимания. На этой странице изложены ключевые аспекты нашего стиля кода и предоставлены инструкции по использованию предоставленных конфигураций Clang-Tidy и Clang-Format.

Почему собственный стиль?

Мы решили использовать собственный стиль кода для Plugify, чтобы адаптировать форматирование и соглашения к конкретным потребностям проекта. Это позволяет нам:

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

Ключевые аспекты стиля кода Plugify

1. Соглашения об именовании

  • Переменные: Используйте camelCase для переменных.
    int exampleVariable = 42;
    
  • Классы, структуры и функции: Используйте PascalCase для имен классов и структур.
    class ExampleClass {};
    struct ExampleStruct {};
    void ExampleFunction();
    
  • Константы: Используйте UPPER_SNAKE_CASE для констант.
    const int EXAMPLE_CONSTANT = 100;
    

2. Отступы и пробелы

  • Используйте табуляцию для отступов (не пробелы).
  • Размещайте открывающие фигурные скобки { на той же строке, что и оператор.
    if (condition) {
        // Code here
    }
    
  • Используйте один пробел после ключевых слов, таких как if, for и while.
    if (condition) {
        // Code here
    }
    

3. Длина строки

  • Ограничивайте строки 120 символами для лучшей читаемости.

4. Комментарии

  • Используйте // для однострочных комментариев и /* ... */ для многострочных комментариев.
  • Размещайте комментарии над кодом, который они описывают, а не в той же строке.
    // This is a single-line comment
    int exampleVariable = 42;
    
    /*
     * This is a multi-line comment
     * describing a block of code.
     */
     void ExampleVariable();
    

5. Защита заголовочных файлов

  • Используйте #pragma once для заголовочных файлов, чтобы избежать многократного включения.
    #pragma once
    
    class ExampleClass {};
    

Использование Clang-Tidy и Clang-Format

Чтобы упростить соблюдение стиля кода, мы предоставляем файлы конфигурации Clang-Tidy и Clang-Format в репозитории. Эти инструменты автоматически форматируют ваш код и обеспечивают соблюдение правил стиля.

1. Clang-Format

Clang-Format автоматически форматирует ваш код в соответствии с руководством по стилю. Чтобы его использовать:

  1. Установите Clang-Format, если вы еще этого не сделали.
  2. Выполните следующую команду в корне репозитория:
   clang-format -i path/to/your/file.cpp

Это отформатирует файл на месте.

2. Clang-Tidy

Clang-Tidy выполняет статический анализ и обеспечивает соблюдение дополнительных правил стиля и лучших практик. Чтобы его использовать:

  1. Установите Clang-Tidy, если вы еще этого не сделали.
  2. Выполните следующую команду в корне репозитория:
   clang-tidy path/to/your/file.cpp

Автоматизация форматирования

Чтобы автоматизировать форматирование и анализ, вы можете интегрировать Clang-Format и Clang-Tidy в вашу IDE или систему сборки. Большинство современных IDE (например, Visual Studio, CLion, VSCode) поддерживают эти инструменты нативно.

Почему важна последовательность

Последовательный стиль кода имеет решающее значение для:

  • Читаемости: Делает код более понятным для всех участников.
  • Поддерживаемости: Снижает когнитивную нагрузку при навигации по кодовой базе.
  • Сотрудничества: Гарантирует, что все следуют одним и тем же соглашениям, уменьшая трения во время код-ревью.

Советы для участников

  • Запускайте инструменты форматирования: Всегда запускайте Clang-Format и Clang-Tidy перед отправкой pull-запроса.
  • Следуйте руководству по стилю: Придерживайтесь соглашений об именовании, правил отступов и других рекомендаций, изложенных выше.
  • Просите о помощи: Если вы не уверены в каком-либо аспекте стиля кода, не стесняйтесь задавать вопросы в сообществе Discord или открывать issue на GitHub.

Заключение

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