Pull to refresh

C# разработчик: новый курс в октябре

Reading time2 min
Views619

В октябре запускаем новый курс — C# разработчик.

Этот курс подойдет разработчикам уровня middle на прочих фреймворках и языках и начинающим разработчикам C#. 

Вы сможете начать разрабатывать простые приложения на ASP.NET, овладеете основными подходами для решения задач, следуя принципам SOLID с использованием .NET, C#, Visual Studio и Git.

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments0

JetBrains рассказала о том, как установить Rider IDE на Steam Deck

Reading time2 min
Views2.3K

В блоге JetBrains представили пошаговою инструкцию о том, как установить на Steam Deck полноценную среду разработки Rider и .NET SDK. Компания считает, что это может упростить разработку для Steam Deck и ускорить процесс тестирования, позволив делать это сразу на целевом устройстве.

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments0

PVS-Studio 7.28: поддержка ARM, .NET 8, анализ Unreal Engine без Unity Build и не только

Reading time5 min
Views1.3K

Вышел новый релиз PVS-Studio — 7.28. Теперь можно запускать анализ на архитектуре ARM, .NET 8 и в Unreal Engine без Unity Build, и это ещё не всё! Больше подробностей в этом пресс-релизе.

Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments0

Как разработчику провести последний месяц лета?

Reading time3 min
Views1.4K

Всем привет! Заполняя календарь мероприятий на сайте PVS-Studio, я решила, что будет круто и здесь поделиться предстоящими событиями. В этой подборке вас ждут мероприятия на август, как мелкие, так и крупные. В общем, на любой вкус и цвет! Надо же последний месяц лета провести интересно и весело.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments0

Чему могут научить пул реквесты в чужие проекты

Level of difficultyEasy
Reading time3 min
Views3K

Привет. Гоу разберем почему вам может быть полезно вносить вклад в сообщество программистов. Речь пойдет про запросы на внесение изменений через форк проекта.

Читать далее
Total votes 19: ↑11 and ↓8+3
Comments5

События в .NET: стандартная реализация, альтернативы, и причем тут сахар

Reading time17 min
Views808

События – это объекты, которые получают уведомления о некотором действии в разрабатываемом ПО и могут запускать реакции на это действие. Разработчик может определить эти действия, добавив к событию обработчик. Разберем в этом материале само понятие событий в .NET и разные способы работы с ними.

Читать далее
Total votes 4: ↑5.5 and ↓-1.5+7
Comments2

Книги по C# для новичков в разработке: что стоит почитать в 2024 году

Reading time3 min
Views664

Разработчикам любого уровня нужно постоянно учиться — смотреть, слушать и читать всё, что может пригодиться для развития и становления в качестве специалиста. Особенно это касается новичков в разработке, ведь им нужно освоить огромное количество информации. И книги — один из лучших источников её получения. Под катом расскажем о 5 хороших книгах по C#, которые стоит прочесть начинающему программисту.

Читать далее
Total votes 3: ↑5 and ↓-2+7
Comments1

Could async/await magic create thread, or it is always: “There is no thread”?

Level of difficultyMedium
Reading time4 min
Views514

When we are told “There is no thread” we can easily come to an opinion that it is impossible at ALL that asynchronous operation could create thread, but it would be wrong opinion. Simple code example proves the opposite.

Those who are easy to treat the sentence as the universal rule are easy to understand. They would like to simplify the subject and to cut amount of theory they should study and remember. Besides to many it is new level of knowledge to discover there is other layer of classes to manage async-operations behavior beside the Tasks and and SynchronizationContext is only one among them.

Read more
Total votes 5: ↑3 and ↓2+1
Comments0

