marshinov, еще вопрос, насчет AppService-ов. В этой статье предлагается превращать его в композитный обработчик всех кейсов, которые покрываются публичными методами. Но Богард и остальные отцы-основатели не советуют вызывать хэндлеры из хэндлеров, используя их лишь на самом верхнем уровне архитектуры. Но как быть, когда аппсервис для своей задачи вызывает еще несколько компонентов, которым для работы нужны еще компоненты. Превращать все это в команды-обработчики? Или же оставлять как есть, но тогда мы получаем слабую связанность за счет, например, МедиатРа только на уровнях контроллер и контроллер-1 (где и так логика довольно проста и прямолинейна), а хотелось бы разрубить связи между компонентами, которые делают основную работу.
marshinov, подскажите, пожалуйста, как у вас в итоге хэндлеры верхнего уровня дергают хэндлеры AppService? Связь идет через Mediatr по типу команды?
Аналогичный вопрос для контроллера, как он запускает пайплайн?
Начал копать эту тему, счас движусь от «быстрорастворимого» в ширину, так что извиняюсь за элементарные вопросы.
Из современников неплох Пехов. Есть у него промахи, вроде Киндрэта, но, в целом, как погрузился в Сиалу, так не отпускает. Возможно, дело в кинематографичности произведений: читаешь, и такое ощущение, что диаблу запустил(=
По поводу одногеройных сюжетов: Имя ветра или Хроника убийцы короля совсем от этого не проигрывают. Хотя сейчас, конечно, стандарт — это прыгать по всему миру, как в Меекхане или Пространстве Кори.
Тестопригодность и хороший код/архитектура понятия параллельные и не обязательно пересекаются. Но если в каком-то проекте пересеклись, то вот оно — счастье(=
правильно ли, что, если необходимо не добавить новый элемент, а изменить свойство существующего, то Spread уже не спасет и нужно клонировать элементы массива? Делает ли Immer это за нас, можно ли написать:
draft.list[0].name = 'smth';
2. Как я понял из документации, если мы обновляем стейт с использованием текущего состояния, нужно использовать перегрузку setState, принимающую функцию (чтобы всегда основываться на самом свежем стейте). Необходимо ли это здесь, и, если нет, почему:
Во-первых, спасибо автору, наконец-то начало проясняться(= И правильно понимаю, что в первых двух примерах достаточно расширить структуру входных параметров (принимать тоже кортеж и объект с полем-агрегатором промежуточных состояний) и не усложнять введением синтетичеких методов?
Автору спасибо за попытку, но, к сожалению, все-таки не для программиста(= В отличие от этой статьи: после десятка подобных вашей наконец-то пришло понимание. А все потому, что ничего лишнего в объяснении — только код.
Зато прожил большую часть жизни в Молдове, там ситуация примерно такая. Да, законы принимаются не так лихо, зато присутствует, во-первых, прозрачность (оба лагеря опасаются явно мухлевать, как у нас), во-вторых, ощущение у населения, что твой голос имеет вес, что провоцирует на активное участие в политической жизни, опять же, в отличие от нас, где большая часть населения справедливо полагает, что никак повлиять на власть не может, и, следовательно, игнорит те же выборы.
Аналогичный вопрос для контроллера, как он запускает пайплайн?
Начал копать эту тему, счас движусь от «быстрорастворимого» в ширину, так что извиняюсь за элементарные вопросы.
По поводу одногеройных сюжетов: Имя ветра или Хроника убийцы короля совсем от этого не проигрывают. Хотя сейчас, конечно, стандарт — это прыгать по всему миру, как в Меекхане или Пространстве Кори.
1. В этом примере:
правильно ли, что, если необходимо не добавить новый элемент, а изменить свойство существующего, то Spread уже не спасет и нужно клонировать элементы массива? Делает ли Immer это за нас, можно ли написать:
2. Как я понял из документации, если мы обновляем стейт с использованием текущего состояния, нужно использовать перегрузку setState, принимающую функцию (чтобы всегда основываться на самом свежем стейте). Необходимо ли это здесь, и, если нет, почему: