Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
p0dyakov committed Jun 5, 2023
1 parent 7572651 commit dc1c9ae
Showing 1 changed file with 19 additions and 19 deletions.
38 changes: 19 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
* [Расчёт макета](#--11)
* [BuildOwner](#buildowner)
* [PipelineOwner](#pipelineowner)
* [Сборщик мусора](#--12)
* [Garbage Collector](#garbage-collector)
* [Task Runners](#task-runners)
- [Асинхронность](#-4)
* [Future](#future)
Expand All @@ -73,19 +73,19 @@
* [Многопоточность в Dart и Flutter ](#-dart-flutter)
* [Isolate](#isolate)
* [Compute](#compute)
* [Проблемы многопоточности](#--13)
* [Проблемы многопоточности](#--12)
- [Архитектура](#-6)
* [Архитектура](#-7)
* [Чистая архитектура](#--14)
* [Управление состоянием](#--15)
* [Чистая архитектура](#--13)
* [Управление состоянием](#--14)
* [Dependency Injection ](#dependency-injection)
* [Архитектурные патерны ](#--16)
* [Способы осуществления навигации](#--17)
* [Базы данных](#--18)
* [Архитектурные патерны ](#--15)
* [Способы осуществления навигации](#--16)
* [Базы данных](#--17)
- [Тестирование](#-8)
* [Виды тестов](#--19)
* [Виды тестов](#--18)
* [TDD](#tdd)
- [Паттерны разработки](#--20)
- [Паттерны разработки](#--19)

<!-- TOC end -->

Expand Down Expand Up @@ -572,8 +572,8 @@
`PipelineOwner` — менеджер сборки, который занимается работой с деревом отображения.

---
<!-- TOC --><a name="--12"></a>
### Сборщик мусора
<!-- TOC --><a name="garbage-collector"></a>
### Garbage Collector
`Garbage Collector` - это алгоритм, наблюдает за ссылками и очищает память с целью предотвращения её переполнения.

**(!)** В процессе сборки мусора слой `Dart Framework` создает канал взаимодействия со слоем `Flutter Engine`, посредством которого узнает о моментах простоя приложения и отсутствия пользовательского взаимодействия. В эти моменты `Dart Framework` запускает процесс оптимизации памяти, что позволяет сократить влияния на пользовательский опыт и стабильность приложения.
Expand Down Expand Up @@ -677,7 +677,7 @@
`Compute` - это функция, которая создаёт изолят и запускает переданный код.

---
<!-- TOC --><a name="--13"></a>
<!-- TOC --><a name="--12"></a>
### Проблемы многопоточности

- `Deadlock` — каждый из потоков ожидают событий, которые могут предоставить другие потоки
Expand All @@ -692,7 +692,7 @@
Архитектура - это набор решений по организации программы. Таких, как деление программы на слои, построение связей между ними, управление состоянием, связь с UI. Хорошая архитектура делает слои в приложении слабо связанными, что упрощает внесение изменений, повышает тестируемость кода, упрощает систему

---
<!-- TOC --><a name="--14"></a>
<!-- TOC --><a name="--13"></a>
### Чистая архитектура
Чистая архитектура - архитектура, которая следует `SOLID` и делится на три независимых слоя:
- `Data (datasources, models, repositories)` получение данных извне
Expand All @@ -702,7 +702,7 @@
[Пример](https://github.com/ResoCoder/flutter-tdd-clean-architecture-course)

---
<!-- TOC --><a name="--15"></a>
<!-- TOC --><a name="--14"></a>
### Управление состоянием

**Vanilla**
Expand Down Expand Up @@ -791,7 +791,7 @@
`Dependency injection (DI)` - это механизм, который позволяет сделать взаимодействующие в приложении объекты слабосвязанными с помощью интерфейсов. Это делает всю систему более гибкой, более адаптируемой и расширяемой

---
<!-- TOC --><a name="--16"></a>
<!-- TOC --><a name="--15"></a>
### Архитектурные патерны
![](https://fuzeservers.ru/wp-content/uploads/2/6/8/268a107e69309f0529c18aae72769bdb.png)
**MVVM**
Expand Down Expand Up @@ -830,7 +830,7 @@
- Используется в ситуации, когда связь между представление и другими частями приложения невозможна (и Вы не можете использовать MVVM или MVP);

---
<!-- TOC --><a name="--17"></a>
<!-- TOC --><a name="--16"></a>
### Способы осуществления навигации
**Navigator**
- Идёт из коробки
Expand All @@ -848,7 +848,7 @@
- Разные варианты анимаций

---
<!-- TOC --><a name="--18"></a>
<!-- TOC --><a name="--17"></a>
### Базы данных
**Нереляционные (NoSQL):**
**Hive**
Expand Down Expand Up @@ -934,7 +934,7 @@
<!-- TOC --><a name="-8"></a>
## Тестирование

<!-- TOC --><a name="--19"></a>
<!-- TOC --><a name="--18"></a>
### Виды тестов
- `Модульный тест` тестирует одну функцию, метод или класс. Его цель - проверить правильность работы определенной функции, метода или класса. Внешние зависимости для тестируемого модуля обычно передаются как параметр.
- `Виджет тест` тестирует один виджет. Цель такого теста — убедиться, что пользовательский интерфейс виджета выглядит и взаимодействует, как запланировано. Тестирование виджета происходит в тестовой среде, которая обеспечивает контекст жизненного цикла виджета. Также тестируемый виджет должен иметь возможность получать действия и события пользователя и отвечать на них .
Expand All @@ -945,7 +945,7 @@
### TDD
`TDD` — это методика разработки приложений, при которой сначала пишется тест, покрывающий желаемое изменение, а затем — код, который позволит пройти тест.

<!-- TOC --><a name="--20"></a>
<!-- TOC --><a name="--19"></a>
## Паттерны разработки
*Порождающие*. Отвечают за удобное и безопасное создание новых объектов или даже целых семейств объектов.
- Factory Method (Фабричный Метод). Порождающий паттерн проектирования, который определяет общий интерфейс для создания объектов в суперклассе, позволяя подклассам изменять тип создаваемых объектов.
Expand Down

0 comments on commit dc1c9ae

Please sign in to comment.