Обновить
61.16

C# *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Вопросов нет? Или почему отсутствие '?' может навредить проекту

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6.3K

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

Читать далее

Сервис очереди, или как подогнать код под все случаи

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5.9K

Привет! С вами снова писатель-программист из компании Simpl Group (да, без e).
Совсем недавно я выступала на нашем внутреннем Meet Up — уже 6-м, между прочим, — и рассказала своим коллегам занимательную историю, которую поведаю сегодня и вам. Не про ведьм и демонов, конечно, как в моей книге. А про цирк — цифровой цирк, в котором задачи прыгают через обручи, катаются на велосипедах и не падают. Или, по крайней мере, мы стараемся, чтобы не падали.

Читать далее

Книга «C# Concurrency. Асинхронное программирование и многопоточность» в правильном переводе команды DotNetRu

Время на прочтение5 мин
Охват и читатели9.4K

Сообщество DotNetRu совместно с издательством «Питер» завершило перевод книги Нира Добовицки «C# Concurrency». Мы тщательно выверили терминологию, сгладили стиль и сохранили точность оригинала. Это практическое руководство для тех, кто хочет уверенно проектировать конкурентные компоненты на .NET 8/9 — без догадок и шаманства.

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

Читать далее

ИИ в работе программиста

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6.8K

Меня зовут Артём, в данный момент я работаю на должности ведущего программиста. Перед вами текст в стиле черновика статьи о размышлениях автора на тему современных ИИ инструментов в разработке программного обеспечения — о том, как это связано с эффектом «Зловещей долины», помощью с развитием профессиональных навыков и инцестом.

Читать далее

Fallout 2 на Unity

Время на прочтение3 мин
Охват и читатели33K

Привет всем поклонникам вселенной Fallout, особенно её первых двух частей. Сегодня речь пойдёт о Fallout 2 — попытки перенести вторую часть Fallout предпринимались не единожды. Есть вот такой интересный ремейк, а ещё есть группа энтузиастов, пытающихся перенести вторую часть Fallout на движок Fallout 4. Я не знаю, в каком статусе находятся эти проекты; подозреваю, что воз и ныне там. Как бы то ни было, намерения самые что ни на есть благие. В этот раз я хочу представить очередную попытку перенести Fallout 2 в 3D, на этот раз на движок Unity.

Почему Unity?

Изначально мой выбор пал на Unreal Engine 5, так как уровень графики и богатый API движка впечатляют. Но я быстро понял, что Unreal Engine 5 — это выбор для AAA-проектов либо для полноценных команд, которые уже собраны и готовы работать. В то время как Unity идеально подходит для энтузиастов-одиночек. Дополнительным обстоятельством послужил мой ноутбук — Unreal Engine 5 он банально не тянет, даже редактор работает со скрипом. В итоге звёзды сошлись и указали на Unity: выбор сделан.

Читать далее

Книга: «C# Concurrency. Асинхронное программирование и многопоточность»

Время на прочтение4 мин
Охват и читатели9.1K

Привет, Хаброжители! Асинхронные и многопоточные программы могут выполнять несколько задач одновременно, не теряя скорости или надежности. Но правильная организация параллельного выполнения может вызвать затруднения даже у опытных разработчиков. Эта практическая книга научит вас создавать параллельные приложения на C#, работающие с максимальной скоростью и не имеющие взаимоблокировок и других проблем синхронизации, которые ухудшают производительность и требуют огромных усилий для их обнаружения.

«C# Concurrency» помогает получить полное представление об особенностях многопоточности и асинхронного программирования. В ней особое внимание уделено практическому использованию операторов async/await в C# для упрощения асинхронных задач. Вы научитесь избегать распространенных ошибок, обходить классические проблемы многопоточности, такие как состояния взаимоблокировки и гонки, а также узнаете о многих сложных нюансах управления потоками и использования потокобезопасных коллекций.

Читать далее

Всё про BlockingCollection и фичи с ними

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели8.8K

Привет, Хабр!

В .NET живёт старый, понятный инструмент для конкурентной обработки — BlockingCollection<T>. Коллекция, которая упрощает модель producer–consumer, даёт строгую ограниченную вместимость и предсказуемую блокировку при пустоте или переполнении. Да, у нас есть Channel<T>, есть TPL Dataflow, есть миллион самодельных очередей на SemaphoreSlim. Но когда нужны простые правила и железный backpressure без BlockingCollection по-прежнему закрывает задачи хорошо.

Читать далее

FlaUI на практике: поиск элементов, умные ожидания и борьба с динамическим UI

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели7.2K

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

Читать далее

Еще один честный взгляд на инди геймдев

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели11K

Привет дорогой читатель, не спеши листать дальше, ведь тут очередной раз «без всякого вранья», автор пишет про то как он за 1-у неделю сделал игру своей мечты и заработал миллионы миллионов...Ладно, шучу. Хочу просто жестко проехать по вот таким вот статьям.

Много «букаф» не планирую, хотя как пойдет. Итак — добро пожаловать в Netkot бар:‑)

Читать далее

Оптимизация Unity-сцены: от Profiler до Object Pooling. Убираем лаги шаг за шагом

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели6.3K

Твоя игра на Unity тормозит?
В этой статье гайд о том, как поднять FPS с 30 до 60+.
Мы вместе разберем Profiler, GC, Object Pooling и другие "болевые точки".

Читать далее

День знаний. Базовые курсы по автоматизации тестирования

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.4K

Привет! Я Миша Симонов. Работаю в Контуре ведущим специалистом по тестированию и являюсь техлидом автоматизации тестирования кластера из 17 команд. Сегодня хороший день, чтобы рассказать об одной из задач, которой я занимаюсь — повышение квалификации сотрудников в области автоматизации тестирования.

Если ты опытный автоматизатор, то не проходи мимо и поделись своим опытом в комментариях к курсам. Эти комментарии прочтут не только администраторы, но и новички, проходящие курсы.

Читать далее

Примеры применения EPLAN API для создания собственного модуля Add In

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели9.7K

Привет, Хабр!

Если вы когда-нибудь чувствовали, что стандартных инструментов EPLAN не хватает, значит пора взглянуть на его API. В статье я покажу, как написать свой первый Add-In на C#, добавить кнопку на Ribbon и заставить её выполнять полезные действия. Всё на примерах — от простого «Hello World» до работы с объектами и настройками EPLAN.

Читать далее

На дворе LLM, а книгу о перцептроне так никто и не открыл!?

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели11K

Сложно следить за околонаучными темами, и понимать, что ветка эволюции научного направления пошла не туда. Сейчас случился некий бум псевдонаучного взлета LLM, и я приведу в качестве современной статьи на хабре лишь одну, но это по прежнему массовое явление. Например, в статье компании Friflex за 2024 год История LLM-агентов: 10 ярких моментов по прежнему утверждается "На смену однослойному перцептрону Розэнблатта пришел многослойный. В статье Learning representations by back-propagating errors («Обучение представлений с помощью обратного распространения ошибки») Румельхарт и Хинтон показали, что многослойный перцептрон справляется с задачами, которые были не под силу его однослойному предшественнику. Например, с XOR. ". Совершенно излишне говорить, что это полное вранье, а авторы статьи даже не потрудились открыть эту статью, чтобы её прочитать. Это стало массовым явлением, и я его наблюдаю как минимум 20 лет, я когда то написал тут на хабре цикл статей объясняющих детали, лучше всего посмотреть эту Какова роль первого «случайного» слоя в перцептроне Розенблатта. Поэтому к этому возвращаться не будем. Я не знаю почему, может это массовая культура так влияет на людей, а порог вхождения в тематику ИИ слишком сложный? Не знаю, но не важно. Чтобы продемонстрировать скорость обучения перцептрона я написал несколько реализаций перцептрона Розенблатта и выложил их на гитхабе. А затем мы коснемся LLM.

