Files

35 lines
1.8 KiB
Markdown
Raw Permalink Normal View History

# Правила именования и стиль кода
Мы придерживаемся рекомендаций **Effective Dart** и внутренних правил компании.
## Именование
### Интерфейсы
- Начинаются с заглавной буквы **I**.
- Пример: `IAuthRepository`, `IUserRepository`.
### Классы и файлы
- **Классы**: `UpperCamelCase`. Приватные — с префиксом `_`. Должны содержать тип в конце (например, `UserEntity`).
- **Файлы**: `snake_case`. Структура: `[раздел]_[тип].dart`. Пример: `user_details_screen.dart`.
### Репозитории
- Основная реализация — без постфикса (`AuthRepository`).
- Альтернативные реализации — с постфиксами: `Network`, `Local`, `Mock`.
### Виджеты
- **Экраны**: Постфикс `Screen` (`ShopListScreen`).
- **Контент экрана**: Постфикс `View` (`ShopListView`).
- **Глобальные виджеты**: Префикс `App` (`AppButton`).
- В названии **не должно** быть слова `widget`.
## Методы и переменные
- **Методы**: Начинаются с глагола (`fetch`, `put`, `update`, `delete`). Не должны содержать `And/Or`.
- **Переменные/Константы**: `lowerCamelCase`.
## Структура класса (порядок элементов)
1. Конструкторы (default, named, factory).
2. Static элементы (methods, const fields).
3. Инстанс-поля (final, потом обычные; public, потом private).
4. Геттеры/Сеттеры.
5. Методы (overridden, public, protected, private).