🤔 ФП vs. ООП
Дядя Боб считает (перевод), что споры сторонников функционального и объектно-ориентированного подхода не имеют смысла, так как эти парадигмы отлично уживаются вместе.
Более того, система, которая построена на комбинации принципов ООП и ФП максимизирует гибкость, поддерживаемость, тестируемость и простоту. Если убрать одно ради добавления другого, это только ухудшит структуру системы.
💬 А вы что думаете? Похоливарим?
#холивар
Дядя Боб считает (перевод), что споры сторонников функционального и объектно-ориентированного подхода не имеют смысла, так как эти парадигмы отлично уживаются вместе.
Более того, система, которая построена на комбинации принципов ООП и ФП максимизирует гибкость, поддерживаемость, тестируемость и простоту. Если убрать одно ради добавления другого, это только ухудшит структуру системы.
💬 А вы что думаете? Похоливарим?
#холивар
👍19❤🔥3
Решив, что взаимодействие с Foundation крайне ограничено, и каких-либо существенных преимуществ от участия в проекте Avalonia UI не получил, команда посчитала правильным вернуть его в руки тех, кто искренне увлечен и заинтересован в его будущем.
👉 Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Farewell to the .NET Foundation · AvaloniaUI/Avalonia · Discussion #14666
In April 2020, Avalonia proudly joined the .NET Foundation, marking a significant milestone in our journey. Our joining the Foundation was a moment of great optimism, as we hoped to contribute to a...
🤔27👍13❤2
Если у вас есть критически важный участок кода, использующий LINQ, рассмотрите возможность добавления специальных перегрузок для улучшения производительности.
Читаемость немного ухудшится, но код все еще будет высокоуровневым.
#dotnet #csharp #benchmarks #tip by Сергей Тепляков
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍6🎉1
.NET Aspire предоставляет набор инструментов и шаблонов для создания распределенных облачных приложений. Простой пример определения веб-приложения, зависящего от инстанса кэша Redis с помощью .NET Aspire:
// Create a distributed application builder given the command line arguments.
var builder = DistributedApplication.CreateBuilder(args);
// Add a Redis server to the application.
var cache = builder.AddRedis("cache");
// Add the frontend project to the application and configure it to use the
// Redis server, defined as a referenced dependency.
builder.AddProject<Projects.MyFrontend>("frontend")
.WithReference(cache);
Плагин Rider для .NET Aspire позволяет использовать функции .NET Aspire непосредственно в IDE. Под катом — внутренние механизмы плагина и детали его взаимодействие с .NET Aspire.
👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23❤6👍2⚡1
💬 Расскажите, какой паттерн проектирования вы нашли наиболее полезным в вашем последнем проекте? Почему выбрали именно его? Были ли какие-то специфические проблемы, которые решил этот паттерн?
#интерактив
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😁3
🛠 Серия статей о профилировщике .NET под капотом от Datadog
🔸 Первая часть посвящена архитектуре и внедрению профилировщика. Вы узнаете про основные аспекты профилирования, включая CPU, wall time, exceptions, lock contention и allocations.
🔸 Во второй части рассматривается реализация профилирования CPU и wall time. Описывается, как профилировщик мониторит и семплирует потоки приложения, а также подробно объясняется реализация сбора стеков вызовов в Linux и Windows. Статья также включает пример внутреннего использования CPU профилировщика для снижения потребления CPU.
🔸 Первая часть посвящена архитектуре и внедрению профилировщика. Вы узнаете про основные аспекты профилирования, включая CPU, wall time, exceptions, lock contention и allocations.
🔸 Во второй части рассматривается реализация профилирования CPU и wall time. Описывается, как профилировщик мониторит и семплирует потоки приложения, а также подробно объясняется реализация сбора стеков вызовов в Linux и Windows. Статья также включает пример внутреннего использования CPU профилировщика для снижения потребления CPU.
👍7
🤩 С большим опозданием публикуем полную коллекцию докладов с конференции DotNext 2022 Autumn
🌐 Сергей Васильев — Анализ C# кода на Roslyn: от теории к практике
🌐 Денис Цветцих — Rich Model и Anemic Model: враги или друзья
🌐 Проблемы обучения от 0+
🌐 Дмитрий Таболич — Думай как архитектор: майндшифт инженера
🌐 Дмитрий Нестерук — Интересные подходы в реализации паттернов проектирования
🌐 Андрей Парамонов, Антон Оникийчук — MediatR не нужен
🌐 Интервью с Романом Неволиным
🌐 Марк Шевченко — Пишем функционально на C# и F#
🌐 Дмитрий Сошников — Как научить вашего ребенка программировать (и не только)
🌐 Анатолий Жмур — Пиши, как тиктокер, а не как дед. Новые конструкции языка C# в бою
🌐 Олег Сафонов — Пишем код, когда пишем код: source generator'ы
🌐 Андрей Цветцих — Zero-downtime deployment и базы данных
🌐 Интервью с Вадимом Мартыновым
🌐 Роман Просин — SkillsFlow: разработка системы управления навыками и компетенциями
🌐 Объединяем .NET-разработчиков: как запустить и развить гильдии в компании
🌐 Гурий Самарин — Тестируем код, взаимодействующий с базой данных
🌐 Интервью с Дмитрием Таболичем
🌐 Best practices для разработки Application Layer
🌐 Роман Неволин — Пишем приложения, которые не ломаются в продакшене
🌐 Андрей Акиньшин — Поговорим об описательной статистике перформанс-распределений
🌐 Игорь Лабутин — Что нового в .NET 7 и C# 11
🌐 Евгений Пешков — Алгоритмы троттлинга запросов
🌐 Вадим Мартынов — Как работает конвейер в современных процессорах
🌐 Станислав Сидристый — lock(_sync): иллюзия идеального выбора
🌐 Ольга Щербакова — Open source с точки зрения юриста
🌐 Игорь Шаталкин — Загадочный EF Core, или Как написать свое расширение
🌐 Андрей Ганичев — Архитектурные тесты
🌐 Александр Катин — [Test] + T = ❤️
🌐 Вагиф Абилов — Распределенный трейсинг OpenTelemetry вместо логирования всего подряд
🌐 Александр Кузнецов — Введение в Microsoft SignalR
Please open Telegram to view this post
VIEW IN TELEGRAM
👏22❤7👍7😁4❤🔥3
🕘 Таймкоды:
00:00:00 — Вступление
00:05:30 — Что такое тесты?
00:13:20 — Как зародились модульные тесты?
00:29:00 — FIRST принцип
00:38:00 — Развитие «после модульных тестов»
00:44:00 — Что такое «модуль»?
00:53:20 — Тестирование приватных методов
01:05:40 — Как тестировать конвертеры System.Test.Json?
01:10:10 — Mock vs Stub
01:24:00 — Random в тестах: зло или «почему нет»?
⏯️ YouTube | Apple Подкасты | Google Подкасты | Яндекс Музыка
#подкасты
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9👍7❤5
🆚 Task.Run vs. TaskCompletionSource + ThreadPool.QueueUserWorkItem
Сергей Тепляков раскопал шаблон (эпохи .NET 4.0) для запуска кода в пуле потоков
#dotnet #csharp #benchmarks
Сергей Тепляков раскопал шаблон (эпохи .NET 4.0) для запуска кода в пуле потоков
#dotnet #csharp #benchmarks
👍20😁4
🔸 Использование EF Core и Bogus
🔸 Обработка concurrency violations в EF Core
🔸 Отладка в EF Core. Часть 1
🔸 Использование Enum с EF Core
🔸 SQL-Server: computed columns с EF Core
🔸 Преобразования строк в EF Core
🔸 Вставка/чтение изображений в SQL-Server с помощью EF Core, Dapper и SqlClient
🔸 EF Core 7: столбцы JSON
🔸 Как упорядочить данные с EF Core по имени строкового столбца
🔸 EF Core Global Query Filters
🔸 От MS-Access к EF Core (C#)
🔸 Примеры EF Core 8
🔸 Преимущества логирования EF Core в файл
Please open Telegram to view this post
VIEW IN TELEGRAM
DEV Community
Using EF Core and Bogus
In this article with basic to intermediate code sample, learn how to generate data which can be used...
❤10👍7🎉3
Использование именованных пайпов с ASP.NET Core и HttpClient: гайд от Эндрю Лока
В рамках .NET 8 в ASP.NET Core была добавлена прямая поддержка именованных пайпов в Kestrel, что позволяет использовать все те же функции и модель программирования ASP.NET Core, что и с TCP.
📌 Настройка приложения для прослушивания именованных пайпов: настраиваем Kestrel с использованием
📌 HttpClient для отправки запросов: для этого необходимо настроить HttpClient с пользовательским
👉 Подробнее читайте в гайде
В рамках .NET 8 в ASP.NET Core была добавлена прямая поддержка именованных пайпов в Kestrel, что позволяет использовать все те же функции и модель программирования ASP.NET Core, что и с TCP.
📌 Настройка приложения для прослушивания именованных пайпов: настраиваем Kestrel с использованием
ListenNamedPipe()
или устананавливаем URL-адреса приложения на https://pipe:/<pipename>
.📌 HttpClient для отправки запросов: для этого необходимо настроить HttpClient с пользовательским
ConnectCallback()
, который создаст экземпляр NamedPipeClientStream
и подключится к серверу.👉 Подробнее читайте в гайде
🔥4👍1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🐱🎨🙏🤖 10 самых странных языков программирования, о которых вы никогда не слышали
Эзотерические языки разрабатывают в концептуальных, экспериментальных и развлекательных целях. Их общая черта — максимально запутанный и странный синтаксис, понятный только посвященным. В этой подборке — языки, которые выбрали бы Ходор, доктор Лектер, Малевич, Джеймс Бонд, Терминатор и Луи Армстронг, если бы решили войти в айти.
👉 Читать статью
👉 Зеркало
Эзотерические языки разрабатывают в концептуальных, экспериментальных и развлекательных целях. Их общая черта — максимально запутанный и странный синтаксис, понятный только посвященным. В этой подборке — языки, которые выбрали бы Ходор, доктор Лектер, Малевич, Джеймс Бонд, Терминатор и Луи Армстронг, если бы решили войти в айти.
👉 Читать статью
👉 Зеркало
🥱6❤2😁2👾1