📓 Записки программера – Telegram
📓 Записки программера
1.03K subscribers
321 photos
1 video
6 files
621 links
Канал с регулярными постами о разных интересных материалах (статьи, видео, фреймворки и полезные инструменты).

https://dotnet.social/@denisio
Download Telegram
RxWiki - множество примеров System.Reactive (observable коллекции, методы агрегации и т.д.).

Rx.Book - несмотря на возраст репозитория примеры по прежнему актуальны

#dotnet
Пост high level design микросервисных систем 😁 Для расширения кругозора несколько полезных ссылок. Да, это реально всё встречается на собесах от senior и выше (инфа 100%):

Microsoft - Drone Delivery system - несмотря на то, что это раздел про Azure - описание, теория и пример проектирования мало отношения имеет к Azure, он применим в любой облачной и не только среде.

На medium - только теория и паттерны проектирования

30 вопросов по System Design с картинками 😁
System Design Patterns (github)
Backend best practices (github)
Domain-Driven Hexagon (github) - реализация на #typenoscript

Domain-Driven Design and Messaging Architectures

#books #education #ddd
👍1
А что, так можно было? 😵‍💫 #css #ui
много других cheat sheet для CSS
👍2
DotNetBook - книга Станислава Сидристого (ru) по внутреннему устройству объектов в #dotnet, disposable-паттерну, memory management'у, исключениям, конкурентному доступу, и т.д. Рекомендуется для прочтения целиком всем, кто пишет для dotnet. #education
Dapr - Distributed Application Runtime - ещё один фреймворк для построения распределённых приложений. Сам не пользовал, но выглядит интересно. Что немаловажно - он позволяет держать гетерогенные приложения на разных рантаймах и языках. Попробую в ближайшее время потыкать и посмотреть как оно в работе. Scott Hanselman даже книгу по нему написал два года назад (книга бесплатная).
C# functional extensions - удачный пакет с затаскиванием функциональных штук в C# - монады Maybe/Optional/Chain/Tap/Result/Match. В пет-проектах - почти всегда использую. Плюс к чистоте и читабельности кода. #dotnet
Два плагина для Rider😍, которые показывают в IDE цикломатическую и когнитивную сложность методов и классов, метрики которых считаются по вот этому документу (G. Ann Campbell, одной из контрибуторов SonarQube)
Красивый и удобный сервис для создания интерактивных временных диаграмм (timelines) #tools
Manage your terraform like a container (en) - достаточно простая статья про #terraform и #aws с примерами и картинками
FluentValidation - удобный пакет для валидации моделей, который позволяет
💙вынести валидацию в отдельные классы
💙сделать chaining-валидацию
💙получить готовый список ошибок в модели (для возврата на фронт)
💙поддерживает DI
💙при желании (штатно этого нет) - сделать небольшую middleware и воткнуть в pipeline ASP.NET Core для автоматической валидации всех входящих моделей с фронта и возврата например http 400, если модель не соответствует правилам.

К чистоте и читабельности кода #dotnet
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Как работает TLS на русском языке (многостраничная статья). Минимум картинок, максимум дампов и примеров пакетов #education
Building a Scalable Event-Driven Search Architecture With Postgres’ Full-Text Search - статья по созданию полнотекстового поиска на Postgres - с блэкджеком микросервисами, очередями и картинками. #books #education
Fody - аналог PostSharp в каком-то роде, позволяет в post build залезть в IL ассемблей и сделать что-нибудь очень произвольное (примеры разной дичи):
💙в релизном билде оторвать override ToString у всех классов
💙инжектнуть измерение времени выполнения во все методы с указанным атрибутом и выдавать это в Trace
💙воткнуть проверку на null всех nullable string параметров в начало всех методов
💙добавить ConfigureAwait(false) во все async методы
💙воткнуть сообщение в Trace во все [Obsolete] методы

Вобщем плагинов там штатно полно и несложно написать свой, который будет делать разную дичь всё что угодно с вашей ассемблей после билда. #dotnet
Please open Telegram to view this post
VIEW IN TELEGRAM
Несколько примеров best practices с github по архитектуре приложений. С технологиями, которые мы любим (почти):

NET Core
Entity Framework Core
Angular
MediatR
AutoMapper
FluentValidation
NUnit, FluentAssertions, Moq & Respawn

💙CleanArchitecture
💙CleanArchitecture (другого автора)
💙EquinoxProject
💙Dotnet-Template-Onion
💙NetCore-Clean-Architecture
💙CleanAspNetCoreWebApi
💙CQRS-Clean-Eventual-Consistency
💙Clean-Architecture-ASP.NET-Core

#dotnet
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Интересный онлайн-сервис-анализер asm-кода, который выдаёт низкоуровневую инфу (такты, промахи предсказания, ...). Есть разные микроархитектуры процессоров. Технически например можно взять из того же SharpLab код после JIT, скопипастить сюда и посмотреть повнимательней на планируемый перф. #tools
FluentAssertions - ещё одна штука из с fluent-синтаксисом, который позволяет человекопонятным языком валидировать данные и бросать исключения в случае несоответствия. Подходит как в юнит-тестирование (тот же MSUnit нищеват на assert'ы), так и в компании с FluentValidation к примеру для читабельной валидации. В т.ч. для сложных штук (коллекций к примеру) - есть методы, которые позволяют в одну строку сравнивать коллекции с хитрыми условиями - с маппингом, вложенными коллекциями, конвертацией и т.д. #dotnet
👍2
Building ASP.NET Core and EF Core multi-tenant apps - цикл из 6 статей по построению multi-tenant приложения. В отличие от множества других статей - здесь рассматриваются несколько разных вариантов, с достоинствами/недостатками и ограничениями, которые присущи каждому способу.

Global Filters in Entity Framework - вторая статья (не имеющая отношения к первой, но имеющая отношение к multi-tenancy) - применение глобальных фильтров в EF для разграничения доступа к данным в контексте EF

#dotnet #ef