169 похожих чатов

Добрый день! Разработкой монолитов и микросервисов занимаюсь давно на SQL/.NET. Flatter/Dart

начал изучать недавно. Посоветуйте хороший ресурс посвященный построению архитектуре приложений на Flatter/Dart. Пока для меня Flatter/Dart выглядит этаким зоопарком, нет единых практик и подходов. Интересует как реализовать принципы SOLID, DDD, Dependency Injection, Clear Architecture. Многие статьи которые читаю противоречат друг другу и явно указывают на индусское происхождение.
В качестве стейт системы решил выбрать BLOC, однако все описания и примеры используют 1-2 блока в системе. Попытка использовать BLOC как Mediatr в .NET не приводит к желаемому результату. Если предполагается несколько сотен блоков как реализовать взаимодействие между блоками?
Возможно не там ищу, может есть может что-то похожее на референсную архитектуру для приложений от Майкросовт?

15 ответов

16 просмотров

редакс как источник данных и миддлвар с бизнес логикой и блоки для поставки контента в виджеты

Смотри в сторону MobX.dart. Это примерный аналог MVVM для натива или Vue.js, если знаком с таким. Забудь про блок. Громоздкая неудобная хренотень. И не слушай чувака с редаксом.

N-P Автор вопроса
Sergio Molchanovsky
Смотри в сторону MobX.dart. Это примерный аналог M...

С MVVM не знаком. я до этого не писал фронтоые приложение. 15 лет только бек

N-P Автор вопроса
Sergio Molchanovsky
Смотри в сторону MobX.dart. Это примерный аналог M...

мне bloc показался очень похожим на Mediatr библиотеку для C#. есть команты/эвенты, есть обработчики и есть ответ. Сейчас ищу как сделать милдвер для эвентов на соответствие бизнесс правилам, логирование и проверку прав.

https://vas3k.club/post/10567

N P
мне bloc показался очень похожим на Mediatr библио...

Не ищи, прочитай доку по MobX, и делай как тут https://mobx.netlify.app Все кейсы покрывает. В качестве IoC возьми get_it

Sergio Molchanovsky
Смотри в сторону MobX.dart. Это примерный аналог M...

мввм для декларативной вёрстки нафиг не нужен, как и слушать ётунхейм чувака даже если у него шильдик админ

Каво, блок громоздкий, щитоо

redzed .
Каво, блок громоздкий, щитоо

Даже с версией 8.0 не сильно легче стало. Могу пояснить свою нелюбовь к блоку. Вот пример из моего проекта — блок карточек "что нового". Загружаем их при помощи кубита. Пишем сам кубит. Создаем 4 стейта: InitialState, LoadingState, DataState, ErrorState. И дальше мне понадобилось при нажатии на крестик скрывать весь блок карточек. И это в том же кубите уже сделать нельзя! Так как он только под загрузку данных. Это значит, надо написать ещё 1 кубит, в нем написать 2 стейта (VisibleState / InvisibleState), создавать его, считывать... Итого 2 кубита и 8 классов стейтов (а если блоки, то еще и ивенты написать). Насколько проще то же самое было бы в MobX сделать!

Sergio Molchanovsky
Даже с версией 8.0 не сильно легче стало. Могу поя...

Вы же сами сказали что он для управления данных, второй кубит с визибл/инвизбл не нужен, т.к он никакими данными не управляет Здесь можно обойтись, как я и говорил ранее, ValueNotifier'ом Стейты и эвенты классами уже никто не пишет, пишут единый класс НеймБлокСтейт и НеймБлокЭвент и в них фактори с именами и параметрами стейтов

redzed .
Вы же сами сказали что он для управления данных, в...

> пишут единый класс НеймБлокСтейт и НеймБлокЭвент и в них фактори с именами и параметрами стейтов Через freezed?

redzed .
Вы же сами сказали что он для управления данных, в...

BLoC ещё вынуждает писать по 10 раз одни и те же стейты: Initial/Loading/Data/Error, пускай даже через freezed, все равно дублирование кода получается. В MobX уже просто есть готовая надстройка над фьючей — ObservableFuture, чтобы отслеживать её статус (pending/rejected/fulfilled).

Sergio Molchanovsky
BLoC ещё вынуждает писать по 10 раз одни и те же с...

С одной стороны, я согласен то что иметь уже готовые надстройки порой удобно, но когда ты описываешь собственноручно состояния — ты знаешь что и при каких условиях может произойти, случится ли rejected при получении например кода 401 от дата провайдера или fullfilled если у нас вернулся пустой массив Проще говоря, имея свои стейты можно так же описывать и их условия, что как я считаю, повышает flexibility

Sergio Molchanovsky
BLoC ещё вынуждает писать по 10 раз одни и те же с...

Надо будет попробовать наследовать Bloc с данными реализованными стейтами в след. проекте

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
а чем лучше всего сделать глобальный лок, если много нодов, до сотни? ну то есть мне надо, чтобы некоторые операции с объектом не происходили одновременно. перемещение между н...
Д. П.
15
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Hi guys, I'm looking for a good LLM course. Is there any course to learn LLMs in advanced? I'm aiming to use them in my apps, so a perfect course in my openion, is not only a ...
Taha
14
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Карта сайта