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

А вот настройки приложения это бизнес логика? Например стили/темы/цвета? Ведь

слой презентации не обязательно может быть гуй, а мб какой нить генератор пдф/Ворд/эксель документов?

13 ответов

11 просмотров

С бизнес-логикой на самом деле возникло много путаницы. Если брать DDD, то там больше принято разделять бизнес-логику и логику приложения. Бизнес-логика вообще никак не связана с приложением вообще – это могут быть законы, которые надо учесть в приложении, бизнес-решения. Пример обычно приводят такой – даже если все ваши рабочие процессы выполнять по старинке, без компьютера, то БД никак не поменяется. Логика приложения – это специфичная логика конкретно для вашего приложения. Например, когда сохранить данные в репозиторий (но без реализации самого репозитория), какие данные запросить по API (опять же, без реализации самого клиента). Но в последнее время под БЛ чаще всего подразумевают всю логику, которая не относится к UI и инфрастуктуре. Я обычно советую разделять так (упрощенно): представьте, что вы меняете GUI на CLI. Если логика поменялась – это логика UI, она не должна быть в слое БЛ. Если осталась та же, скорее всего, это БЛ.

Adel'-Gilyazeev Автор вопроса
Kirill Bubochkin
С бизнес-логикой на самом деле возникло много пута...

Куда лайков завести?) Помню где-то видел разделение на четыре части: По зависимости от конкретного приложения (тех реализации) И ещё там был какой-то параметр и у каждой части было своё название и свой слой

Adel' Gilyazeev
Куда лайков завести?) Помню где-то видел разделе...

Ну вот по слоям обычно и выделяют: слой БЛ (Business Logic Layer), слой приложения (Application Layer), слой презентации (Presentation Layer) и инфраструктурный слой (Infrastructure Layer).

Adel' Gilyazeev
Куда лайков завести?) Помню где-то видел разделе...

Это типичный DDD. Адски кошмарная штука. Избегай ее пока можешь.

Adel'-Gilyazeev Автор вопроса
Kirill Bubochkin
С бизнес-логикой на самом деле возникло много пута...

Я б к таким хорошим ответами, хештеги бы добавлял для быстрого поиска)

Adel' Gilyazeev
Я б к таким хорошим ответами, хештеги бы добавлял ...

да я думаю поиском можно будет найти, если что. Хэштегами кто-нибудь вообще пользуется? )

Adel'-Gilyazeev Автор вопроса
Adel'-Gilyazeev Автор вопроса
Kirill Bubochkin
да я думаю поиском можно будет найти, если что. Хэ...

А что ты думаешь на счёт кешированния виджетов?

Adel' Gilyazeev
А что ты думаешь на счёт кешированния виджетов?

делать const – хорошо, хотя бы даже на смысловом уровне – показывает, что этот виджет от текущего контекста не зависит. Плюс оптимизация. Если же именно сохранять инстансы виджетов, то это чаще всего преждевременная и не особо нужная оптимизация. Есть хорошая статья про GC, там прямо написано: It’s not uncommon to see new Flutter developers create references to widgets they know will not change over time, and place them in state so that they won’t be destroyed and rebuilt. Don’t do this. https://medium.com/flutter/flutter-dont-fear-the-garbage-collector-d69b3ff1ca30

Adel'-Gilyazeev Автор вопроса
Kirill Bubochkin
делать const – хорошо, хотя бы даже на смысловом у...

Таки тут же переживания не за GC, а за то что новый инстанс не равен старому, а значит виджет надо пересобрать.. а так как его ребёнок тоже обновился новым инстансом и то и его пересобирать и ТД и тп

Adel' Gilyazeev
Таки тут же переживания не за GC, а за то что новы...

Во-первых, ребилд != ре-рендер. Во-вторых, ребилдить он будет все равно до первой константы. На практике я как-то не сталкивался с ситуацией, когда такое кэширование приносило бы ощутимую пользу. В рамках одного виджета глубокое под-дерево строить – так себе идея в любом случае, там и так будут вынесены отдельные виджеты, а ребилд нескольких виджетов ничего не изменит. Опять же, если build-метод, как положено, легкая и чистая функция.

Adel'-Gilyazeev Автор вопроса
Kirill Bubochkin
Во-первых, ребилд != ре-рендер. Во-вторых, ребилди...

В целом согласен) и при разработке такое кеширование мешает (хот-релоад не обновляет зауешированный виджет если это не предусмотреть) Да и в самих исходниках я такого не встречал... Но вот листвью у меня, если билдер лямбда, то он перестраивает весь список (все элементы списка) если владелец листвью был перестроен

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
10
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
это группа токсиков или тех кто помогает?
Ибрагим
9
Я короче решил скомпилировать Nim в js, я думал он сработает как обычный транслятор. По итогу он мне создал файл с расширением js, и туда поместил кучу кода Вопрос, что это з...
𝕾𝖍𝖆𝖉𝖊 <suspense>
8
мы пытаемся подменить функцию, которая имеет меньше инструкций относительно функции, которой подменяем. https://www.reddit.com/r/jailbreakdevelopers/comments/w06ujy/mshookfun...
Óðinn
6
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
Добрый день! Хочу спросить совета. Хочется в скрипт добавить некую конструкцию, что скрипт создал файл, который нужно потом скопировать в определенное место. Нашел такой сп...
Mikhail
4
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта