.NET дайджест #25: .NET Standard 2.1, подход к распределенным системам, как выбирать границы микросервисов
В выпуске: о внутренностях разработки Rider, как писать Unit-тесты так, чтобы они не ломались при рефакторинге, обзорное видео о сагах.
.NET
ASP.NET Core 2.2.0-preview1: HTTP/2 in Kestrel
Server Push, к сожалению, пока не поддерживается, и команда все еще решает, включать ли его в эту версию.
.NET Standard 2.1
Документ объясняет, почему были принято такое решение версионирования и какие API будут включены. Основная идея — включить Span<T> в стандарт.
Diagnosing .NET Core ThreadPool Starvation with PerfView
Architecture
Event Store scavenging and the hidden cost of link events
Modeling Uncertainty with Reactive DDD
Хорошая статья о подходе к распределенным системам. Я как-то давал ссылку на запись доклада, тут это оформлено в виде статьи. Стоит ознакомиться тем, кто работает с распределенными системами.
Distributed Data Management
Amazon Kinesis Streams как вариант Single Source of Truth системы (подобие Event Sourcing).
Microservices & Distributed Monoliths
Managing data consistency in a microservice architecture using Sagas
Хорошее обзорное видео о сагах и о том, как они помогают решать проблему распределенных транзакций.
Not Just Events: Developing Asynchronous Microservices
Отличный Keynote c конференции, которая проходила вот только в этот понедельник.
Microservices, Bounded Contexts, and Everything in Between
Отличный доклад оттуда же о том, как выбирать границы микросервисов. Там еще были интересные выступления, так что рекомендую посмотреть, может что-то еще будет актуально.
Practices
TDD, Where Did It All Go Wrong
Отличное видео о том, что на самом деле такое Unit-тесты и как писать тесты так, чтобы они не ломались при рефакторинге.
Tools
RetireNet
Расширение, позволяющее проверить, содержат ли NuGet пакеты известные уязвимости.
Building a .NET IDE with JetBrains Rider
Интересная статья о внутренностях разработки Rider.
A Detailed Look at RFC 8446 (a.k.a. TLS 1.3)
The software engineer’s guide to asserting dominance in the workplace
Детальное расписание на неделю с инструкциями, как занять доминантное положение в новой компании на уровне с «On your first day at the new job, squash every commit from the repo into a single commit with message „Legacy code“ and force-push to master».
P. S. Последние несколько месяцев я замечаю, что у меня сместился фокус интересов, и времени для подготовки качественного материала для дайджестов остается совсем немного. Поэтому, если кому-то было бы интересно перенять эстафету и стать новым автором .NET дайджеста — дайте знать мне или администрации. Если нет, возможно, какое-то время дайджесты немного похудеют и будут содержать только то, что было очень полезным для меня или чем я очень хочу поделиться. Потому как информации приходится фильтровать много.
P. P. S. Кстати,
← Предыдущий выпуск: .NET Дайджест #24