mirror of
https://github.com/smmarty/friflex_flutter_starter.git
synced 2025-12-22 09:30:45 +00:00
docs(readme): обновить структуру и содержание README.md, улучшить оформление (#27)
Co-authored-by: petrovyuri <petrovyuri@example.com>
This commit is contained in:
@@ -8,13 +8,16 @@
|
||||
## Именование
|
||||
|
||||
### Интерфейсы
|
||||
|
||||
Утверждены два вида объявления интерфейсов:
|
||||
|
||||
1. Все интерфейсы в приложении должны начинаться с заглавной буквы "**I**".
|
||||
|
||||
Например: **IAuthRepository**, **IProfileRepository**, **IMainRunner** и т.д.
|
||||
|
||||
Таким образом, сразу видно, что работаешь с интерфейсом.
|
||||
Пример:
|
||||
|
||||
```dart
|
||||
/// Интерфейс - **IUserRepository**
|
||||
abstract interface class IUserRepository {}
|
||||
@@ -29,6 +32,7 @@ class UserRepositoryLocal implements IUserRepository {}
|
||||
```
|
||||
|
||||
### Классы - Репозитории
|
||||
|
||||
Репозитории должны содержать в конце название источника данных (если используется мок или локальное хранилище).\
|
||||
Основная реализация, не должна содержать постфикса.
|
||||
|
||||
@@ -36,66 +40,84 @@ class UserRepositoryLocal implements IUserRepository {}
|
||||
Основная реализация (prod и stage окружения) - **AuthRepository**
|
||||
Мок (мок данные) - **AuthRepositoryMock**\
|
||||
Локальное хранилище (например бд или просто имитация данных) - **AuthRepositoryLocal**
|
||||
|
||||
|
||||
### Файлы
|
||||
|
||||
Используется snake_case.
|
||||
Название файла должно иметь следующую структуру: [раздел]_[тип].dart
|
||||
|
||||
Пример: user_details_screen.dart, shop_entity.dart
|
||||
|
||||
### Классы
|
||||
|
||||
Название классов UpperCamelCase.
|
||||
Для создание приватных классов используем префикс _ . Название класса в конце должно содержать в себе тип.
|
||||
|
||||
Пример: **UserEntity**, **AdultDialog**
|
||||
|
||||
## Методы
|
||||
|
||||
Название метода в начале должно содержать в себе действие(глагол):
|
||||
|
||||
- fetch
|
||||
- put
|
||||
- update
|
||||
- delete и так далее
|
||||
- fetch
|
||||
- put
|
||||
- update
|
||||
- delete и так далее
|
||||
|
||||
Пример:
|
||||
Пример:
|
||||
|
||||
```dart
|
||||
int fetchFirstElement(){}
|
||||
```
|
||||
|
||||
Пример:
|
||||
|
||||
```dart
|
||||
void updateFirstElement(){};
|
||||
```
|
||||
|
||||
Название метода не должно содержать в себе And/Or
|
||||
и метод соответственно не должен выполнять подобную логику.
|
||||
|
||||
## Переменные и константы
|
||||
|
||||
Константы именуются также lowerCamelCase.
|
||||
Пример:
|
||||
Пример:
|
||||
|
||||
```dart
|
||||
const String carItem
|
||||
```
|
||||
или
|
||||
|
||||
или
|
||||
|
||||
```dart
|
||||
final userName;
|
||||
```
|
||||
|
||||
## Виджеты
|
||||
|
||||
Виджеты именуются UpperCamelCase.
|
||||
В названии виджетов не должно содержаться слово widget.
|
||||
|
||||
### Экраны
|
||||
Экраны, используемые в роутинге, именуются с постфиксом Screen.
|
||||
|
||||
Экраны, используемые в роутинге, именуются с постфиксом Screen.
|
||||
Например, **ShopListScreen**.
|
||||
|
||||
### Содержимое экрана
|
||||
Виджеты, отображающие содержимое экрана, именуются с постфиксом View.
|
||||
|
||||
Виджеты, отображающие содержимое экрана, именуются с постфиксом View.
|
||||
Например, **ShopListView**.
|
||||
|
||||
### Глобальные виджеты
|
||||
Глобальные виджеты именуются с приставкой App.
|
||||
|
||||
Глобальные виджеты именуются с приставкой App.
|
||||
Например, **AppButton**.
|
||||
|
||||
## Структура класса
|
||||
|
||||
Объявления элементов класса должны располагаться в следующем порядке:
|
||||
|
||||
1. **Constructors**
|
||||
- constructors
|
||||
- named-constructors
|
||||
|
||||
Reference in New Issue
Block a user