Pull to refresh

Comments 5

Почему бы не сделать нормальную проверку?

  @override
  Future<void> set<T>(String key, T value) async {
    if (value is bool) {
      return _prefs.setBool(key, value);
    }

    ...

    throw Exception('Wrong type for saving to database');
  }

Метод get тоже не безопасный, из-за каста через as. Понятно что там есть try, но все же, раз вы сделали сохранение безопасным, то почему бы не сделать и получение безопасным?

ошибся с веткой ответа, никак не могу привыкнуть к комментариям на Хабре :) С использованием Markdown не могу расширить поле для ввода текста и не знаю, как закрепить картинку. А когда пытаюсь переключиться обратно – сбрасывается ответ с ветки

Постараюсь аргументировать свой выбор. Функция sameTypes() это "улучшенный" вариант value is bool. Если вы попробуете сделать что-то такое value is List<String>, то потерпите фиаско. Определение sameTypes() в настоящее время тоже самое, что и взаимная подтипизация (mutual sub-typing). Повторюсь, как это выглядит:

bool sameTypes<S, V>() {
  void func<X extends S>() {}
  // В спецификации Dart говорится, что это верно только в том случае, 
  // если S и V одного типа.
  return func is void Function<X extends V>();
}

По поводу get. Так как всё завернуто в try-catch, всё вполне безопасно. SP может выдать только известные заранее типы. Если мы укажем неправильный тип значения по-умолчанию (второй аргумент), то так или иначе получим ошибку (и вернем этот тип).
Замечу, что под капотом у SP все эти "безопасные" getBool, getInt и т.д. это тот же самый каст через as.

Смотрите

Последний раз использовали SP в 2019 году, т.к. в одном из крупных проектов это приводило к большому кол-ву memory leak.

На текущий момент 9 / 10 проектов хранит все локальные данные c помощью Isar /

После hive и их офигенных бенчмарков (а также способа записи файлов –> большой вероятности, что мы потеряем все данные в момент exception), я даже не знаю, можно ли доверять isar. У меня нет времени и желания уличать в чём-либо isar, но нарочито написано

это действительно правда? (про web)

Sign up to leave a comment.

Articles