Какие посоветуете книги для направления проектирования веб приложений?
Всем привет!
Меня интересует такие вещи как EAV (entity attribute value), другие модели данных, проектирование высоконагруженных (в т.ч и распределённых) систем, кеширование, микросервисная архитектура, event sourcing и в таком духе advanced стаф.
Интересует разработка только под среду C#, .NET 7
Из доступного стека знаю: RabbitMq, EF Core, MediatR, Postgresql, AutoMapper, Redis.
Хотелось бы развиться именно в производительных приложениях, одинаково важны и микросервисная, и монолитная архитектура. В том числе и рецепты/принципы по проектированию webApi, БД.
Также, фоном, буду признателен за хорошие книги по развитию soft skills (без тайм менеджмента, пока нет такой потребности)
Не знаю кто тебе рассказал про EAV но это тебе точно не друг в производительных приложениях.
Микросервисная архитектура. По этому есть книжка от Sam Newman.
RabbitMq - быстр но недостаточно. В сравнительных характеристиках берут Kafka за образец.
Redis - изучи обязательно. Вообще связка Redis/NGinx - это основа любого самого быстрого веб-приложения. Без нее - нечего даже и думать о быстроте.
Postgresql - хорошая вещь но он не должен появляться именно во фронтовой части веб приложения
напрямую. Основа любой скорости в вебе - это предварительный прогрев кешей и публикация в них вообще
всего что может пользователь запросить.
event sourcing - очень размытое понятие. Наверное все что я перечислил выше может просто
быть частью этого огромного паттерна. Шаблон настолько общий и универсальный что его можно
найти и в BigData, и в платежных системах, и в чатах и соцсетях.
да, тут я наверное не очень точно выразил вопрос...
мне бы хотелось больше понять про проектирование по, а это соответственно разного рода модели данных - EAV, например. Честно, кроме как в википедии ничего больше про эту модель не нашел. Может книжки умные есть на такой случай?
Про event sourcing тоже соглашусь, ибо я сам не с первого раза догнал в чем его идея... но тут скорее вопрос про историчность (?) данных и в таком духе best practices в общем.
Вот про кеши (осбенно нормальные реализации, а не helloy worldы с декораторами на репозиториях, которые даже в транзакцию не могут) хотелось бы почитать подробнее. Может, подскажете что вообще следует делать? Мб тупо залазить на гитхаб и читать? Или есть литература соответствующая... memcached, microsoft memory... так, поверхностно только понимаю.
А книжка по микросервисам есть на русском переводе? Боюсь, всех деталей на английском не пойму. Все-таки не про код книжка.
forced, смотри It доклады и конференции очень крупных компаний которые уже что-то сделали и хвастаются как у них там все ловко и хитро. Тут особенно ценен опыт докладчика который не теоретик а как раз зашел со стороны инженерной. Тоесть он уже горел в performance issues, он видел сложные баги которые никакой теоретик не придумает просто в силу синергии многих технологий. И как он эти баги решал. Мне например было интеренсно послушать доклады про протокол Http3/Quic и просто понять что все мои представления о скорости TCP были немного другие. Вот. Много докладов было в разделах Amazon (AWS) кажется где крупные компании (авиа, транспорт, продажи) хвастаются где они чего соптимизировали.
В целом векторы оптимизации - почти всегда это event sourcing, partitioning, ослабление уровней ACID
и все в условиях когда бизнес этому удовлетворяет.
Вот. А EAV - это взгляд из 20-го века. Он безнадежно устарел и его обычно читают старые и дряхлые преподаватели-куколды которые только и помнят что Турбо-Паскаль и БД Информикс. Современные БД
поддерживают документы блобы в XML/JSON и не нужен тебе ЕАВ аж никогда.
mayton2019, видимо поэтому о нем никакой инфы и нет. спасибо большое за развернутый ответ, тогда буду читать статьи на Хабре прокашлянных компаний по типу яндекса (вроде натыкался даже на их статью про идемпотентность в апи навигатора)