πŸ““ Записки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅Ρ€Π°
1.02K subscribers
304 photos
1 video
6 files
599 links
Канал с рСгулярными постами ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… интСрСсных ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ… (ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π²ΠΈΠ΄Π΅ΠΎ, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ инструмСнты).

https://dotnet.social/@denisio
加ε…₯钑道
Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² enum Π΄ΠΎΡ‚Π½Π΅Ρ‚Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ #sourcegenerator для compile-time Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ исходников. #dotnet
https://github.com/MMaximus111/StaticDictionaries
πŸ‘2
Design Patterns Library - с нСсколькими ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Π½Π° C# ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρƒ #dotnet

upd: взгляд с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны
ULID - рСализация Π½Π° C# Universally Unique Lexicographically Sortable Identifier Π²ΠΈΠ΄Π° 01ARZ3NDEKTSV4RRFFQ69G5FAV #dotnet
MassTransit - отличная шина сообщСний, которая ΡƒΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ InMemory (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°), Ρ‚Π°ΠΊ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ RabbitMQ/Azure/SQS для микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. Π’ΠΎΠΎΠ±Ρ‰Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Ссли Π΅ΡΡ‚ΡŒ шанс ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° - ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΠ»ΠΈΡ‚ΡŒ CQRS сразу с использованиСм MassTransit - ΠΏΠΎΡ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»Π΅Π³Ρ‡Π΅ Ρ€Π°ΡΠΏΠΈΠ»ΠΈΡ‚ΡŒ Π½Π° микросСрвисы ΠΈ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Ρ‹Π΅ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρ‹ сообщСний.

Π£ΠΌΠ΅Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ полагаСтся - Π°Π΄Ρ€Π΅ΡΠ½ΡƒΡŽ ΠΈ broadcast ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ сообщСний, Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ Π² MS DI, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Π²Π΅ΡΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Ρ†Π΅ΠΏΡ‚ΠΎΡ€Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для диагностики) ΠΈ Ρ‚.Π΄. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ сообщСниям correlation id, Ссли мноТСство сообщСний ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π£ΠΆΠ΅ Π΅ΡΡ‚ΡŒ встроСнный mediator, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΠΆΠ΅ интСгрируСтся соотвСтствСнно ΠΊΠ°ΠΊ с MS DI Ρ‚Π°ΠΊ ΠΈ с MassTransit. Π•ΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Automatonymous, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой state-ΠΌΠ°ΡˆΠΈΠ½Ρƒ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ‚.Ρ‡. ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° Saga.

Π’ΠΎΠΎΠ±Ρ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΆΠΈΠ²Ρ‘Ρ‚ ΠΈ развиваСтся, всС дСтскиС болячки ΡƒΠΆΠ΅ Π²Ρ‹Π»Π΅Ρ‡Π΅Π½Ρ‹. ΠΠ°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся ΠΊ использованию :) #dotnet

upd: Π²Π΄ΠΎΠ³ΠΎΠ½ΠΊΡƒ - Ρ‚Π²ΠΈΡ‚Ρ‚Π΅Ρ€-Ρ‚Ρ€Π΅Π΄ ΠΏΠΎ настройкС RabbitMQ
РСгулярно читая Π² сосСдних ΠΊΠ°Π½Π°Π»Π°Ρ… боль людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡˆΡ‚Π°Ρ‚Π½Ρ‹Π΅ EF Core ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ - Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΌΠΎΠ³Ρƒ донСсти Π΄ΠΎ Π½ΠΈΡ… ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ прСкрасный инструмСнт FluentMigrator.

Π’ Π½Ρ‘ΠΌ Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ всё Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, Π½ΠΎ это всё Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ костылСй ΠΈ Ρ‚Π΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ - всС ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ code first. Помимо ΡˆΡ‚Π°Ρ‚Π½Ρ‹Ρ… срСдств Ρ€Π°Π±ΠΎΡ‚Ρ‹ с полями, Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, индСксами - ΠΈ Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ Π½ΡƒΠΆΠ΄Π° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΡ‡Π΅Π½ΡŒ спСцифичноС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ провСсти ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ врСмя ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ) - ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ это Π΄Π°, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Ну ΠΈ плюсом - ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ для ΠΏΠΎΠ»ΡƒΡ‚ΠΎΡ€Π° дСсятков Π‘Π£Π‘Π”. Использовал FluentMigrator Π»ΠΈΡ‡Π½ΠΎ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, свои Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ (Ссли ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π‘Π”) - всСгда Π½Π°Ρ‡ΠΈΠ½Π°ΡŽ с FluentMigrator :)) #dotnet
πŸ‘1πŸ”₯1
Новый Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π² .net 7, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ студии Ρ€Π°ΡΡ†Π²Π΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ строку Π² IDE #dotnet #net7
Orleans - ΡƒΠΆΠ΅ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Π³ΠΎΠ΄ всё Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΆΠΈΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ этот прСкрасный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для создания ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² (эта Ρ‚Π΅ΠΌΠ° достаточно старая кстати, Ρ€ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π΅Ρ‰Ρ‘ Π² 70-Ρ‹Π΅ Π³ΠΎΠ΄Ρ‹).

Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅, простым языком ΠΈ для Ρ‚Π΅Ρ… ΠΊΡ‚ΠΎ Π½Π΅ вкурсС, ΡΡƒΡ‚ΡŒ ΠΈΠ΄Π΅ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°: вынСсти Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈ экзСмпляры классов (grain's) Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ (silo = дословно "Π±ΡƒΠ½ΠΊΠ΅Ρ€"), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) ΠΆΠΈΠ²ΡƒΡ‚ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΠ·Π»Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² свою ΠΎΡ‡Ρ€Π΅Π΅Π΄ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² кластСр. ΠšΠ»ΠΈΠ΅Π½Ρ‚ взаимодСйствуСт с кластСром ΠΏΠΎ эффСктивному Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ, получая ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ (Ссли сдох ΠΎΠ΄ΠΈΠ½ silo - Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΉ grain ΠΎΠΆΠΈΠ²Ρ‘Ρ‚ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ), балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ ΡˆΡ‚ΡƒΠΊΠΈ. Π§Ρ‚ΠΎ Π΅Ρ‰Ρ‘ интСрСсно: Π² Orleans ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ compile-time гСнСрация прокси-DTO для сСриализации ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈ поддСрТиваСтся вСрсионированиС grain'ΠΎΠ² - Π² ΠΎΠ΄Π½ΠΎΠΌ silo ΠΌΠΎΠ³ΡƒΡ‚ ΠΆΠΈΡ‚ΡŒ grain'Ρ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… вСрсий API.

Из ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ - Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ срок ΠΆΠΈΠ·Π½ΠΈ grain'ΠΎΠ² ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π² нСсколько строк ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свой strategy placement, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ инфраструктурС ΠΊΠ°ΠΊ Π΄Π΅Π»ΠΈΡ‚ΡŒ grain's ΠΌΠ΅ΠΆΠ΄Ρƒ silo ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ критСриям (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ grain's ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² ΠΎΠ΄ΠΈΠ½ silo, grain's всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… - Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ). Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ для MS DI это всё Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Configure<T>.

Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ persistance для grain'ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ, Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свою Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ (Ρ‚Π°ΠΌ нСслоТно), Ρ‡Ρ‚ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ grain ΠΏΡ€ΠΈ рСстартС silo ΠΈ запросС Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΎΠΆΠΈΠ²Π°Π΅Ρ‚ с ΡƒΠΆΠ΅ Π½ΡƒΠΆΠ½Ρ‹ΠΌ состояниСм.

НапримСр, Π±ΠΎΡ‚Ρ‹ для Ρ‚Π΅Π»Π΅Π³ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… сСтСй ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Π»ΠΎΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² - state Π°ΠΊΡ‚ΠΎΡ€Π° Ρ…Ρ€Π°Π½ΠΈΡ†Π° Π² Π‘Π”, ΠΏΠΎ id ΡŽΠ·Π΅Ρ€Π° поднимаСтся Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚, измСняСтся ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π‘Π”, ΠΏΡ€ΠΈ отсутствии активности ΡŽΠ·Π΅Ρ€Π° grain диспозица (врСмя ΠΆΠΈΠ·Π½ΠΈ ΠΏΡ€ΠΎΡΡ‚Π°ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Π±Π΅Π· Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°ΠΊΡ‚ΠΎΡ€Π° задаётся) ΠΈ ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ - Ρ…ΠΎΡ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΡŽΠ·Π΅Ρ€ΠΎΠ² Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΆΠΈΠ²Ρ‘Ρ‚ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ silo.

Π—Π° ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΠ΅ Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π° Microsoft Π΄ΠΎΠ»ΠΎΠΆΠΈΠ» Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ ΠΏΠΎΠ»Ρ‚ΠΎΡ€Π° дСсятка ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², написал ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, Ρ‚Π°ΠΊΠΆΠ΅ Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ дСлись tutorials (ΠΈ нСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ 2017ΠΉ Π³ΠΎΠ΄ - ΠΎΠ½ΠΈ ΠΏΠΎ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹), ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‚ΠΈΠ» ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, причСсал ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π» Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘Π°ΠΌ Microsoft ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Orleans ΠΊΠ°ΠΊ Π±Π°ΠΊΠ΅Π½Π΄ для ΠΈΠ³Ρ€Ρ‹ Halo. И ΡƒΠΆΠ΅ Π°ΠΏΠ΄Π΅ΠΉΡ‚Π½ΡƒΠ» Π΅Π³ΠΎ Π΄ΠΎ .NET 7. Π’ΠΎΠ±Ρ‰Π΅ΠΌ выглядит всё это ΠΎΡ‡Π΅Π½ΡŒ красиво.

Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ - Π»ΡƒΡ‡ΡˆΠ΅ сначала ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒ (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ дСсяток Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² - ΠΎΠ½ΠΈ написаны понятным языком ΠΈ ΠΈΠ·ΠΎΠ±ΠΈΠ»ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ). #dotnet
πŸ”₯2
Π’ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΡ‹ - Π΅Ρ‰Ρ‘ Π΄Π²Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° для построСния систСм Π½Π° Π°ΠΊΡ‚ΠΎΡ€Π°Ρ…, ΠΏΡ€ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сильно ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅Ρ‡Π΅Π³ΠΎ Ρ‚.ΠΊ. Π½Π΅ использовал Π½ΠΈ Π² ΠΆΠΈΠ²Ρ‹Ρ… Π½ΠΈ Π² тСстовых ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Π½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° ΠΌΠΎΠΉ взгляд достаточно интСрСсны для изучСния.

Akka.NET - заявляСтся, Ρ‡Ρ‚ΠΎ ΠΏΠΎ capability это ΠΏΠΎΡ€Ρ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Akka с Java/Scala ΠΈ ΠΎΠ½ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ 50 million msg/sec on a single machine. Small memory footprint; ~2.5 million actors per GB of heap, Ρ‡Ρ‚ΠΎ прямо Ρ‚Π°ΠΊΠΈ интСрСсно. НСсколько статСй-tutorial'ΠΎΠ² (ΠΏΠΎΠΌΠΈΠΌΠΎ ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΉ Π΄ΠΎΠΊΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ):
НСплохоС пошаговоС руководство + исходники.
Actor-Model System with Akka.
Working with Akka.NET and Akka.Cluster
First steps, Calling actors from another actor ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ A.BrandΓ£o Lustosa

Proto.Actor - Π±ΠΎΠ»Π΅Π΅ простой Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π½Π° ΠΌΠΎΠΉ взгляд (ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Orleans ΠΈΠ»ΠΈ Akka), Π½ΠΎ позволяСт Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ… Π»ΠΈΠ±ΠΎ Ρ‚Π΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° основной страницС Ρ…Π²Π°Ρ‚ΠΈΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ‚Π°ΠΌ ΡˆΡ‚ΡƒΠΊ 30, Π½Π° любой вкус. Π’ΠΎΠΆΠ΅ ΡƒΠΌΠ΅Π΅Ρ‚ persistence состояний Π² Ρ€Π°Π·Π½Ρ‹Π΅ мСста ΠΈ ΠΊΠ»Π°ΡΡ‚Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΡƒΠ±Π΅Ρ€Π° ΠΈΠ»ΠΈ Consul.
#dotnet
πŸ‘2
nestjs - нСслоТный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для nodejs для Π²Π΅Π±ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ОсобСнно Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚ asp.net ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ nodejs - Π² Π½Ρ‘ΠΌ структура ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ asp.net (ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹, сСрвисы, DI, ΠΌΠΈΠ΄Π΄Π»Π²Π°Ρ€ΠΈ).

Π—Π°ΠΎΠ΄Π½ΠΎ Π² Π½Π΅Π³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ websockets, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ mongo ΠΈ Π½Π΅ΠΌΠ½ΠΎΠΆΠ΅Ρ‡ΠΊΠΎ graphql. ДокумСнтация ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ мСстами Π½Π΅ совсСм Ρ€Π°Π·ΡŠΡΡΠ½ΡΠ΅Ρ‚ ΠΊΠ°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² websocket ΠΏΡ€ΠΎΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΠ½Ρ„Ρƒ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΡŽΠ·Π΅Ρ€Π΅ - приходится ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

Π•ΡΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΈ сильно ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΡˆΡ‚ΡƒΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Π² nestjs ΠΏΠΎ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Ρƒ singleton, Π° request/response Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ action'ΠΎΠ²). Но это Π½Π΅ ΠΏΠΎΡ€Ρ‚ΠΈΡ‚ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ, просто ΠΊΠ°ΠΊ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° (Π½Ρƒ ΠΈ частично nodejs :) И ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎ, Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ контСкст Π‘Π” выглядит ΠΊΠ°ΠΊ singleton (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ scoped Π² .net), ΠΎΠ΄Π½Π°ΠΊΠΎ вспомнив Ρ‡Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ nodejs это event loop - всё встаёт Π½Π° свои мСста. Π”Π°ΠΆΠ΅ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π»Π΅Π³Ρ‡Π΅ Π½Π΅ Π·Π°ΠΌΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ†Π° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ :)))

Π’ΠΎΠΎΠ±Ρ‰Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ для Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΏΠ΅Ρ‚-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ MVP Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚. #js #dotnet
Π’Π΅ΡΡŒΠΌΠ° извСстный ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΉ инструмСнт Kepler.gl для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³Π΅ΠΎΠ΄Π°Π½Π½Ρ‹Ρ… #ui #data
Manage your terraform like a container (en) - достаточно простая ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎ #terraform ΠΈ #aws с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ
Как ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»ΠΈΡ‚ΡŒ софт Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡˆΡ‚Π°Ρ‚Π½Ρ‹Ρ… инструмСнтов. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊΠ΅ упомянуто .net 6 - ΠΎΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ net 5 Ρ‚ΠΎΠΆΠ΅ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π”Π°ΠΌΠΏΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Π΅ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° - ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Visual Studio, Π½ΠΎ ΠΈ Π² Rider Ρ‚ΠΎΠΆΠ΅. Π§Ρ‚ΠΎ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΠΎ, инструмСнты ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»ΠΈΠ½Π³Π° Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΏΠΎΠΊΠ° ΠΈΡ… Π½Π΅ Π΄Ρ‘Ρ€Π½Π΅ΡˆΡŒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π½Π° DEV срСду ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ прямо с Π½ΠΈΠΌΠΈ.

Π’ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»ΠΈΠ½Π³Π° - Ρ‡Π°ΡΡ‚ΡŒ 0, Ρ‡Π°ΡΡ‚ΡŒ 1 ΠΈ Ρ‡Π°ΡΡ‚ΡŒ 2 ΡΡ‚Π°Ρ‚ΡŒΠΈ этого ΠΆΠ΅ Π°Π²Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΎ OpenTelemetry ΠΈ Metrics API.
#dotnet #docker #perf
πŸ‘1
ВСстированиС WebAPI endpoints с ΠΏΠΎΠΌΠΎΡ‰ΡŒ консольного HttpRepl #dotnet
https://learn.microsoft.com/en-us/aspnet/core/web-api/http-repl/?view=aspnetcore-7.0&tabs=windows
ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΡ‘ΠΌΠΎΠ² для быстрого вычислСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€)
http://graphics.stanford.edu/~seander/bithacks.html
MeGit - Π»Ρ‘Π³ΠΊΠΈΠΉ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ опСнсурсный ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для git. Как ΠΈ любой инструмСнт - Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ изучСния (я Π½Π΅ сразу Π½Π°ΡˆΡ‘Π» Π³Π΄Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ pull для branch :) #tools
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° распознаватСля QR-ΠΊΠΎΠ΄ΠΎΠ² Π½Π° JS - ΡƒΠΌΠ΅Π΅Ρ‚ ~15 Ρ‚ΠΈΠΏΠΎΠ² QR-ΠΊΠΎΠ΄ΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ‚.Ρ‡. ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… #js

upd: для #blazor https://github.com/densen2014/ZXingBlazor
ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Ρ€Π°Π·Π½Ρ‹Ρ… извСстных сСрвисов. ПолСзно для понимания ΠΈ систСматизации Π·Π½Π°Π½ΠΈΠΉ - ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ это всё ΠΈ выглядит с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния. Π—Π°ΠΎΠ΄Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ Π½Π° собСсС смоТСтС ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎ :)) (Π½Π° английском) #education

Youtube Design
WhatsApp
Parking Lot
Twitter
50-100 вопросов для собСсов ΠΏΠΎ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. НСкоторыС ΡΡ‚Π°Ρ‚ΡŒΠΈ Π΄Π°Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ 201Ρ… Π³ΠΎΠ΄ΠΎΠΌ, Π½ΠΎ ΠΏΠΎ ΠΏΡ€ΠΎΠ»ΠΈΡΡ‚Ρ‹Π²Π°Π½ΠΈΡŽ - вопросы Ρ‚Π°ΠΌ ΠΏΠΎ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ (Π½Π° английском) #education

Database
SQL Queries
Microsoft SQL Server
MySQL
Postgres
Oracle
πŸ‘1
QuestPDF - ΠΏΠ°ΠΊΠ΅Ρ‚ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ PDF-Ρ„Π°ΠΉΠ»ΠΎΠ² #dotnet
πŸ”₯1