Size: a a a

Dart & Flutter по-русски

2020 August 19

lf

les forest in Dart & Flutter по-русски
Sergey Hottabych
У меня коллега практикует странный подход — не сериализует модели напрямую в json, а делает вспомогательные DTO-объекты (которые только для json), и пишет маппер, которые их уже копирует в модели и обратно.
Обосновывает это "разделением ответственности", что типа должны быть модели, которые используются в логике и модели для сериализации/десериализации.
Получается намного больше кода, и некрасиво.
Зачем так делать, и какой в этом смысл? Сам он бывший джавист.
Это clean подход
источник

DS

Denis Soldatov in Dart & Flutter по-русски
'
источник

PE

Pavel Erokhin in Dart & Flutter по-русски
les forest
Это clean подход
Который доведет проект до ужасного состояния создав еще несколько таких моделей, через год будешь смотреть "вот и нахера тут по две модели ?:)"

В жопу такие клин подходы которые только плодят больше кода по проекту, в его случае конкретно

ИМХО конечно же
источник

A

Anokhin in Dart & Flutter по-русски
Урусай
Не не не. Фанатичный солид подразумевает собой "один класс - одно действие", а в идеале "один класс - один метод, желательно в одну строчку"
Этот «идеальный» подход только в головах уходящих в крайность людей )
источник

M

Max in Dart & Flutter по-русски
Sergey Hottabych
У меня коллега практикует странный подход — не сериализует модели напрямую в json, а делает вспомогательные DTO-объекты (которые только для json), и пишет маппер, которые их уже копирует в модели и обратно.
Обосновывает это "разделением ответственности", что типа должны быть модели, которые используются в логике и модели для сериализации/десериализации.
Получается намного больше кода, и некрасиво.
Зачем так делать, и какой в этом смысл? Сам он бывший джавист.
Работа с JSON из коробки в Dart действительно очень плоха - всё через dynamic. Сам хочу от этого уходить к нормальной презентации с JSON-нодами.

Кстати, расскажите, кто какие использует - их несколько разных в разных библиотеках?
источник

ДЩ

Дмитрий Щербаков... in Dart & Flutter по-русски
dart.convert наше все)
источник

SH

Sergey Hottabych in Dart & Flutter по-русски
Max
Работа с JSON из коробки в Dart действительно очень плоха - всё через dynamic. Сам хочу от этого уходить к нормальной презентации с JSON-нодами.

Кстати, расскажите, кто какие использует - их несколько разных в разных библиотеках?
В смысле, плоха? Она идеальна!
Почему всё через dynamic? dynamic для удобства, чтобы не писать Future<Response<Map<String, dynamic>>>>
источник

PK

Pavel Kozlovskiy in Dart & Flutter по-русски
Добрый день, а как test driver  "подождать" загрузки списка,  например через RefreshIndicator
источник

M

Max in Dart & Flutter по-русски
Sergey Hottabych
В смысле, плоха? Она идеальна!
Почему всё через dynamic? dynamic для удобства, чтобы не писать Future<Response<Map<String, dynamic>>>>
Map<String, dynamic> - это нетипизированные данные.
источник

SH

Sergey Hottabych in Dart & Flutter по-русски
Max
Map<String, dynamic> - это нетипизированные данные.
Ну так в json с правой стороны может быть и число, и строка, и вложенная мапа
источник

SH

Sergey Hottabych in Dart & Flutter по-русски
А как по-другому то?
источник

M

Max in Dart & Flutter по-русски
Sergey Hottabych
Ну так в json с правой стороны может быть и число, и строка, и вложенная мапа
В JSON с правой стороны может быть JSON-нода. С фиксированным набором подтипов. А в dynamic может быть вообще что угодно.
источник

M

Max in Dart & Flutter по-русски
Собственно, всё, что может быть в JSON - это jsonList, jsonMap, String, num, bool и null.

Мягко говоря, этот список меньше, чем "что угодно".
источник

A

Anokhin in Dart & Flutter по-русски
Sergey Hottabych
А как по-другому то?
Можно как в Свифте, там надо указывать конкретный тип )
источник

ИЦ

Илья Цымбалюк... in Dart & Flutter по-русски
Ребят привет. Нужно сделать таймер, в контроллере, я объявил переменную. Сделал функцию, функцию вызываю, таймер работает всё окей. Но каждый раз когда я пытаюсь проверить _timer на isActive или на null. Он всегда пустой. Как его правильно проинициализировать ? Что бы он не слетал ?
источник

Sergey λ in Dart & Flutter по-русски
Илья Цымбалюк
Ребят привет. Нужно сделать таймер, в контроллере, я объявил переменную. Сделал функцию, функцию вызываю, таймер работает всё окей. Но каждый раз когда я пытаюсь проверить _timer на isActive или на null. Он всегда пустой. Как его правильно проинициализировать ? Что бы он не слетал ?
Внутри startTimer
if (_timer == null) {
.. init
}
источник

ИЦ

Илья Цымбалюк... in Dart & Flutter по-русски
Sergey λ
Внутри startTimer
if (_timer == null) {
.. init
}
Так если я так делаю он по новой запускает таймер и идет еще один отсчет
источник

TK

Timur Karimov in Dart & Flutter по-русски
timer.cancel может
источник

ИЦ

Илья Цымбалюк... in Dart & Flutter по-русски
Timur Karimov
timer.cancel может
cancel вызывается в одном месте только если таймер меньше < 1
источник

Sergey λ in Dart & Flutter по-русски
А кто его инициализирует первый раз?
источник