Ой, все! Или как мы ошибаемся в Dart и Flutter
Обработка ошибок
Базы данных
Какие вопросы задавать: покрытие тестами, насколько это стандарт, насколько поддерживается, размер комьюнити, взаимодействие между таблицами и реляционность, запросы, транзакционная безопасность, насколько правдива документация, не выгружает ли всю бд в оперативу, как делать миграции, как работает между изолятами и отдельными флатер энжайнами, индексация, экосистема и софт за пределами дарта.
На что не смотреть: заверения в “симпл” и “фаста”
Пример худших из худших: hive, isar, get_storage
Использование “пакетов-комбайнов”
как во Flutter, так и BE Dart
Контейнеры
get_it
Работа с коллекциями в цикле
Не забывайте про textScaleFactor
ListView.builder
Вынос “магического числа” в статик или глобальную константу это не избавление от “магического числа”.
Не используйте BuildContext после асинхронных вычислений
RepaintBoundary
runZonedGuarded
await Future<void>.delayed(Duration.zero)
Полагать, что комментарии не нужны
Оптимизация без метрик
Долгоживущие изоляты
Злоупотребление линтером
Делать синхронный интерфейс метода потому
что его реализация синхронная
Не изменяйте и не удаляйте методы и классы,
используйте @deprecated даже в проекте!
Попытки написать повычурнее
Фаста! vs Структуры и Алгоритмы
Для того чтобы найти одного конкретного человека среди 8 миллиардов, используя двоичный поиск, потребуется примерно 33 итерации.
DateTime.toIso8601String()