Обновить
0
Вячеслав Онуфриюк@vanufryiuk

Solutions Architect

Отправить сообщение

Мне кажется, изначальный посыл ложен. Вернее, неполон.

Большое количество проверок, охватывающих несколько агрегатов, в сложной системе быть, конечно, может.

Но тут есть важный нюанс - такие проверки концептуально не могут предполагать сильную мгновенную согласованность (strong immediate consistency) данных между агрегатами.

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

Но когда приходится переступить через порог под названием "распределенная система хранения", и strong immediate consistency становится невозможна в принципе, и появляется необходимость применять сложные механизмы поддержания согласованности, вот тут то и возникают аргументы в пользу разделения системы на агрегаты, поверх которых уже и строятся двухфазные коммиты, саги и прочее счастье распределенной разработки.

Не хочу спорить с субъективными высказываниями, но, что касается объективного, то

Сложность поиска константна. И не при идеальных условиях, а всегда.


Нет. Только если у Вас количество коллизий = 0. В худшем же случае — линейная. Сложность поиска в Dictionary линейно зависит от количества коллизий для конкретного ключа. Больше елементов — больше коллизий.
Да, всё верно. Это разница между фоном #000000 и #121212. Google также говорили о Dark Theme, цвет фона в которой как раз #121212.
А еще она позволяет устройствам с (AM)OLED экономнее расходовать батарею. Причем существенно. На Android Developer Summit в прошлом году Google отчитались по этому поводу. Расход батарейки на экран в YouTube с темней темой и 100% яркостью был на 60% меньше, чем со светлой темой.

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Архитектор программного обеспечения
Ведущий