Дорожная карта разработчиков .NET в 2024 года
Если вы собираетесь стать разработчиком .NET Framework в 2024 году, вас ждет увлекательное путешествие! Экосистема .NET обширна и постоянно развивается. Чтобы помочь вам эффективно ориентироваться в этом ландшафте, мы составили подробную дорожную карту, в которой описаны основные скиллы и технологии, которыми вы должны овладеть. Независимо от того, являетесь ли вы новичком в разработке программного обеспечения или переходите с другого технологического стека, эта дорожная карта поможет вам определить ключевые области, на которых следует сосредоточиться.
https://t.me/+dfJYMCA0NiE2Yjhi – огромное количетсво гайдов, библиотек и примеров с кодом в моем телеграм кнаале для C# и .Net разработчиков.
https://t.me/addlist/u15AMycxRMowZmRi – тут я собрал огромную папку каналов C# и .Net программистов.
1. Общее представление о разработке и Web
а) Понять, как работает веб.
- C# : https://dotnet.microsoft.com/learn/csharp
- Основы Linux: https://stepik.org/course/762/promo
- Web Dev (HTML and CSS: https://freecodecamp.org/learn/2022/responsive-web-design/
- Введение в информатику 101 от Стендфорда: https://online.stanford.edu/courses/soe-ycscs101-computer-science-101
б) Изучить инструменты контроля версий
- Git
- GitHub
- GitLab (полезно знать)
Курсы:
- Основы Git: Курс описывает наиболее часто используемые команды git, взятые из опыта реальных проектов. Даются примеры и интерактивные задачи : https://stepik.org/course/3145/promo
- Git и GitHub бесплатный курс поможет вам разобраться с контролем версий: http://learngitbranching.js.org
в) Научитесь искать решения в сети.
- Stack Overflow
- Bing Search
- ChatGPT
д) Изучите Структуры данных и алгоритмы ( полезные бесплатные курсы для изучения стуртур данных можно найти тут)
2 Изучение С#
Бесплатные курсы для изучения C#:
b) Изучите .NET 8
c) .NET CLI
3 Принципы SOLID
SOLID – это принципы разработки программного обеспечения, следуя которым Вы получите хороший код, который в дальнейшем будет хорошо масштабироваться и поддерживаться в рабочем состоянии.
Узучите:a) Принцип единой ответственности
б) Принцип открытости-закрытости
c) Принцип замещения Лискова (хорошо знать)
г) Принцип разделения интерфейсов
д) Принцип инверсии зависимостей
f) DRY
g) YAGNI
h) KISS
4 Изучите основы ASP.NET Core
Вот основные темы для изучения:
а) Веб-интерфейсы API
б) Минимальные APIe
в) Маршрутизация
г) Мидлвар
д) Фильтры и атрибуты
f) Конфигурация
g) Аутентификация и авторизация
h) Инъекция зависимостей
a) Основы РСУБД и проектирование баз данных
б) Синтаксис SQL
c) Хранимые процедуры (полезно знать)
Курсы:
г) Базы данных
- Postgres
- SQL Server
- MySQL/MariaDB (хорошо знать)
План рассчитан на 28 дней, в течение которых необходимо уделять не менее 1,5 часов в день.
5 Работа с API
а) REST
- Web
- Минимальное API
- FastEndpoints (полезно знать)
б) GraphQL (полезно знать)
в) gRPC (полезно знать)
Курсы:
6 ORM
b) Entity Framework Core
- Изучите основы EF Core
- Миграции
- API отслеживания изменений
- Ленивая загрузка, ускоренная загрузка, явная загрузка
7 Внедрение зависимостей в .NET
Внедрение зависимостей в .NET — это встроенная часть платформы, а также конфигурация, ведение журнала и шаблон параметров.
Внедрение зависимостей в .NET – это подход, который позволяет классам получать свои зависимости из внешнего источника, вместо того чтобы создавать их самостоятельно. Внедрение зависимостей позволяет отделить процесс создания объектов от кода, который их использует, что приводит к более модульной и гибкой системе.
Почему это нужно:
Классы отделяются друг от друга, поэтому изменения, внесенные в одно место, отражаются во всех остальных местах.
Три способа внедрения зависимостей:
▪Scoped: Создается экземпляр на каждую область видимости.
▪Transient: Создается новый экземпляр каждый раз при его внедрении.
▪Singleton: Создается один объект для всех запросов, поступающих на сервер от любого пользователя.
b) Scrutor (полезно знать)
a) Облачные базы данных
- AWS DynamoDB
- Azure CosmosDB
б) ElasticSearch
в) Redis
г) MongoDB (полезно знать)
10 Кэширование
a) Кэширование вывода
б) Кэширование ответов (полезно знать)
StackExchange.Redis
11 Ведение логов
a) Microsoft.Extensions.Logging – https://learn.microsoft.com/en-us/dotnet/core/extensions/logging
б) Serilog
12 Обмен сообщениями
a) Azure Service Bus
c) RabbitMQ (полезно знать)
b) AWS SQS/SNS
г) MassTransit
13 Потоковая передача данных
a) Apache Kafka –
(полезно знать)
b) AWS Kinesis (хорошо знать)
c) Azure Event Hubs (хорошо знать)
14 Тестирование
а) модульное тестирование
“Библия QA” – это обновляемая база знаний объемом 560+ страниц:
▪Ответы на самые популярные вопросы новичков о профессии и старте карьеры;
▪Крупнейшая подборка ссылок и полезных ресурсов;
▪Конспект всевозможной теории и ответов на вопросы с реальных собеседований.
15 Коммуникация в реальном времени
b) Web Sockets (полезно знать) – https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_server
16 Документация API
a) OpenAPI/Swagger – https://swagger.io/specification/
б) AsyncAPI (полезно знать) – https://www.asyncapi.com/tools
17 Библиотеки API SDK
а) Refit
б) RestSharp
в) Flurl (хорошо знать)
18 Планирование задач
a) BackgroundService
б) PeriodicTimer
в) HangFire (полезно знать)
19 Мониторинг и телеметрия
a) OpenTelemetry – https://t.me/Golang_google/1597
Jeager (полезно знать)б) Prometheus
в) Grafana
г) ELK Stack
д) Datadog (полезно знать)
20 Контейнеры
а) Контейнеризация
Docker – https://learn.microsoft.com/en-us/dotnet/core/docker/build-containerPodman (полезно знать)- https://developers.redhat.com/articles/2022/03/21/hello-podman-using-netб) Оркестровка
Kubernetes
21 Облачные технологии
а) Облачные провайдеры – https://www.youtube.com/watch?v=TCuxXg0AUao
-Azure– AWSб) Бессерверные технологии
Azure FunctionsAWS Lambdaв) Файловое хранилище
AWS S3Azure Storage
22 Непрерывная интеграция и развертывание
a) GitHub Actions
б) TeamCity
c) Octopus Deploy
d) Azure Pipelines (полезно знать)
д) Gitlab CI (полезно знать)
f) Jenkins (хорошо знать)
g) Автоматизация сборки (хорошо знать)
Cake (полезно знать)Nuke (хорошо знать)
❯ Jenkins
❯ Puppet
❯ Chef
❯ Ansible
❯ Selenium
❯ VirtualBox & vSphere
23 Библиотеки .NET
a) Polly
b) FluentValidation
c) Humanizer.Core
d) Benchmark.NET
e) MediatR (полезно знать)
f) Units.NET (полезно знать)
g) NodaTime (полезно знать)
Awesome-C# — огромный список полезных фреймворков, готовых скриптов, библиотек и программного обеспечения.
24 DevOps
б) Terraform (хорошо знать)
в) Pulumi (хорошо знать)
25 Пишите код каждый день”
Поздравляем вас с достижением этого этапа дорожной карты!
Помните, что постоянное обучение и кодинг – это ключ к освоению .NET Framework. Не теряйте любопытства, изучайте новые технологии и продолжайте создавать интересные проекты. Ваш путь разработчика .NET только начинается, а возможности безграничны.