Читать далее

Ближайшие события

Копаемся в открытом исходном коде Unity VR игр. Часть 2: NorthStar

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели6.6K

Это вторая статья из небольшого цикла, посвящённого знакомству с некоторыми любопытными VR-играми, а заодно и с примерами проблем в их исходном коде, найденных с помощью PVS-Studio. Знакомьтесь, NorthStar!

Читать далее

SOLID для начинающих Unity-разработчиков: простыми словами и с примерами из жизни

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели7K

SOLID для начинающих Unity-разработчиков.
Разбираю 5 принципов программирования через аналогии из жизни.
Каждый принцип - с примерами кода на C#.

Читать далее

Разворачиваем локально ИИ при помощи клиента Microsoft.Extensions.AI и Ollama

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели12K

Если вы хотите создавать код по запросу, делать переводы текстов, генерировать резюме, и при этом всем не хотите чтобы данные уходили в сеть, то вы наверняка задумывались как развернуть свой ИИ(например deepseek) на локальном компьютере. Эта статья расскажет о том, как просто это сделать. Для этого нам понадобится небольшое знание C# и «docker» для ИИ моделей — Ollama.

Дальше будет интересно...

Копаемся в открытом исходном коде Unity VR игр. Часть 1: RocketMan

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели7.1K

Это первая статья из небольшого цикла, посвящённого знакомству с некоторыми любопытными VR-играми, а заодно и с примерами проблем в их исходном коде, которые нашлись с помощью PVS-Studio. Знакомьтесь, RocketMan!

Читать далее

Книга: «.NET 8: инструменты и навыки. Лучшие практики и паттерны проектирования, отладки и тестирования»

Время на прочтение5 мин
Охват и читатели7.2K

Привет, Хаброжители! Хотим рассказать вам о новой книги Марка Прайса! В ней вы узнаете, как управлять исходным кодом и проектами с помощью Git, обеспечивая при этом контроль версий. Откроете для себя передовые методы отладки и стратегии выявления и устранения проблем, а также увидите, как правильно документировать код, API и сервисы, чтобы повысить удобство обслуживания проекта.

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

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

В книге описаны возможности разработки облачных сервисов с применением .NET Aspire и преимущества современных облачных платформ. А знакомство с особенностями передовых архитектур программного обеспечения позволит вам создавать надежные и масштабируемые приложения, удобные в обслуживании.

Читать далее

Params-коллекции и collection expressions в C#

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели8K

Привет, Хабр!

В экосистеме C# за последние два релиза случилось ровно то, чего многим не хватало для аккуратной работы со списками значений. В C# 12 появились collection expressions — синтаксис вида [1, 2, 3] со spread-элементами .., который конвертируется в массивы, Span, ReadOnlySpan, интерфейсы коллекций и любые правильно устроенные типы. В C# 13 к этому добавили params-коллекции: теперь params может быть не только массивом, а почти любой поддерживаемой коллекцией, включая спаны и неизменяемые контейнеры.

Читать далее

Паттерн Saga через MassTransit. Оркестрация vs Хореография

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели7.3K

Сегодня многие разработчики активно используют архитектуру микросервисов. Идея кажется простой: разбить приложение на небольшие независимые сервисы и соединить их между собой. На словах всё звучит логично, но на практике появляются сложности - особенно когда нужно управлять распределёнными транзакциями.

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

В этой статье мы разберём Saga с нуля, простыми словами и на понятных примерах. Материал подойдёт как для первого знакомства с темой, так и в качестве пошагового гайда по её реализации в C#. Мы рассмотрим два основных подхода — хореографию и оркестрацию, разберём, чем они отличаются, и в каких случаях что выбрать.

Читать далее