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

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

@ai_machinelearning_big_data - Machine learning

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

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

@pythonlbooks- книги📚

Реестр РКН: https://clck.ru/3Fk3kb
Download Telegram
Forwarded from Machinelearning
🖥 𝗧𝗵𝗲 𝘀𝘁𝗮𝘁𝗲 𝗼𝗳 𝗼𝗽𝗲𝗻 𝘀𝗼𝘂𝗿𝗰𝗲 𝗶𝗻 𝟮𝟬𝟮𝟯 by GitHub

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

Они выделили основные тенденции:

🔹 Разработчики все чаще используют генеративный ИИ: Все больше разработчиков работают с моделями OpenAI ( 92% ) и с моделями других ИИ-компаний; в 2023 году проекты генеративного ИИ с открытым исходным кодом входят в десятку самых популярных проектов по количеству контрибьюторов.

🔹 Наблюдается тренд на работу с облачными приложениями:
Развертывание облаков становится стандартом; резко возросло количество использования разработчиками Docker контейнеров, IaC и других облачных нативных технологий.

🔹 В 2023 году на GitHub было создано 98 млн новых проектов (за 2022 год - 85.7 млн, за 2021 - 61 млн, за 2020 - 60 млн). Общее число проектов достигло отметки в 420 млн (+27%), а число публично доступных репозиториев - 284 млн (+22%).

🔸 За год добавлено около 65 тысяч новых проектов, связанных с машинным обучением, это на 248% больше, чем в прошлом году. Число AI-проектов за год выросло на 148%.

🔸 Аудитория GitHub за год выросла на 20.2 млн пользователей (+26%) и теперь достигает 114 млн (в прошлом году было 20.5 млн, позапрошлом - 73 млн, три года назад - 56 млн). На первом месте по числу разработчиков находится США, на втором - Индия, на третьем - Китай, на четвёртом Бразилия, на пятом - Великобритания, на шестом - РФ, на седьмом Германия. К 2027 году Индия обгонит США как крупнейшее сообщество разработчиков на GitHub

🔸Javascript остается самым популярным язком. Второе место сохраняет за собой Python.Популярность TypeScript выросла на 37 %. и он вытеснил на четвёртое место язык Java. 5, 6 и 7 места удержали за собой языки С#, C++ и PHP. На восьмое место поднялся язык С, который вытеснил на девятое место Shell. Десятое место занял Go.

🔸 𝗥𝘂𝘀𝘁 растет быстрее всех остальных языков в этом году (рост на 40 % по сравнению с предыдущим годом).

🔸 𝟰.𝟯 миллиона открытых и приватных репозиториев используют 𝗗𝗼𝗰𝗸𝗲𝗿𝗳𝗶𝗹𝗲𝘀. Это является следcтвием роста использования Terraform и других облачных нативных технологий, который мы наблюдали в течение последних нескольких лет.

🔸 Сингапур занял первое место по количеству новых разработчиков на душу населения.

📌 Полный отчет

ai_machinelearning_big_data
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 6 типов баз данных, которые необходимо знать

1. Реляционные базы данных 💼
- Модель данных: Организует данные в таблицы со строками и столбцами.
- Примеры: MySQL, PostgreSQL, Oracle, SQL Server.
- Ключевые особенности: Соответствие стандарту ACID, высокая степень согласованности данных, структурированное хранение данных, поддержка SQL-запросов, хорошая приспособленность к сложным транзакциям и созданию отчетов.

2. База данных для документов 📄.
- Модель данных: Хранение данных в виде полуструктурированных или JSON-подобных документов.
- Примеры: MongoDB, CouchDB, Firebase Firestore.
- Ключевые особенности: Гибкая схема, горизонтальная масштабируемость, поддержка полуструктурированных данных, хорошо подходит для систем управления контентом и приложений реального времени.

3. In-Memory Database 🚀.
- Модель данных: Хранит данные полностью в оперативной памяти (ОЗУ) системы.
- Примеры: Redis, Memcached, Apache Ignite.
- Ключевые особенности: Сверхбыстрый поиск данных, низкая задержка, подходит для кэширования, управления сессиями и аналитики в реальном времени.

4. Графовые базы данных 🌐.
- Модель данных: Представляет данные в виде узлов и ребер для моделирования отношений.
- Примеры: Neo4j, Amazon Neptune, ArangoDB.
- Ключевые особенности: Эффективный запрос сложных отношений, обход графов, подходит для социальных сетей, рекомендательных систем и обнаружения мошенничества.

5. Базы данных для
временных рядов 📈.
- Модель данных: Оптимизирована для упорядоченных по времени точек данных, таких как показания датчиков или файлы журналов.
- Примеры: InfluxDB, Prometheus, TimescaleDB.
- Ключевые особенности: Эффективное хранение и извлечение данных временных рядов, агрегирование, , идеально подходит для мониторинга IoT данных.

6. Пространственные базы данных
🌍.
- Модель данных: Предназначена для хранения пространственных или географических данных.
- Примеры: PostGIS (расширение для PostgreSQL), MongoDB Geospatial, Microsoft SQL Server Spatial.
- Ключевые особенности: Геопространственная индексация, поддержка пространственных типов данных (точки, полигоны, линии), подхожит для сервисов, основанных на определении местоположения, ГИС (географических информационных систем) и картографических приложений.

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Предварительная версия 2 .NET Aspire уже доступна! 🎉

Вы прочитать об этом на https://devblogs.microsoft.com/dotnet/announcing-dotnet-aspire-preview-2/.

Полный список изменений в примечаниях к выпуску на https://github.com/dotnet/aspire/releases/tag/v8.0.0-preview.2.23619.3.

@csharp_ci
Что выведет на экран этот код, с параметрами компиляции по умолчанию?
Anonymous Quiz
27%
Возникнет исключение OverflowException
21%
System.Byte System.Byte
38%
System.Byte System.Int32
14%
System.Int32 System.Int32
🖥 Рефа́кторинг (англ. 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