Google представила официальное руководство по стилю языка Rust

Компания Google представила подробное руководство по стилю языка Rust, которое теперь регулирует разработку во всех ключевых проектах корпорации, включая Android, ChromeOS, Fuchsia и браузер Chrome. Документ охватывает не только вопросы форматирования, но и рекомендации по проектированию API и архитектуре реализации.

Зачем это нужно

По словам разработчиков, введение единых стандартов преследует несколько целей. Во-первых, это долгосрочная поддержка кода, который должен оставаться читаемым спустя годы. Во-вторых, унификация упрощает проведение масштабных рефакторингов (Large-Scale Changes), так как предсказуемая структура кода легче поддается автоматизированной обработке. Кроме того, наличие четких правил избавляет команды от бесконечных дискуссий во время код-ревью.

Основные принципы

  • Приоритет официальных стандартов: Правила Google дополняют общепринятые рекомендации сообщества Rust, а не противоречат им.
  • Разделение кода: Для проектов типа Chromium рекомендуется создавать небольшие крейты (crate). Если структура становится слишком сложной, ее следует делить, а не усложнять вложенными поддиректориями.
  • Иерархия модулей: Файлы одного крейта должны находиться в одной директории. Листовые модули рекомендуется называть в честь основного элемента, который в них содержится.
  • Ограничение на импорты: Использование glob-импортов (use ...::*) запрещено, за исключением специфических случаев взаимодействия с C++ (интероп), где это помогает объединять пространства имен.

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

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

Источник: google.github.io

Leave a Comment