Быстро и легко ищем баги в играх на Unity (для C# разработчиков)

Level of difficultyEasy
Reading time8 min
Views4.4K

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

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments0

Оцениваем сложность алгоритмов на C# по памяти и времени с примерами

Level of difficultyHard
Reading time10 min
Views5.1K

Продолжаем говорить о производительности и оптимизации кода. Сегодня поговорим о том, как и зачем оценивать сложность алгоритмов,  а также наглядно покажем, как эта сложность влияет на производительность кода.

Читать далее
Total votes 8: ↑6.5 and ↓1.5+5
Comments18

Базовый вариант использования Task Unwrap

Level of difficultyEasy
Reading time3 min
Views1.5K

Недавно, после нескольких месяцев отсутствия использования .Net/C#, я улучшал существующее приложение .Net/C# WPF, используя .Net Task Parallel Library (TPL).

Но, наивно применяя шаблоны обещаний JavaScript, которые я использовал в предыдущие месяцы, я столкнулся со странной проблемой, которая заставила меня использовать довольно экзотический метод расширения Unwrap.

В этой статье описывается проблема, объясняется ее причина, предлагается исправление с помощью Unwrap и, наконец, представлена ​​более современная версия с парадигмой async/await C# 5.0.

Простой рабочий процесс в JavaScript с Promises

Вот JavaScript-реализация простого рабочего процесса, состоящего из трех шагов, второй из которых имитирует отложенную обработку с помощью setTimeout с использованием Promise API:

Читать далее
Total votes 8: ↑1 and ↓7-6
Comments23

Обзор библиотеки FluentValidation. Часть 6. Внедрение зависимостей

Level of difficultyMedium
Reading time5 min
Views1.2K

Библиотеку FluentValidation можно использовать с любой библиотекой внедрения зависимостей. В этой части будут примеры на библиотеке Microsoft.Extensions.DependencyInjection. У нас есть следующие валидаторы:

Читать далее
Total votes 8: ↑4 and ↓40
Comments0

Между строк: Создание элементов интерфейса через VectorApi Unity UI Toolkit

Level of difficultyMedium
Reading time8 min
Views1.3K

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

Сегодня будем разбирать альтернативный способ создания, использую VectorApi.

Рассмотрим, как работает painter2D, какими функциями обладает и зачем оно может вам пригодиться.

Создать элементы
Total votes 5: ↑5 and ↓0+5
Comments4

Блеск и нищета паттерна «Спецификация» в С#. Оцениваем планы запросов

Level of difficultyHard
Reading time20 min
Views11K

О паттерне «Спецификация», который позволяет улучшить структуру приложения, и, следовательно, увеличить гибкость, уменьшив при этом объем кода, а значит — сократить количество ошибок, но это не точно. Почему? - читаем ниже. 

Читать далее
Total votes 45: ↑44 and ↓1+43
Comments47

Другой способ понять, как работает async/await в C#

Level of difficultyMedium
Reading time7 min
Views8K

Про закулисье async/await написано предостаточно. Как правило, авторы декомпилируют IL-код, смотрят на IAsyncStateMachine и объясняют, вот дескать какое преобразование случилось с нашим исходным кодом. Из бесконечно-длинной прошлогодней статьи Стивена Тауба можно узнать мельчайшие детали реализации. Короче, всё давно рассказано. Зачем ещё одна статья?

Я приглашаю читателя пройти со мной обратным путём. Вместо изучения декомпилированного кода мы поставим себя на место дизайнеров языка C# и шаг за шагом превратим async/await в код, который почти идентичен тому, что синтезирует Roslyn.

Читать далее
Total votes 21: ↑21 and ↓0+21
Comments26

Rule-based AI + Unity

Level of difficultyEasy
Reading time8 min
Views1.7K

Привет! В прошлой статье мы уже говорили про искусственный интеллект и трудности его выбора. В этой мы поговорим как начать его писать так чтобы потом не выстрелить себе в жопу ногу.

Читать далее
Total votes 5: ↑3 and ↓2+1
Comments6

Супер-эффективная архивация — сжимаем все что угодно до 32 байт

Level of difficultyMedium
Reading time4 min
Views33K

Будем разрабатывать архиватор, который может сжимать данные любого размера и типа до 32 (38 с метаданными) байт. Рассмотрим достоинства и недостатки данного алгоритма, возможные способы улучшения его работы.

Распаковать
Total votes 121: ↑114 and ↓7+107
Comments79

Нейрогенератор игровых миров: рассказ о моём интригующем пет проекте

Level of difficultyMedium
Reading time12 min
Views3.6K

Представьте себе игру с полностью открытым и бесконечным миром, этот мир живет своей жизнью, и игрок полностью свободен делать всё, что заблагорассудиться, а игра просимулирует результаты его действий. Такой, open world со своей уникальной вселенной. Интересная такая идея для петпроекта, не правда ли? В этой статье я расскажу о своей попытке реализовать подобную игру, по крайней мере её фундамент.

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments8

Ускоряем Dictionary в C# при помощи структур и CollectionsMarshal

Level of difficultyEasy
Reading time5 min
Views6.6K

Если вы C# разработчик, то наверняка вам знаком класс Dictionary. В качестве значений вы, скорее всего, использовали классы. Но что если я скажу, что в Dictionary можно использовать структуры? Не стоит бояться того, что структуры копируются при передаче в метод или возврате из него. Есть способ этого избежать, и это работает быстро.

Узнать как
Total votes 14: ↑12.5 and ↓1.5+11
Comments21

Нужны ли Unity разработчику проекты на гитхабе

Level of difficultyEasy
Reading time4 min
Views2.6K

Довольное большое количество собеседующих заглядывает на гитхаб. Первые хотят убедиться, что у вас есть в наличии хоть какой‑то написанный вами надеюсь код. Вторые хотят побольше в этот код повникать, чтобы посильнее вас потеребонькать на техническом собеседовании. Уже не знаю для чего… для поднятия собственного это, может быть. Или может хотят сбить с вас спесь вместе с денежными запросами) Хотя последняя категория собеседующих на моей практике попадалась всего два раза:

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments3