🚀 Как снизить время загрузки .NET Core приложения?
Если ваше .NET Core приложение загружается медленно, не спешите отчаиваться! В статье автор делится реальными оптимизациями, которые помогли ему сократить время загрузки на 80%.
💡 Вот несколько ключевых оптимизаций, которые можно легко применить:🤩
1️⃣ Удаление лишнего промежуточного ПО
Автор рекомендует тщательно проанализировать файл Startup.cs и оставить только те слои, которые действительно необходимы для работы приложения. Чем меньше промежуточного ПО — тем быстрее будет загрузка.
2️⃣ Отложенная загрузка ненужных сервисов
Сервисы, которые не критичны для первого запроса, можно отложить до момента их фактического использования. Такой подход помогает сократить время запуска приложения и ускорить отклик.
3️⃣ Оптимизация запросов к базе данных
Важно использовать асинхронные запросы, избегать дублирования запросов и оптимизировать индексы. Это значительно уменьшит задержки при извлечении данных и ускорит работу приложения.
⚡️ Хотите полной оптимизации? Скорее в статью!
Если ваше .NET Core приложение загружается медленно, не спешите отчаиваться! В статье автор делится реальными оптимизациями, которые помогли ему сократить время загрузки на 80%.
Автор рекомендует тщательно проанализировать файл Startup.cs и оставить только те слои, которые действительно необходимы для работы приложения. Чем меньше промежуточного ПО — тем быстрее будет загрузка.
Сервисы, которые не критичны для первого запроса, можно отложить до момента их фактического использования. Такой подход помогает сократить время запуска приложения и ускорить отклик.
Важно использовать асинхронные запросы, избегать дублирования запросов и оптимизировать индексы. Это значительно уменьшит задержки при извлечении данных и ускорит работу приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁13👍5🥱3
⚙️ 10 ошибок в EF Core, которые легко исправить
❓EF Core — мощный инструмент для работы с базами данных, но даже опытные разработчики могут допускать мелкие ошибки, которые замедляют приложения.
❗Например, отсутствие индексов на часто используемых столбцах может существенно снизить производительность запросов. Аналогично, выборка всей сущности вместо нужных полей или работа без пагинации ведёт к лишней нагрузке на базу данных и приложение.
Ещё одно упущение — использование отслеживания изменений в сценариях только для чтения. Это легко исправить с помощью метода AsNoTracking(). Также важно переходить на асинхронные методы (ToListAsync, SaveChangesAsync) для повышения отзывчивости приложения. А грамотная настройка миграций и отношений между сущностями помогает избежать проблем с совместимостью схемы базы данных.
🚀 Хотите узнать больше? Все детали и примеры вы найдёте в статье!
❓EF Core — мощный инструмент для работы с базами данных, но даже опытные разработчики могут допускать мелкие ошибки, которые замедляют приложения.
❗Например, отсутствие индексов на часто используемых столбцах может существенно снизить производительность запросов. Аналогично, выборка всей сущности вместо нужных полей или работа без пагинации ведёт к лишней нагрузке на базу данных и приложение.
Ещё одно упущение — использование отслеживания изменений в сценариях только для чтения. Это легко исправить с помощью метода AsNoTracking(). Также важно переходить на асинхронные методы (ToListAsync, SaveChangesAsync) для повышения отзывчивости приложения. А грамотная настройка миграций и отношений между сущностями помогает избежать проблем с совместимостью схемы базы данных.
🚀 Хотите узнать больше? Все детали и примеры вы найдёте в статье!
😁6👍1
#новость
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😁7👾2
Что такое StyleCop и почему он нужен каждому разработчику C#?
❓ Что такое StyleCop?
StyleCop — это набор правил, которые проверяют ваш код на соответствие лучшим практикам и стандартам кодирования. Например, локальные переменные должны быть в camelCase, а классы — в PascalCase. Также фигурные скобки должны располагаться на своих местах, а код должен быть аккуратно выровнен. Он анализирует такие аспекты, как:
➖ Документация (XML-комментарии).
➖ Именование переменных, классов и методов.
➖ Расположение и форматирование кода.
➖ Читаемость и структура кода.
➖ Порядок объявления элементов в классе.
Эти правила помогают автоматизировать проверку кода, снижая количество ошибок и улучшая читаемость.
Почему стоит использовать StyleCop?
➕ Единообразие кода — код, написанный по стандартам, проще читать и поддерживать.
➕ Снижение числа ошибок — некоторые правила помогают выявить потенциальные баги.
➕ Автоматизация — styleCop упрощает код-ревью и снижает нагрузку на разработчиков.
➕ Улучшение команды — следование единым стандартам помогает новым участникам быстрее влиться в команду.
StyleCop — это набор правил, которые проверяют ваш код на соответствие лучшим практикам и стандартам кодирования. Например, локальные переменные должны быть в camelCase, а классы — в PascalCase. Также фигурные скобки должны располагаться на своих местах, а код должен быть аккуратно выровнен. Он анализирует такие аспекты, как:
Эти правила помогают автоматизировать проверку кода, снижая количество ошибок и улучшая читаемость.
Почему стоит использовать StyleCop?
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱13👍5🥰1
🔐 Базовая аутентификация в ASP.NET Core Web API
Защита вашего API — задача №1 в современном мире. Один из самых простых способов это сделать — реализовать базовую аутентификацию. Давайте разберёмся, как это сделать в ASP.NET Core, не перегружая код сложными механизмами.
💡 Что такое аутентификация?
Представьте, что клиент (например, Postman, браузер или ваше мобильное приложение) отправляет запрос к вашему API. Вместе с этим запросом он передаёт свои логин и пароль в заголовке Authorization, закодированные в Base64. Сервер проверяет их и решает, пускать клиента дальше или нет.
Пример заголовка:
(Это просто логин username и пароль password, закодированные в Base64).
🛠 Как это работает?
1️⃣ Сервер видит запрос без заголовка авторизации и отвечает: 401 Unauthorized.
2️⃣ Клиент отправляет повторный запрос с закодированными учётными данными.
3️⃣ Сервер проверяет их и либо даёт доступ, либо отказывает.
✨ Как реализовать в ASP.NET Core?
1️⃣ Создайте проект ASP.NET Core Web API.
2️⃣ Посмотрите статью
3️⃣ Реализуйте!
Защита вашего API — задача №1 в современном мире. Один из самых простых способов это сделать — реализовать базовую аутентификацию. Давайте разберёмся, как это сделать в ASP.NET Core, не перегружая код сложными механизмами.
Представьте, что клиент (например, Postman, браузер или ваше мобильное приложение) отправляет запрос к вашему API. Вместе с этим запросом он передаёт свои логин и пароль в заголовке Authorization, закодированные в Base64. Сервер проверяет их и решает, пускать клиента дальше или нет.
Пример заголовка:
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
(Это просто логин username и пароль password, закодированные в Base64).
🛠 Как это работает?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🥱7❤2😢1
Forwarded from Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
👔💼 Как ответить на собеседовании, почему вы уволились с прошлого места работы: 9 вариантов ответа
А также примеры того, как говорить точно не надо 🌚
👉Читать
А также примеры того, как говорить точно не надо 🌚
👉Читать
👍2
В современном веб-разработке одной из ключевых задач является обеспечение взаимодействия сервера и клиента в режиме реального времени. Среди технологий, которые позволяют достичь этой цели, выделяется Server-Sent Events (SSE). SSE — это стандартный способ однонаправленной передачи данных от сервера к клиенту через постоянное соединение. В отличие от WebSockets, SSE проще в настройке и использовании, так как работает поверх HTTP и подходит для задач, где требуется обновление данных только от сервера к клиенту.
SSE — это технология, позволяющая серверу отправлять данные на клиент через постоянное соединение. Клиент, подключаясь к серверу, получает поток событий, которые могут обновляться в реальном времени.
Преимущества SSE:
Основные сценарии использования:
Как реализовать SSE в ASP.NET?
Чтобы включить SSE в ваше приложение ASP.NET, нужно продумать три основные составляющие:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🤔8❤1💯1👾1
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Паттерн «Состояние» — это поведенческий паттерн проектирования, который позволяет объекту изменять своё поведение в зависимости от текущего состояния. Он помогает избежать большого количества условных операторов и делает код более читаемым, гибким и модульным.
Основные компоненты паттерна
Please open Telegram to view this post
VIEW IN TELEGRAM
👏11👍5
Fluent API — это стиль проектирования интерфейсов, который позволяет вызывать методы цепочкой, улучшая читаемость и удобство работы с кодом. В C# этот подход особенно популярен в таких библиотеках, как Entity Framework, FluentValidation и других.
Пример Fluent API
Представим, что мы хотим создать систему для построения SQL-запросов. Сначала сравним два подхода:
QueryBuilder queryBuilder = new QueryBuilder();
queryBuilder.Select("name", "age");
queryBuilder.Where("age > 18");
queryBuilder.OrderBy("name");
string query = queryBuilder.Build();;
string query = new QueryBuilder()
.Select("name", "age")
.Where("age > 18")
.OrderBy("name")
.Build();
Код с Fluent API выглядит как цепочка операций, что делает его более читаемым и похожим на естественный язык.
Преимущества Fluent API
Недостатки Fluent API
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱11👍8👏4🤔2
Мы ищем участников для интервью на тему «Обучение навыкам в IT»!
Кто нам нужен?
Что вас ждет?
Участие в интервью по Zoom, которое займет не больше 45 минут.
Уникальный шанс пообщаться с нашим CEO!
Как откликнуться?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🤔2
Как часто вы задумывались о том, какие размеры имеют окна на вашем экране? Для разработчиков, гейм-дизайнеров и дизайнеров интерфейсов это порой становится важным вопросом. Здесь на помощь приходит LiveWinSize — лёгкая утилита, которая делает измерение окон точным и быстрым.
Реальные размеры: помимо пикселей, вы можете видеть размеры в сантиметрах или дюймах.
Лёгкость: приложение весит всего 1,75 МБ.
Простота: минимальный интерфейс, всё, что нужно — запуск и информация о размере окна уже перед вами.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🎉2👍1
🚀Как ускорить LINQ: полезные трюки
1️⃣ Избегайте повторной обработки коллекций
Повторный вызов методов LINQ, таких как Where, приводит к повторному перебору коллекции.
✅ Решение: кэшируйте результаты, если они используются несколько раз:
2️⃣ Используйте ForEach вместо Select, если результат не нужен
Использование Select для выполнения действий без необходимости возвращать коллекцию увеличивает накладные расходы.
✅ Решение: используйте ForEach для простого выполнения действий:
3️⃣ Избегайте использования Count для проверки на пустоту
Count перебирает всю коллекцию, что замедляет выполнение.
✅ Решение: используйте Any() вместо Count():
4️⃣ Параллельное выполнение (PLINQ)
Обработка больших коллекций может быть медленной.
✅ Решение: используйте PLINQ для параллельного выполнения:
5️⃣ Проекционная оптимизация (Select)
Извлечение всех данных, когда требуется только несколько полей.
✅ Решение: Используйте Select для выборки только необходимых данных:
6️⃣ Фильтрация перед проекцией
Проекция больших объёмов данных перед фильтрацией замедляет запрос.
✅ Решение: сначала фильтруйте, затем проецируйте:
🐸 Библиотека шарписта
#tip
Повторный вызов методов LINQ, таких как Where, приводит к повторному перебору коллекции.
var filtered = myCollection.Where(x => x.Age > 30).ToList(); // Выполняется один раз
var count = filtered.Count;
var average = filtered.Average(x => x.Salary);
Использование Select для выполнения действий без необходимости возвращать коллекцию увеличивает накладные расходы.
myCollection.ForEach(x => Console.WriteLine(x.Name));
Count перебирает всю коллекцию, что замедляет выполнение.
if (myCollection.Any()) // Быстрее, чем myCollection.Count > 0
Обработка больших коллекций может быть медленной.
var result = myCollection.AsParallel()
.Where(x => x.IsActive)
.ToList();
Извлечение всех данных, когда требуется только несколько полей.
var names = myCollection.Select(x => x.Name).ToList();
Проекция больших объёмов данных перед фильтрацией замедляет запрос.
var result = myCollection.Where(x => x.Age > 30)
.Select(x => x.Name)
.ToList();
#tip
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🥱19🎉3❤2⚡1
Microsoft выпустила обновление .NET 9.0.1, которое в первую очередь сфокусировано на устранении уязвимостей.
Вот ключевые моменты:
#новость
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🤔2🎉1
Если вы ищете способ создавать распределённые, высокопроизводительные и отказоустойчивые приложения на платформе .NET, то Akka.NET — это инструмент, который стоит вашего внимания!
Что такое Akka.NET?
Akka.NET — это фреймворк, основанный на модели акторов (Actor Model). Он позволяет разработчикам легко работать с конкурентностью, параллелизмом и асинхронностью, избегая головной боли от многопоточности. Каждый «актор»" — это небольшая изолированная сущность, которая взаимодействует с другими через обмен сообщениями.
Почему Akka.NET?
🔄 Отказоустойчивость: приложение не упадёт из-за сбоя — акторы можно перезапустить или перенести.
📡 Распределённость: стройте приложения, которые работают на нескольких серверах или в облаке.
⚡️ Масштабируемость: akka.NET легко справляется с нагрузкой, увеличиваясь вместе с вашими задачами.
🛠 Интеграция с .NET: используйте привычный C# и экосистему .NET для построения сложных систем.
Чат-приложения: реальное время, тысячи пользователей.
Игровые серверы: управление игроками и состоянием мира.
Финансовые системы: обработка тысяч транзакций в секунду.
IoT: обработка данных от огромного числа устройств.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13👏4❤1