Перейти к содержанию

Руководство по стилю кода

Обзор

Этот документ определяет стандарты кодирования и руководящие принципы стиля для проекта CulicidaeLab Flutter. Последовательный стиль кода улучшает читаемость, поддерживаемость и сотрудничество между членами команды.

Общие принципы

Стандарты качества кода

  1. Читаемость прежде всего: Код должен быть самодокументируемым и легким для понимания
  2. Последовательность: Следуйте установленным паттернам во всей кодовой базе
  3. Простота: Предпочитайте простые, ясные решения сложным
  4. Производительность: Пишите эффективный код без преждевременной оптимизации
  5. Тестируемость: Проектируйте код для легкого тестирования

Принципы SOLID

  • Единственная ответственность: Каждый класс должен иметь одну причину для изменения
  • Открыт/Закрыт: Открыт для расширения, закрыт для модификации
  • Подстановка Лисков: Подтипы должны быть заменяемыми для их базовых типов
  • Разделение интерфейсов: Зависьте от абстракций, а не от конкретных реализаций
  • Инверсия зависимостей: Высокоуровневые модули не должны зависеть от низкоуровневых модулей

Руководящие принципы языка Dart

Объявления переменных

Предпочитайте final и const

// Хорошо: Используйте final для констант времени выполнения
final String userName = getCurrentUser().name;
final List<String> items = ['item1', 'item2'];

// Хорошо: Используйте const для констант времени компиляции
const String apiUrl = 'https://api.culicidaelab.org';
const Duration timeout = Duration(seconds: 30);

// Избегайте: Ненужная изменяемость
String userName = getCurrentUser().name; // Не изменится

Аннотации типов

// Хорошо: Явные типы для публичных API
String getUserName() {
  return _currentUser.name;
}

// Хорошо: Выведенные типы для локальных переменных
final items = <String>['item1', 'item2'];
final user = await userService.getCurrentUser();

// Избегайте: Избыточные аннотации типов
String userName = String('John'); // Тип очевиден