C# (C Sharp) programming
18.7K subscribers
756 photos
38 videos
8 files
673 links
По всем вопросам- @haarrp

C# - обучающий канал Senior C# разработчика.

@ai_machinelearning_big_data - Machine learning

@itchannels_telegram - 🔥лучшие ит-каналы

@csharp_ci - C# академия

@pythonlbooks- книги📚

Реестр РКН: https://clck.ru/3Fk3kb
Download Telegram
🖥 Рефа́кторинг (англ. refactoring), или перепроекти́рование кода, перерабо́тка кода, равноси́льное преобразова́ние алгоритмов — процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её .

В основе рефакторинга лежит последовательность небольших эквивалентных (то есть сохраняющих поведение) преобразований. Поскольку каждое преобразование маленькое, программисту легче проследить за его правильностью, и в то же время вся последовательность может привести к существенной перестройке программы и улучшению её согласованности и чёткости.

Одно изменение (рефакторинг) мало что дает. Но последовательное применение различных техник рефакторинга приводит к значительным изменениям в коде.

Нет лучшего способа научиться рефакторингу, чем практика.

Представляем вам упражнения по рефакторингу и 5 потрясающих техник рефакторинга кода с примерами.

📌 Читать

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет на экран этот код?
Anonymous Quiz
32%
0 0
31%
0 1
15%
1 0
22%
1 1
🖥 Хотите улучшить свои навыки работы с .NET и архитектурой программного обеспечения?

Вот 10 лучших статей еженедельника The .NET за этот год.

1. Архитектура вертикального среза - https://www.milanjovanovic.tech/blog/vertical-slice-architecture.

2. Использование нескольких EF Core DbContexts в одном приложении - https://www.milanjovanovic.tech/blog/using-multiple-ef-core-dbcontext-in-single-application

3. Правильный способ использования HttpClient в .NET - https://www.milanjovanovic.tech/blog/the-right-way-to-use-httpclient-in-dotnet

4. Как подойти к созданию чистой структуры папок в архитектуре - https://www.milanjovanovic.tech/blog/clean-architecture-folder-structure

5. От монолита к микросервисам -https://www.milanjovanovic.tech/blog/monolith-to-microservices-how-a-modular-monolith-helps

6. Реализация API-шлюза для микросервисов с помощью YARP - https://www.milanjovanovic.tech/blog/implementing-an-api-gateway-for-microservices-with-yarp

7. Health Checks In ASP .NET Core For Monitoring Your Applications - https://www.milanjovanovic.tech/blog/health-checks-in-asp-net-core

8. Запуск фоновых задач в ASP .NET Core - https://www.milanjovanovic.tech/blog/running-background-tasks-in-asp-net-core

9. Функциональная обработка ошибок в .NET с помощью шаблона результатов - https://www.milanjovanovic.tech/blog/functional-error-handling-in-dotnet-with-the-result-pattern

10. Паттерн CQRS с помощью MediatR - https://www.milanjovanovic.tech/blog/cqrs-pattern-with-mediatr

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Serilog - баблиотека для реализации структурированного логирования в приложениях для .NET..

Вот примеры лучших практик при разработке приложений :

- Логирования запросов в Serilog
- Использование системы конфигов
- Добавление CorrelationId в логи
- Регистрация всех важных событий
- Использование Seq при разработки

🖥 Github

Если вы хотите узнать, как получить максимальную отдачу от Serilog, ознакомьтесь с этой статьей.

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ В модульном монолите можно построить взаимодействие модулей двумя способами:

1) Вызовы методов (синхронные)
2) Обмен сообщениями (асинхронный)

Но какой из них выбрать?

📌 Читать статью

@csharp_ci
🖥 Документация по .NET Aspire: Что нового.

В этой статье перечислены некоторые из основных актуальных изменений в документации.

📌 Читать

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Как быстрее всего реализовать паттерн Декоратор?

