Pull to refresh
0
0

Lead software developer

Send message

Это настоящий classic, я бы даже сказал pleasantly

Беру свои слова назад.
Посмотрел в реализацию, это просто тихий ужас.
А после того как они еще и из get_storage "бенчмарк" в сравнении со скульлайтом затащили - это просто позорище. Никому не советую.

  • compute-ом, ведь он тоже не работает в вебе)


Работает, там он выполняет асинхронную операцию
А также существуют кондишен импорты и веб/сервайс вокеры.

  • Все блоки работают в одном изоляте. Это решает сразу много проблем, к примеру не нужно ломать голову над тем, как между несколькими изолятами построить коммуникацию, или над тем, сколько изолятов запускать


И создает новую, в виде дополнительного расхода ресурсов и копирования зависимостей между изолятами

  • Я провёл несколько внутренних тестов...

Поздравляю, потерял 5% ресурсов на копирование и кучу оперативной памяти на поддержание изолята, ничего с этого не выиграв)

Еще раз повторю - пользуйтесь всем чем хотите на свое усмотрение, но не надо вводить людей в заблуждение. А лучше поймите как работает эвент луп и все ваши "проблемы" как рукой снимет.

Идея хорошая и правильная.
Но реализовать это правильно практически невозможно из за обилия подводных камней.

1) веб, нам ведь нужны будут сервайс/веб вокеры, раз асинк не годится, для веба он тем более не подойдет.

2) количеством выделяемых изолятов надо тонко управлять, ставя в очередь задания, коим не хватило места (в акведуке на бэке, например, по изоляту на каждые два ядра).

3) объекты между изолятами не копируются, их сериализация/десериализация в двоичные данные и обратно не та вещь, которой можно принебрегать. Также отсюда растут весьма неприятные баги, которые периодически фиксят (например тот же баг, когда enum в мейн эвент лупе не соответсвует enum'у в изоляте).

Для себя я вижу решение только оставить БЛоКи в покое в основном изоляте, а оперировать изолятами и тяжелой обработкой уже точечно в слое бизнес логики.

Пользуясь случаем порекламирую библиотеки замечательных разработчиков и моих друзей, которые могут помочь вам в этом нелегком деле)))
pub.dev/packages/worker_manager
pub.dev/packages/computer

PS: если проектировать архитектуру для общения с изолятами и подобной изолированости — может вам стоит отказаться от BLoC'а в сторону EventBus?
Сможете рассматривать каждый изолят как отдельный микросервис, а шину как месседж брокер. Pub/Sub гораздо проще управлять решая подобные проблемы. Но это может оказаться всеже слишком избыточным для большинства не самых сложных приложений.

gRPC хорошая штука, особенно если вы дружите с Гошниками)
Коллеги, просто ради интереса, а случайно не используете Sonar Qube или аналог?
Или просто в сиай пайплайне проверяете аналайзером?
Отличный перевод, как всегда.
Спасибо за вклад в развитие флатера)
Ну справедливости ради, rive.app (бывш. flare) на флатере всеже пока заметно лучше и чаще используется.

Еще будут работы по отображению нативных интерфейсов во флатере, так что еще не вечер и лотти себя еще покажет.

Логика также на дарт.
В большинстве CRUD приложений вам ничего кроме дарт и не потребуется.


Но никто не запрещает и на swift/obj c/java/kotlin/c/js (не только логику, но и интерфейс), просто придется несколько раз писать одно и тоже, для кроссплатформы.

Ты большой молодец. Спасибо за перевод.

В догоночку, есть различные линты, подсказывающие, когда возможно использовать const.

dart-lang.github.io/linter/lints/prefer_const_constructors.html
dart-lang.github.io/linter/lints/prefer_const_constructors_in_immutables.html
dart-lang.github.io/linter/lints/prefer_const_declarations.html
dart-lang.github.io/linter/lints/prefer_const_literals_to_create_immutables.html
и тд.

Особенно полезно при построении интерфейса на флатере.
HIVE — просто волшебная штука.
Но у нее очень посредственная кодогенерация и объекты которые собираешься хранить — не должны быть иммутабельными.

1) заводим регистр сведений
2) заводим реквизит «первые 3 буквы» и реквизит «полное наименование», индексируем
3) выполняем запрос с подзапросом (сначало по первым 3 буквам, затем по полному наименованию).
4) получаем свои пикосекунды поиска

Как смасштабировать по нескольким реквизитам и нескольким словам, думаю, понятно.
В данном кейсе никакие эластиксичи не нужны. И миллион записей это копейки. Все это делается средствами 1с или СУРБД (смотря где вас застал этот кейс).
Проверено не раз, сам впервые столкнулся когда нужно было искать по табличке с миллиардами записей весом в 350 гигабайт (микросекунды до получения результата).

Вы же понимаете, что это не ржд пишет, а ради шутки некто былинную "пасту" отправил?)

Вы не правы.
В своей статье Вы сравниваете архитектуру (стейт менеджмент), виджет (ui элемент), di и все это с оберткой над dart:async. Прям целая каша в голове.

Никто не сомневается, что можно написать hello world вообще не оперируя такими понятиями и вообще используя только setState и Future builder.

Собственно, в этом и состоит к вам претензия.

PS: если хотите, распишу вам подробнее, зачем нужен DI (Provider, оберточка над Inheriting Widget), зачем стейт менеджмент (BLoC, который, между прочим, на rxdart).
Стоило упомянуть, что Флатер это ООП реактивщина и одна из самых популярных архитектур — BLoC (способ отделения слоя UI и Бизнес логики), чем то похожа на редакс. Только тут не управление состояниями, а событие порождающие состояния и реакции интерфейса на их смену.

Если немного помечтать, то можно было бы еще упомянуть и фуксию, если «выстрелит» она, то это сразу +100 очков Грифиндору Флатеру.

Flutter для веба — уже на старте вполне неплохо себя показало, хоть и сыровато.
Получаются вполне симпатичные PWA, но при этом отрисовка анимаций не всегда плавная (адекватного отображения прокручивающихся списков удалось добиться увеличением размера элементов и указания физики списка).

Флатер и дарт весьма симпатичны и на них возлагаю большие надежды.
Из субъективных нареканий: выпилили рефлексию (надеюсь, что вернут), сложные объекты всегда передаются по ссылке, а примитивы по значению.

Мобильный флатер уже сейчас вполне годится для продакшена и вполне себе теснит РН.

Спасибо за статью, мой комментарий, наверное, вышел слегка сумбурным.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity