ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ ΡΡΠΈΠ²ΠΎ ΠΏΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ .NET 7 - ΡΡΠ΄Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±ΡΡΡ Π½Π° Π΄Π΅ΡΡΡΠΊΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠΎΠ², ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ²ΡΠΈΡΡ Π΄ΠΎ .NET 7 #dotnet #start
https://devblogs.microsoft.com/dotnet/performance_improvements_in_net_7/
https://devblogs.microsoft.com/dotnet/performance_improvements_in_net_7/
Microsoft News
Performance Improvements in .NET 7
.NET 7 is fast. Really fast. This post deep-dives into hundreds of performance improvements that contributed to that reality.
ΠΡΠ³ΠΊΠ°Ρ, ΠΏΠΎΠ½ΡΡΠ½Π°Ρ ΠΈ ΡΠ΄ΠΎΠ±Π½Π°Ρ ΡΡΡΠΊΠ° Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π«Π΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ #ui #tools
https://swimlanes.io/
https://swimlanes.io/
π1
MagicOnion - RPC Framework based on gRPC, ΠΏΠΎ Π·Π°Π²Π΅ΡΠ΅Π½ΠΈΡΠΌ Π°Π²ΡΠΎΡΠ° - Π±ΡΡΡΡΡΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ. Π£ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π°Π²ΡΠΎΡΠ° Π΅ΡΡΡ MessagePipe (pipeline ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ) ΠΈ MemoryPack (Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π² 10 ΡΠ°Π· Π±ΡΡΡΡΠ΅Π΅ MessagePack). #dotnet
π₯1
ΠΡΠ»ΠΈΡΠ½Π°Ρ ΡΡΡΠΊΠ° Π΄Π»Ρ ΡΠ΅Π²Π΅ΡΡ-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², Π΄Π°Π½Π½ΡΡ
ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΠΈΠΌΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΡΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈ ΡΠΊΡΠΏΠΎΡΡ) #tools
https://github.com/WerWolv/ImHex
https://github.com/WerWolv/ImHex
ΠΠ»ΠΈΠ½Π½ΠΎΡΡΠΈΠ²ΠΎ ΠΏΠΎ ΡΡΡΡΠΊΡΡΡΠ°ΠΌ .net, garbage collector ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΠΈΡΠΊΠ°ΠΌ ΠΎΡ Maoni Stephens (Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΡ GC Π² .NET) #dotnet
https://github.com/Maoni0/mem-doc
https://github.com/Maoni0/mem-doc
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΊΠΎΠΌΠΌΠΈΠ²ΠΎΡΠΆΠ΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΌΠΎΠΎΡΠ³Π°Π½ΠΈΠ·ΡΡΡΠΈΡ
ΡΡ ΠΊΠ°ΡΡ Π½Π° #python
https://github.com/diego-vicente/som-tsp
https://github.com/diego-vicente/som-tsp
Π£Π΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ - Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΏΡΠ°Π²ΠΈΠ» ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ, Π° Π²ΡΠ²ΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. Π‘ ΠΏΠΎΠ»Π½ΡΠΌ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠ°Π½Π΄ΠΎΠΌΠ½ΡΡ
ΠΏΡΠ°Π²Π΄ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
Π·Π΄Π°Π½ΠΈΠΉ #dotnet
https://github.com/mxgmn/MarkovJunior
https://github.com/mxgmn/MarkovJunior
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π² enum Π΄ΠΎΡΠ½Π΅ΡΠ°. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ #sourcegenerator Π΄Π»Ρ compile-time Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΎΠ². #dotnet
https://github.com/MMaximus111/StaticDictionaries
https://github.com/MMaximus111/StaticDictionaries
π2
Design Patterns Library - Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ Π½Π° C# ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ #dotnet
upd: Π²Π·Π³Π»ΡΠ΄ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ
upd: Π²Π·Π³Π»ΡΠ΄ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ
MassTransit - ΠΎΡΠ»ΠΈΡΠ½Π°Ρ ΡΠΈΠ½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΌΠ΅Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ InMemory (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ°), ΡΠ°ΠΊ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ RabbitMQ/Azure/SQS Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ. ΠΠΎΠΎΠ±ΡΠ΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΠ°Π½Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° - ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΠ»ΠΈΡΡ CQRS ΡΡΠ°Π·Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ MassTransit - ΠΏΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΡΠ΅ ΡΠ°ΡΠΏΠΈΠ»ΠΈΡΡ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½ΡΠ΅ Π±ΡΠΎΠΊΠ΅ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
Π£ΠΌΠ΅Π΅Ρ Π²ΡΡ, ΡΡΠΎ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ - Π°Π΄ΡΠ΅ΡΠ½ΡΡ ΠΈ broadcast ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Ρ ΠΎΡΠΎΡΠ΅Π΅ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π² MS DI, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°Π²Π΅ΡΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΏΡΠΎΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ) ΠΈ Ρ.Π΄. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌ correlation id, Π΅ΡΠ»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π£ΠΆΠ΅ Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ mediator, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΆΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΊΠ°ΠΊ Ρ MS DI ΡΠ°ΠΊ ΠΈ Ρ MassTransit. ΠΡΡΡ ΠΏΠ°ΠΊΠ΅Ρ Automatonymous, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ state-ΠΌΠ°ΡΠΈΠ½Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² Ρ.Ρ. ΠΏΠ°ΡΡΠ΅ΡΠ½Π° Saga.
ΠΠΎΠΎΠ±ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ ΠΆΠΈΠ²ΡΡ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ, Π²ΡΠ΅ Π΄Π΅ΡΡΠΊΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΊΠΈ ΡΠΆΠ΅ Π²ΡΠ»Π΅ΡΠ΅Π½Ρ. ΠΠ°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ :) #dotnet
upd: Π²Π΄ΠΎΠ³ΠΎΠ½ΠΊΡ - ΡΠ²ΠΈΡΡΠ΅Ρ-ΡΡΠ΅Π΄ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ RabbitMQ
Π£ΠΌΠ΅Π΅Ρ Π²ΡΡ, ΡΡΠΎ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ - Π°Π΄ΡΠ΅ΡΠ½ΡΡ ΠΈ broadcast ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Ρ ΠΎΡΠΎΡΠ΅Π΅ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π² MS DI, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°Π²Π΅ΡΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΏΡΠΎΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ) ΠΈ Ρ.Π΄. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌ correlation id, Π΅ΡΠ»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π£ΠΆΠ΅ Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ mediator, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΆΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΊΠ°ΠΊ Ρ MS DI ΡΠ°ΠΊ ΠΈ Ρ MassTransit. ΠΡΡΡ ΠΏΠ°ΠΊΠ΅Ρ Automatonymous, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ state-ΠΌΠ°ΡΠΈΠ½Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² Ρ.Ρ. ΠΏΠ°ΡΡΠ΅ΡΠ½Π° Saga.
ΠΠΎΠΎΠ±ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ ΠΆΠΈΠ²ΡΡ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ, Π²ΡΠ΅ Π΄Π΅ΡΡΠΊΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΊΠΈ ΡΠΆΠ΅ Π²ΡΠ»Π΅ΡΠ΅Π½Ρ. ΠΠ°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ :) #dotnet
upd: Π²Π΄ΠΎΠ³ΠΎΠ½ΠΊΡ - ΡΠ²ΠΈΡΡΠ΅Ρ-ΡΡΠ΅Π΄ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ RabbitMQ