Переходим от группирования по типу к группированию по функционалу
Домен лежит в основе чистой архитектуры. В нем мы определяем сущности и бизнес-логику.
Если в вашем проекте структура с названиями вроде:
🔻Entities
🔻Enumerations
🔻Exceptions
🔻Repositories
🔻ValueObjects
Она ничего не говорит вам о Домене.
А что, если реорганизовать структуру, сгруппировав по функционалу? В таком случае в вашей структуре начнут появляться концепции предметной области.
#dotnet #csharp #tip by Milan Jovanović
Домен лежит в основе чистой архитектуры. В нем мы определяем сущности и бизнес-логику.
Если в вашем проекте структура с названиями вроде:
🔻Entities
🔻Enumerations
🔻Exceptions
🔻Repositories
🔻ValueObjects
Она ничего не говорит вам о Домене.
А что, если реорганизовать структуру, сгруппировав по функционалу? В таком случае в вашей структуре начнут появляться концепции предметной области.
#dotnet #csharp #tip by Milan Jovanović
🔥Назад к основам .NET: как легко создать паттерн «Стратегия» с помощью внедрения зависимостей
Паттерн «Стратегия» — поведенческий паттерн проектирования, который определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы. Ключевые компоненты, участвующие в реализации паттерна:
🔻Strategy — интерфейс, определяющий методы, которые должны реализовать все Concrete Strategies.
🔻Concrete Strategies — реализации интерфейса стратегии. Каждая Concrete Strategies обеспечивает конкретную реализацию алгоритма.
🔻Context — класс, который содержит ссылку на Concrete Strategies и выполняет ту или иную стратегию на основе входных данных приложения.
Некоторые разработчики могут не знать, что система внедрения зависимостей .NET делает за них большую часть тяжелой работы при реализации этого паттерна. Именно об этом и пойдет речь в руководстве👇
🔗 Читать
Паттерн «Стратегия» — поведенческий паттерн проектирования, который определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы. Ключевые компоненты, участвующие в реализации паттерна:
🔻Strategy — интерфейс, определяющий методы, которые должны реализовать все Concrete Strategies.
🔻Concrete Strategies — реализации интерфейса стратегии. Каждая Concrete Strategies обеспечивает конкретную реализацию алгоритма.
🔻Context — класс, который содержит ссылку на Concrete Strategies и выполняет ту или иную стратегию на основе входных данных приложения.
Некоторые разработчики могут не знать, что система внедрения зависимостей .NET делает за них большую часть тяжелой работы при реализации этого паттерна. Именно об этом и пойдет речь в руководстве👇
🔗 Читать
Что вас бесит в .NET? Опрос по мотивам обсуждения на Reddit, а также на основе некоторых наблюдений👇👇👇
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community
В .NET меня больше всего бесит (можно выбрать несколько вариантов):
Anonymous Poll
8%
Что .NET=C#
38%
Зоопарк UI фреймворков, и ни одного качественного и кроссплатформенного от Microsoft
23%
XAML: слишком многословный и неудобный, плохо проверяется в IDE
47%
Зоопарк в названиях: .NET, dotnet, .NET Core, .NET Framework, .NET Standard, ASP.NET (Core)
20%
Переусложнённые проекты: MediatR, лишние абстракции и т. д.
10%
Мало проектов с открытым исходным кодом
38%
Стереотип о том, что .NET — только для Windows
3%
Дизайн C#
6%
Инструменты: NuGet, Visual Studio, …
5%
Свой вариант (напишу в комментариях)
Ловите записи докладов и презентации с 89-й встречи SpbDotNet:
🔹Никита Мошкалов (АО «Айко»): «Прослеживаемость в ASP.NET Core».
Как поймать за хвост своё приложение? Никита делится опытом определения маршрута запросов, исследования производительности и многого другого.
🔹Никита Маслов (ПСБ): «Простая архитектура».
Автор делится своим опытом разработки enterprise-приложений, а также рассказывает и показывает, как можно верхнеуровнево организовать архитектуру, использовать давно известные паттерны и обрабатывать ошибки.
#чтопроисходит
🔹Никита Мошкалов (АО «Айко»): «Прослеживаемость в ASP.NET Core».
Как поймать за хвост своё приложение? Никита делится опытом определения маршрута запросов, исследования производительности и многого другого.
🔹Никита Маслов (ПСБ): «Простая архитектура».
Автор делится своим опытом разработки enterprise-приложений, а также рассказывает и показывает, как можно верхнеуровнево организовать архитектуру, использовать давно известные паттерны и обрабатывать ошибки.
#чтопроисходит
💡Вы могли не знать об этой фиче, но в Visual Studio можно вставить JSON как классы одним нажатием мыши.
✅ Данная фича доступна из меню Edit.
#tools #tip by Dave Callan
#tools #tip by Dave Callan
Please open Telegram to view this post
VIEW IN TELEGRAM
👀 Повышаем качество код-ревью: 7 полезных советов
В данной статье мы рассмотрим 7 практических советов, следуя которым можно значительно повысить качество проверки кода.
🔗Читать статью
🔗Зеркало
В данной статье мы рассмотрим 7 практических советов, следуя которым можно значительно повысить качество проверки кода.
🔗Читать статью
🔗Зеркало
стачка_полиморфные-контракты.pdf
5.5 MB
Внедрение полиморфных контрактов в сервисы на .NET 7
📑Презентация к докладу ведущего C#-разработчика Степана Минина на конференции «Стачка 2023».
⚒️Вы узнаете, что находится под капотом у самых используемых сериализаторов на C#, а также новый подход к проектированию контрактов межсервисного взаимодействия на основе полиморфизма.
⚠️ Если появятся видео/презентации других докладчиков, обязательно опубликуем.
📑Презентация к докладу ведущего C#-разработчика Степана Минина на конференции «Стачка 2023».
⚒️Вы узнаете, что находится под капотом у самых используемых сериализаторов на C#, а также новый подход к проектированию контрактов межсервисного взаимодействия на основе полиморфизма.
⚠️ Если появятся видео/презентации других докладчиков, обязательно опубликуем.
Уже больше десяти лет компания Microsoft активно и позитивно «смотрит» в сторону открытого исходного кода, хоть и продолжает зарабатывать на проприетарной ОС.
Согласитесь, Microsoft не так быстро пришла от «Linux — это раковая опухоль» до «Microsoft любит Linux».
📌Это мы все к чему?
💬 Как вы думаете, не случись этого в прошлом десятилетии, была бы Microsoft столь успешной сейчас?
#холивар
Согласитесь, Microsoft не так быстро пришла от «Linux — это раковая опухоль» до «Microsoft любит Linux».
📌Это мы все к чему?
#холивар
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
💬Как вам Windows Terminal? Используете его в работе?
Please open Telegram to view this post
VIEW IN TELEGRAM
Конференция наполнена интересными и пpaктикo-opиeнтиpoвaнными темами: от архитектуры и инструментов .NET до F#, EF Core и WASM.
🌐 9:20 — Recreating Wolfenstein 3D in F# by James Randall
🌐 1:05:33 — How to Effectively Spy on Your Systems by Laila Bougria
🌐 2:17:00 — Automating Observability With Roslyn Source Generators by Denis Ekart
🌐 3:30:49 — Beyond Relational With Entity Framework by Giorgi Dalakishvili
🌐 4:33:50 — Understanding Microservices: A Guide For the Monolithic Developer by Layla Porter
🌐 5:47:52 — Unleashing the Power of Cross-Platform Development With Avalonia UI and JetBrains Rider by Mike James
🌐 6:45:09 — Hidden Difficulties of Debugger Implementation for .NET WASM Apps by Andrii Rublov
🌐 7:43:46 — High Performance JSON Serialization With Code Generation on C# 11 and .NET 7.0 by Ian Griffiths
🌐 9:14:32 — The Fastest .NET Dictionary… With F# by Matthew Crews
🌐 10:26:17 — xUnit Expanded – Better Testing With xUnit by Daniel Ward
#чтопроисходит
#чтопроисходит
Please open Telegram to view this post
VIEW IN TELEGRAM
James Newton-King, Principal Software Engineer .NET, погружается в наиболее известные улучшения отладки в популярных библиотеках и API .NET:
🌏 HttpContext и друзья
⚡️ WebApplication
🎨 MVC and Razor Pages
🚀 gRPC
⚙️ Configuration
🏷️ Logging
⚒️ Endpoint metadata
🌏 HttpContext и друзья
⚡️ WebApplication
🎨 MVC and Razor Pages
🚀 gRPC
⚙️ Configuration
🏷️ Logging
⚒️ Endpoint metadata
↕️Вместо простого копирования и вставки мы также можем перемещать блоки кода: выбираем блок кода и используем ALT + вверх/вниз.
#tools #tip by Dave Callan
Please open Telegram to view this post
VIEW IN TELEGRAM