Декоратор (англ. Decorator) — структурный шаблон проектирования, предназначенный для динамического подключения дополнительного поведения к объекту.

Паттерн декоратор предоставляет гибкую альтернативу практике создания подклассов с целью расширения функциональности.

Для его реализации вы можете использовать инъекции зависимостей ASP .NET Core.

📌 Вот полная реализация

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Не стоит начинать новый проект с микросервисов, даже если вы уверены, что ваше приложение будет достаточно большим, чтобы это было целесообразно.

Основная причина этого - сложность систем на основе микросервисов.

За микросервисы приходится платить:

- Сложность координации работы команды
- Потосянная борьба с отказами
- Автоматизация развертывания
- Управление множеством сервисов


Но я хочу обратить ваше внимание на кое-что еще.

Есть способ объединить:

- физическую архитектуру монолитов
- логическую архитектуру микросервисов.

И получить преимущества обоих.

Это называется модульный монолит.

Модульный монолит — это подход к проектированию приложений, который позволяет, с одной стороны, отложить во времени операционную сложность использования микросервисов, а с другой — избежать превращения монолитной системы в большой комок грязи.

📌 Почитать про модульные монолиты

📌Дорожная карта разработчиков .NET/C# в 2024 году для начинающих

У вас когда-нибудь была возможность построить такую архитектуру ?

@csharp_ci
🖥 One Billion Row Challenge (1BRC) - это забавное исследование того, насколько далеко можно зайти на C# для агрегирования миллиарда строк из текстового файла.

Задействуйте все свои навыки создайте самую быструю реализацию для решения этой задачи!

📌 Реализация известного Java челенджа на .NET

🔎 Github
🔎Пример решения

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
#ПятничныйКвиз

В скобках операторы приведения. опретаоры +- унарные.
т.е. получается,
берем -2 кастуем к long
к -2 применяем унарный оператор + и кастуем к int получаем -2
к -2 применяем унарный оператор - получаем 2 и кастуем к char
к 2 применяем унарный оператор + получаем 2 и кастуем к byte


@csharp_ci
Что выведет этот код?
Anonymous Quiz
51%
Ошибка
33%
2
16%
-2
🔥 Дайджест полезных материалов из мира C# за неделю

Почитать:
Изучаем C# в 2024 году
Университет MIT: бесплатные онлайн-курсы для программистов и студентов.
Включаем Nullable reference type в Unity за несколько минут
Как Uber вычисляет расчетное время прибытия при полумиллионе запросов в секунду
Метод быстрого марша (Fast Marching Method)
Как на самом деле Async/Await работают в C#. Часть 2 Артефакты от EAP шаблона, SynchronizationContext
Сто паттернов для разработки корпоративных программ. Часть первая
GigaChat API для .NET Core
Собираем автономную игру на C# в 2 килобайтах
Чистая архитектура на примере
Chain Of Responsibility Pattern In C# – Simplified How-To Guide
Concurrent Collections in C#
Game Dev Digest — Issue #218 - Patterns, Abstractions, Complete Tutorials and more
How I Built a NuGet Package
How to Edit and Convert PDF, PNG, JPEG, and TIFF Files in Blazor Apps
Understanding the Fundamentals of Database Programming Languages
Exploring Function Behavior in C#
Demystifying OOP in C#: Your Guide to Building Robust and Flexible Applications
Beginner's guide to Unit Testing with NUnit.
Solid Principle : Liskov Substitution Principle

Посмотреть:
🌐 Introduction to Machine Learning in C#. Classification using ML.NET ( 31:03)
🌐 Await Async Might Change Completely in .NET 9 ( 09:55)
🌐 "Stop Using Singletons in .NET!" | Code Cop #009 ( 13:52)

Хорошего дня!

@csharp_ci
🖥 LLamaSharp

Проект предоставляет API высокого уровня для вывода моделей LLaMA и развертывания их на локальном устройстве с помощью C#/.NET.

Проект работает под Windows, Linux и Mac без необходимости компилировать llama.cpp самостоятельно.

Отличный инструмент, чтобы развернуть ваш собственный ИИ на C#, подобный ChatGpt.

Даже если у вас нет мало памяти GPU, вы все равно можете использовать модели LLaMA! 🤗

Github

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 6 бесплатных курсов по SQL

1- SQL для анализа данных от Udacity
Продолжительность: Примерно 4 недели
Уровень навыков: Начинающий

Ссылка - https://shiksha.com/online-courses/sql-for-data-analysis-course-udacl3

2- Введение в SQL от Kaggle
Продолжительность: Приблизительно 3 часа
Уровень мастерства: Начинающий

Ссылка - https://kaggle.com/learn/intro-to-sql

3- Продвинутый SQL от Kaggle
Продолжительность: Приблизительно 4 часа
Уровень мастерства: Промежуточный

Ссылка - https://kaggle.com/learn/advanced-sql

4- Введение в базы данных и SQL-запросы от Udemy
Продолжительность: Приблизительно 2 часа 17 минут
Уровень мастерства: Начинающий

Ссылка - https://udemy.com/course/introduction-to-databases-and-sql-querying/

5- Intro to Relational Databases byUdacity
Продолжительность : 4 недели
Уровень квалификации: Средний ученик

Ссылка - https://udacity.com/course/intro-to-relational-databases-ud197

6- Введение в SQL (DataCamp)
Продолжительность: 4,5 часа
Уровень квалификации: Начинающий

Ссылка -
https://datacamp.com/courses/introduction-to-sql

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Преодолевая барьеры: Путь Discord к масштабированию Midjourney до 15 миллионов участников

Когда популярность сервера Midjourney от Discord резко возросла, он натолкнулся на : ограничение в 1 миллион участников. Это история о том, как небольшая команда инженеров Discord превратила эту проблему в выдающееся достижение.

Задача: Представьте себе виртуальное пространство, настолько популярное, что оно трещит по швам. Будучи одним из самых быстрорастущих серверов Discord за всю историю, Midjourney столкнулся именно с таким сценарием, поскольку количество участников росло геометрически.

Discord платформавремени, работающая на Erlang/Elixir, затрещала по швам под огромным давлением. С каждым новым участником сложность и нагрузка росли в геометрической прогрессии.

Решения:

Чтобы свести к минимуму перегрузку, инженеры внедрили "пассивные" соединения, гарантирующие, что неактивные пользователи не будут создавать лишней нагрузки.

Переработка системы реле позволила более эффективно распределять работу за счет более избирательной обработки пользовательских данных.

Параллельная обработка: Используя ETS Erlang, команда разработчиков обеспечила параллельную обработку для таких тяжелых операций, как оповещение всех пользователей что значительно снизило нагрузку на систему.

ETS - инструмент для хранения объектов Elixir и Erlang в памяти. Он способен хранить огромные объемы данных и предоставляет доступ за фиксированное время.

Не все было гладко. Некоторые многообещающие идеи, такие как разгрузка Manifold, дали обратный эффект, увеличив нагрузку на сервера.

↪️ Читать подробнее

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Получите сертификат по C# в 2024 году.

Присоединяйтесь к #Csharp #CloudSkillsChallenge, чтобы пройти обучение по курируемому контенту #MicrosoftLearn, получить практический опыт и развить новые навыки.

Практикйтеь в C# и приблизьтесь к получению сертификата.

https://learn.microsoft.com/ru-ru/training/challenges?id=76615901-392c-413e-b7a2-0a015f52f44e&WT.mc_id=cloudskillschallenge_76615901-392c-413e-b7a2-0a015f52f44e

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 100+ ресурсов для того, чтобы стать хорошим инженером-программистом.

Список полезных книг, гайдов, блогов и не тольео!

Темы - от разработки программного обеспечения, проектирования систем, инженерии данных, лидерства, управления командой и вплоть до гайдов по построению бизнеса.

Github

@csharp_ci