1 of 23

Ой, все! Или как мы ошибаемся в Dart и Flutter

2 of 23

Обработка ошибок

3 of 23

Базы данных

Какие вопросы задавать: покрытие тестами, насколько это стандарт, насколько поддерживается, размер комьюнити, взаимодействие между таблицами и реляционность, запросы, транзакционная безопасность, насколько правдива документация, не выгружает ли всю бд в оперативу, как делать миграции, как работает между изолятами и отдельными флатер энжайнами, индексация, экосистема и софт за пределами дарта.

На что не смотреть: заверения в “симпл” и “фаста”

Пример худших из худших: hive, isar, get_storage

4 of 23

Использование “пакетов-комбайнов”

как во Flutter, так и BE Dart

5 of 23

Контейнеры

6 of 23

get_it

7 of 23

Работа с коллекциями в цикле

8 of 23

Не забывайте про textScaleFactor

9 of 23

ListView.builder

10 of 23

Вынос “магического числа” в статик или глобальную константу это не избавление от “магического числа”.

11 of 23

Не используйте BuildContext после асинхронных вычислений

12 of 23

RepaintBoundary

13 of 23

runZonedGuarded

14 of 23

await Future<void>.delayed(Duration.zero)

15 of 23

Полагать, что комментарии не нужны

16 of 23

Оптимизация без метрик

17 of 23

Долгоживущие изоляты

18 of 23

Злоупотребление линтером

19 of 23

Делать синхронный интерфейс метода потому

что его реализация синхронная

20 of 23

Не изменяйте и не удаляйте методы и классы,

используйте @deprecated даже в проекте!

21 of 23

Попытки написать повычурнее

22 of 23

Фаста! vs Структуры и Алгоритмы

Для того чтобы найти одного конкретного человека среди 8 миллиардов, используя двоичный поиск, потребуется примерно 33 итерации.

23 of 23

DateTime.toIso8601String()