Программирование : Dart & Flutter по-русски
Ivan
Попробуйте сохранить json со 100к в hive и структурировано в SQLite, тогда помете что он не особо то и быстрый
I V ?-N
Hive разве что для того, чтобы хранить настройки приложения и не более)
John Travolta
А давно джейсон строку хранить плохо стало?)
I V ?-N
Ну в и кэш что-то сохранить по бырому
John Travolta
Пользовательские данные тоже отлично
Dmitry Bannikov
Ну дак ... Ясень пень что SQLite это самосвал
Dmitry Bannikov
А так если фирма маленькая можно и на hive повозить
Константин Буланов
[
"Спасибо за позитивный отзыв. Но уже правильнее и актуальнее вот по этому видео учиться ",
{
"type": "link",
"text": "https://www.youtube.com/watch?v=AV_4aVOKl-g"
},
""
]
Sergey Hottabych
В Хайв есть базовая реализация связей, через HiveList
I V ?-N
Но не делать из него базу данных)
John Travolta
Это не есть цель хайва) Да блин, нет одного лучшего инструмента, смысла нет спорить
Dre
остается только вопрос на кой хрен тебе сохранять джсон со 100к
John Travolta
Нет, конечно, база данных вообще на беке должна быть и не грузить оперативу как не в себя
kk boomer
Да его я уже после вас посмотрел, и до этого тож смотрел, но тогда ничего не понял
Ivan
Я ничего не говорю плохого в сторону hive, это хороший инструмент, но это не база данных, а хранилище
I V ?-N
Кстати, а как у Hive с асинхронными вызовами?)
John Travolta
Я после асинхронного вызова получаю данные из бека, пихаю в хайв и все, кто на него подписан обновляется с новыми данными
Ivan
Например базу Steam недавно надо было по API получить, а там json в 100к+ игр
Dre
как понять твой вопрос?
Dre
если ты тянешь все 100к игр в одном джсоне то это твоя проблема а не стима или хайва
I V ?-N
Такое себе утверждение
Ivan
Причём тут моя проблема? API Стима так отдаёт базу
Dmitry Bannikov
Наверное и SQLite тяжело будет
Dmitry Bannikov
И не сразу сьест
John Travolta
На беке хранить в кеше, такое на фронт я бы не грузил, а то потом говорят "вот приложение Х мне тупит весь телефон"
I V ?-N
В moor все действия с хранилищем асинхронные, ему не проблема вытащить 100к игр
Dmitry Bannikov
Асинхрон это же не синоним мультипоток .
Ivan
Я и не говорил что это у меня на мобилке
Dre
где, покажи мне, в твоем приложении тебе надо отображать 100к записей, на какой либо из платформ, при том что ты ну никак не можешь хранить это на своем бекенде, даже если в стиме нет кастомизации коллов
John Travolta
Что значит "действия асинхронные"? Ты асинхронно получаешь результат, кладёшь в хайв и все виджеты, которые подписаны на обновление определенных боксов из хайва, перерисовываются
John Travolta
Так а в чем тогда проблема у хайва тут будет?
Ivan
Потому что надо поиск делать по этой базе
John Travolta
А для этого тебе надо все это выгрузить в оперативу телефона, правильно?
Dre
далее, если даже, допустим, тебе надо прям кровь из носа сохранить все локально в хайве, ты это синхроно делаешь? ты блочишь тред для этого?
Dmitry Bannikov
Преимущества SQLite в другом , в сортировке данных
Ivan
Зачем? Я же говорю что на бэкенде
I V ?-N
Допустим в моем мессенджере хранится 100к сообщений в кэше, ммм?)
Ivan
Да если б даже на мобиле, в озу открыть - это 5-7 мб
John Travolta
Ну так и делай поиск по беку, в чем проблема то?)
Dre
та допустим хоть триллион, ты ВСЕ СРАЗУ отображаешь и у тебя нет времени подгружать их постепенно? у тебя на экране буквально 100к записей отображаются одновременно?
Dmitry Bannikov
Это как напишешь
Dmitry Bannikov
Можно частями , можно все сразу
Dre
базару без, в ногу стрелять себе можно тоже от скуки, но накуя?
John Travolta
Ну это ж реляционная, совсем для другого Это как сравнить mysql и memcached
I V ?-N
Я бы ещё с вами поспорил насчёт безопасности данных
Dre
блять покажи мне хоть 1 экран где твои одновременно отображаемые 100к записей будут читаемы и зачем?
I V ?-N
Ээээм, допустим этот чат в телеге
John Travolta
А что с безопасностью?
I V ?-N
В каком виде хайв хранит данные?
Dre
ты троллишь или болеешь?
Dmitry Bannikov
Записи ты сам пишешь сколько тебе надо , хочешь 10 , хочешь 100 . И как бы от хранилища это не зависит
Amir Niyazov
ну да 100к же)
Dre
27” экран вертикально, здесь 100к записей?
I V ?-N
Да нет, просто срач решил развести
John Travolta
Ага, ни разу не очищал ещё на тел 50гб кеша от телеги?)) Я каждые полгода это делаю
Дмитрий Щербаков
Срач не конструктивен) так то и hive збс и sql
I V ?-N
Да, смотря для каких целей)
Дмитрий Щербаков
Прост hive жрет озу но позволяет паралелльную запись
Dre
но вопрос был даже не про это, а про “медленное сохранение в хайве”, тебе ли не покуй на скорость сохранения, если что?
Amir Niyazov
комбинируйтес. я на беке юзаю nosql и sql в зависимости от данных.
Dre
[
{
"type": "link",
"text": "https://github.com/hivedb/hive/blob/master/hive/README.md#benchmark"
}
]
Дмитрий Щербаков
sqlite ничо не жрет, писать можно тока в 1 поток читать хоть сколько
Dmitry Bannikov
Get storage не хватает
I V ?-N
Там не указан размер данных
Дмитрий Щербаков
Это хрень
Amir Niyazov
Мне не нравится, что здесь не указаны реальные цифры, только полосочки.
John Travolta
Наиполнейшая хрень
Дмитрий Щербаков
Я переписал интернет магазин с object box (суть hive) на sqlite
Дмитрий Щербаков
Разницы в скорости чтения/записи практически нет
Дмитрий Щербаков
Ну там 0.5мс
I V ?-N
Просто у ObjectBox с безопасностью проблемы
Дмитрий Щербаков
Так и у всех с ней проблемы))
I V ?-N
У moor вроде всё ок
Dre
это все иррелевант, в любом раскладе, если тебе важно как быстро сохраняется 100к записей = ты что то делаешь не так, если тебе важно читать 100к записей одновременно = ты что то делаешь не так
Amir Niyazov
Наиполнейшая хрень
Дмитрий Щербаков
Ну 100к записей читать на фронте за раз это да наркомания
I V ?-N
Если ты хранишь всё в json = ты что то делаешь не так
Дмитрий Щербаков
Ну хз какая
Amir Niyazov
спидозная, если hive 0ms)
Дмитрий Щербаков
Можно сделать тупо стрим к бд через watch
John Travolta
Так все и не надо
Дмитрий Щербаков
И отдавать по скроллу данные)
Дмитрий Щербаков
Накуя все сразу то грузить
Dre
бля никуя хоть 1 трезвый в чатике
Dmitry Bannikov
Еще один бенч
I V ?-N
А hive разве не всё сразу грузит?
Dre
наркоманы тоже бывают трезвые
Amir Niyazov
теперь уже бенч с objectbox сайта
I V ?-N
Hive deprecated лол
Dmitry Bannikov
Картину портит
Дмитрий Щербаков
Не ну в key-value хранилище писать понятно что чуток быстрее
Дмитрий Щербаков
Потому что нет relations и прочего
Sergey Hottabych
В Get storage нельзя объекты сохранять, только примитивные типы. Этакий недо-хайв.
Дмитрий Щербаков
Но по факту записал ты за 0.01мс или за 0.1 мс ваще похую потому что у нас есть 16мс (60фпс)
John Travolta
А кто работал с objectbox, норм тема? Я сейчас только узнал что оно существует
Дмитрий Щербаков
Работал, норм, но для дарта сыро и пухнет апк
Дмитрий Щербаков
Так гемор с енумами и кастом типами
John Travolta
Блин, какие-то два относительно противоречивых мнения))
Dmitry Bannikov
50 звезд в пабе , по слухам он такой же как hive , только в тренд не попал .
I V ?-N
Ты просто можешь добавить аннотацию к своей модельке и сразу же положит в бд
Дмитрий Щербаков
В итоге я заепался и перешёл на sqlite))
Dmitry Bannikov
Тренд это поддержка
Дмитрий Щербаков
Типа того
Дмитрий Щербаков
Но попробовать то тоже интересно)
Dmitry Bannikov
Кто будет непопулярное каждый месяц править
Dmitry Bannikov
Тренд гарантия что твоя либа не откинется
Дмитрий Щербаков
sqlite + moor короче в продемонстрировал щас)
Дмитрий Щербаков
Но, и hive тоже, там где не надо join ов и агрегатов он пижже чем sql
Yakov K.
Что hive умеет чего sembast не умеет?
Yakov K.
sembast с функциональной оберткой очень приятный :)
Дмитрий Щербаков
Что значит дрочиться?) поясни
Дмитрий Щербаков
для sql тебе придется делать DTO, для hive миллиард аннотаций
Дмитрий Щербаков
И там и там дроч потфакту
Dmitry Bannikov
Через hive adapter , дрочки обсолютно никакой
John Travolta
Глянул 5 сек, получается то же самое + транзакции, если они нужны Просто там, где они есть - убийство производительности
Дмитрий Щербаков
Ага, покажи мне например класс условной "корзины" как она сохраняется в hive ;)
Дмитрий Щербаков
[
{
"type": "mention",
"text": "@HiveField"
},
"... 100500 ))"
]
Yakov K.
Ой как всрато в Hive с адаптерами
Dmitry Bannikov
Большие json с бледжеком и кабаре легко
Yakov K.
В Sembast обычные DTO
Дмитрий Щербаков
DTO тоже дроч
John Travolta
В смысле? Бокс корзину с джейсоном делаешь и все
Dmitry Bannikov
Ну или страницу с данными
John Travolta
Вообще ниче не надо в хайве
Dmitry Bannikov
Одним файлом
Дмитрий Щербаков
А если надо что тот ней найти по условию, сколько ты выжрешь ОЗУ если например в боксе 1 миллион записей?
John Travolta
Тоже самое писал) Хотя редис не только ключ значение
John Travolta
Нихуясе корзина)
Dmitry Bannikov
Box.listenable это уже Стейт менеджер
Dmitry Bannikov
Если сильно надо
John Travolta
Да, так и используется
Dmitry Bannikov
Там есть свой сахар
Дмитрий Щербаков
Дело не в корзине) под каждую задачу свой инструмент) ну типа гвозди же можно забивать микроскопом, но накуя?)
John Travolta
Согласен, да я это говорил ещё 140 сообщений вверх)
Dmitry Bannikov
Вообще изначально было что легче для Todo освоить
Dmitry Bannikov
Самое первое сообщение
Дмитрий Щербаков
Для to do hive збс
Дмитрий Щербаков
Даже шареды
Dmitry Bannikov
Get storage который шаред
Дмитрий Щербаков
Для туду любая херня збс))
Dmitry Bannikov
Не так и плох
Yakov K.
SQL для туду, га-га
Yakov K.
Берите sembast :)
Дмитрий Щербаков
Можно тупо в жисоне хранить))
Дмитрий Щербаков
Можно, но нужно многа озу)
Dmitry Bannikov
Hive идеально для Rest API , страничек
Dmitry Bannikov
Для todo тоже хорошо
Dmitry Bannikov
Просто стейд менеджер который в хранилище сразу
Дмитрий Щербаков
Нет, но на клиенте в 90 % не нужны транзакции
Дмитрий Щербаков
Там можно ващетдропать базу
Yakov K.
observable != стейт-менеджмент
Дмитрий Щербаков
Постоянно и прост выкачивать её с бэка
John Travolta
Тот же принцип же
Dmitry Bannikov
Работает абсолютно не отличимо
Иван Киселев
Всем доброго вечера! Не было ни у кого опыта разработки SDK для нативных приложений на флаттер?
Yakov K.
Почитай что такое стейт-менеджер :) А то звучит примерно как - Сахар != десерт - Но по вкусу не отличимо!
Ivan
Это шо, переход в срач к стейт менеджментам?
Дмитрий Щербаков
Чо там getX расчехлять?)
John Travolta
Там вопрос парень задал, может кто ответит, пока он не канул в новом сраче?) Хотя я его не совсем понял
Дмитрий Щербаков
Я хз чо он хочет ??
Yakov K.
Щас я свой стейт-менеджмент на монадах расчехлю
Dmitry Bannikov
Они от flutter отказались
Дмитрий Щербаков
Ну там толковые ребята так то
Dmitry Bannikov
Читал статью от них
Dmitry Bannikov
Они там плакали
Дмитрий Щербаков
Они отказались от флаттер веб
Дмитрий Щербаков
А не от флаттер
John Travolta
Ты ведь понимаешь, что это не диалог?) Если ты с чем-то не согласен, объясни
Dmitry Bannikov
Что-то про тайп скрипт и про флаттер плохой
Дмитрий Щербаков
Во флаттер веб нету SEO))
Dima Kotlyarov
Он ему не нужен
John Travolta
Отвечал на другое сообщение, которого уже нет
Daniil Kolyasnikov
Может wrike отказались от dart ?
Dmitry Bannikov
Эти раньше
Ivan
Угу, а то я чёт вообще не понял к чему это))
John Travolta
Та там что-то сдвинулось)
Дмитрий Щербаков
Так деньги. Типа условный тикток сделать для иос и андроид тебе надо 2 программиста, а на флаттере 1
John Travolta
Как по мне, тс - оверхед с тонной бойлерплейта Нужны типы - есть микро либа флоу, нафиг тащить целый язык с кучей бесполезных абстракций
Дмитрий Щербаков
Любой язык без типизации сосет у языка с типизаций (имхо) на серьезных проетках
Dmitry Bannikov
Js постепенно догоняет
Дмитрий Щербаков
Жабаскрипт ваще не язык)
John Travolta
Ну у джиэса философия другая вообще
Dmitry Bannikov
Js если посмотреть последние примеры с массивами и словарями
Dmitry Bannikov
То от dart не сильно отличается
John Travolta
Ну фиг знает, на практике я прям редко встречал баги из-за типов
John Travolta
Другое дело, что интерпретатор по-другому работает на уровне оперативы, меньше памяти Но тут опять же тс только проигрывает, потому что компилится в джиэс, при этом не самый эффективный
Dmitry Bannikov
У JS супер сила
Dmitry Bannikov
Можно писать сразу в браузере
John Travolta
Не, если мы не про дарт говорим, а про нетипизируемый интерпретируемый язык
|