Разработка игр на NeoAxis Engine 2020: Часть 1
Поэтому я решил сделать на нем пару игр. А начать с самого простого — с шутера. Ну и заодно объяснить, как делаются игры на этом замечательном движке.
Объектно-ориентированный язык программирования
Есть бесконечное количество способов ошибиться при написании кода. Однако иногда можно заметить явные интересные закономерности, как и где ошибаются программисты. Поговорим о коде, который "притягивает" опечатки.
С целью тестирования и продвижения статического анализатора кода PVS-Studio мы проверяем различные открытые проекты. Найдя ошибки, мы сообщаем о них авторам проектов, коллекционируем их и пишем статьи про наиболее интересные случаи.
Рассматривая все эти ошибки, я постепенно замечаю различные повторяющиеся паттерны опечаток. За редким исключением они не зависят от языка программирования. По крайней мере, они одновременно свойственны коду, написанному на C, C++, C#, Java. В этой статье я опишу 7 паттернов, которые заметил к настоящему моменту:
Заметность закономерностей в ошибках свидетельствует о том, что они крайне распространены. Полезно знать о них, чтобы избегать написания потенциально опасного кода или более эффективно находить их в процессе обзоров кода. Другим словами, вы узнаете, какой код притягивает ошибки, и будете более внимательно его проверять. Конечно, PVS-Studio способен выявить многие подобные ошибки, но не все. Поэтому дополнительное внимание не повредит.
Приветствую, товарищи-программисты!
Материалы по разработке Telegram ботов на C# начинают потихоньку устаревать, новой информации я не нашел, поэтому решил написать свою статью.
В своей статье я написал простенького Telegram бота для обучения и использования его основы в ваших будущих проектах. А как я сделал, смотрите в моей статье!
Прочитав эту статью до конца вы поймете какими навыками вам нужно обладать для того, что бы стать smart-contract разработчиком!
В конце статьи прикреплен Solidity developer roadmap.
В новой публикации мы исследуем сферу магии кода и низкоуровневого программирования. Перед вами увлекательная история, как я смог обрести контроль над рабочим столом, используя лишь небольшие фрагменты C# кода. Вам будет интересно узнать, как я смог покорить мир обоев и сделать их подчиненными волшебства. Не упустите шанс окунуться в мир горячих клавиш и таинственных сообщений Windows API.
В этой истории о магической мощи программирования мы расскажем, как открываются двери к возможностям, о которых вы даже не подозревали. Узнаете ли вы, что стоит за командами, вдохновленными Ctrl+Alt+B и Shift+C? Все это и многое другое ждет вас внутри. Следите за нашим путешествием сквозь замысловатые лабиринты кода и давайте волшебству свободу! ✨
Зачастую, разработка сложных пользовательских интерфейсов приводит к появлению словарей, енамов, состояний интерфейса, чтобы грамотно следить за тем что происходит. Однако, иногда это может противоречить идеологии, что интерфейс должен лишь отображать состояние, не изменяя его.
Для систематизации работы интерфейса предлагается заимствовать опыт из веб разработки.
Всем привет! Меня зовут Валерия, я Backend-разработчик компании Bimeister. В этой статье я хочу вам рассказать про наш опыт работы с обменом данных через MassTransit.
Рано или поздно многие проекты сталкиваются с задачей обмена сообщениями. Часто сообщениями должны обмениваться элементы распределенных систем, использующих разные подходы и технологии. В современных системах для решения данной задачи, как правило, используются шины сообщений, позволяющие абстрагировать работу с сообщениями для различных компонентов системы. Поэтому, когда перед нами стала задача реализации такого подхода с нуля, за нами оставался только выбор подходящего решения. Мы решили поделиться этой базовой реализацией и описать начало работы с шиной сообщений на платформе .NET Core.
Делая свой очередной пет-проект подумал, что мне нужна конкурентная очередь с приоритетами. Оказалось она была не нужна, но желание ее реализовать никуда не ушло.
Проведя небольшой поиск, нашел несколько научных статей с конкурентной реализацией и выбрал одну в качестве образцовой.
Потратив время и нервы на ее понимание и реализацию, был отрицательно удивлен результату: ее производительность хуже чем глобальная блокировка на всю структуру данных.
Здесь описал свою реализацию и сделал сравнение с блокирующей реализацией.
Критика (даже не конструктивная) приветствуется.
Если вы готовитесь к собеседованию и гуглите список вопросов для кандидата на C# разработчика, то сто процентов один из вопросов будет о сборщике мусора. На собеседованиях этот вопрос действительно частенько задают, но как только они заканчиваются, магическим образом все знания улетучиваются, прямо как после экзамена. Долгое время я не понимал, зачем мне нужно знать как именно работает сборщик мусора, ну собирает он как-то мусор, ну и пусть собирает дальше.
Так я думал пока я не столкнулся с проблемами потребления памяти. Сегодня я хочу рассказать об одной из таких проблем, связанных с неуправляемой памятью.
В этой статье я расскажу, как реализовать бесконечный ListView c изображениями.
Для реализации задуманного будем использовать Unity UI Toolkit в паре с UnityMvvmToolkit. Я уже писал про UnityMvvmToolkit статью вот здесь. С тех пор API притерпел значительные изменения, а точнее, произведен переход на реактивные свойства, плюс появилась поддержка генераторов исходного кода...
Добро пожаловать в мир инновационных подходов к тестированию программного обеспечения! В данной статье я хочу поделиться своим опытом использования ChatGPT — мощной модели искусственного интеллекта — для написания Unit‑тестов.
Так начал статью ИИ по моей просьбе составить вступление к эссе о том, как использовать ChatGPT при написании Unit‑тестов. Видимо, все‑таки придется писать самому, ибо градус пафоса зашкаливает, а высокопарность вызывает испанский стыд.
В этой статье я расскажу о своих наблюдениях и размышлениях при написании Unit‑тестов с помощью ChatGPT. Я рассмотрю, как использовать ChatGPT для генерации тестовых сценариев, формулировки вопросов о правильности кода, создания заглушек (moq).
Для начала давайте вспомним, что такое Unit‑тесты.
Unit‑тестирование является фундаментальным инструментом в разработке программного обеспечения, который помогает обнаруживать ошибки и улучшать качество кода. Однако, написание Unit‑тестов может быть трудоемким процессом, особенно когда приходится создавать множество тестовых сценариев для различных частей кода.
При построении запроса для написания Unit‑тестов следует учитывать несколько основных принципов, которые обеспечат эффективность и качество ваших тестов. Вот некоторые из них:
MassTransit — Open Source платформа распределённых приложений для .NET. В этой статье мы расскажем о проблемных местах в коде проекта. С поиском таких мест нам поможет статический анализатор. Приятного чтения :).
Привет, Хабр!
Около трёх месяцев назад, я и мой друг - начинающие .NET разработчики, решили разработать свои виджеты на рабочий стол Windows, так как официальных нормальных виджетов нет (те что в Windows 11 не считаются). Недавно мы выпустили наш проект в релиз, пока что есть 2 виджета (Погода и Заметки), но вскоре их может быть больше! Проект называется Fancy Widgets и мы хотим поделиться им с вами. Вы можете попробовать наши виджеты, скачав их с нашего сайта https://fancy-widgets.onrender.com. Это наш pet-проект и поэтому он ни на что не претендует, мы просто делали его для себя и для удовольствия. Но мы будем рады услышать ваше мнение и предложения по улучшению нашего продукта. Вы можете оставить свои комментарии под этой статьей или написать нам на нашу почту fancy.widgets.help@gmail.com. Цель этой статьи - вкратце рассказать о нашем проекте и о сложностях, которые возникли у нас при разработке. Мы надеемся, что вы найдете нашу статью интересной и полезной. Приятного чтения! ?
Не так давно опубликовал статью об экспресс-создании бота для Telegram на фреймворке SKitLs.Bots.Telegram. С тех пор внутренний состав фреймворка солидно изменился, вместе с тем были выпущены предварительные версии *.BotProcesses и *.DataBases и вторая версия ядра фреймворка.
В этой статье я бы хотел дать более детальный взгляд на возможности фреймворка, а также осветить новые возможности выпущенных расширений, в частности вариант реализации администрирования базы данных через клиент телеграма.
Иногда перед разработчиками встает задача использования JSON-полей в Entity Framework Core. Традиционный подход с использованием Fluent API требует написания дополнительного кода, что может усложнить проект. Пакет JsonProperty.EFCore решает эту проблему. Эта статья расскажет о пользе JsonProperty.EFCore и о том, как он упрощает работу с JSON-полями, что делает его удобным инструментом для разработчиков.
Разработчики на C# хорошо знакомы с термином "упаковка". Она может быть явной, а может быть незаметна. Например, к упаковке приводит сложение значимого типа со строкой. Или не приводит. Такая вот "упаковка Шрёдингера". В заметке попробуем разобраться с этой неопределённостью.
В данном материале рассматривается реализация телеграм-бота с помощью фреймворка SKitLs.Bots.Telegram, позволяющего абстрагироваться от однообразной if-else архитектуры и качественно перейти на новый, нелинейный, уровень архитектуры реализации ботов.
В качестве фундамента материала взята идея написание простого бота для отображения текущей погоды в указанном городе с помощью API сервисов Яндекса "Геокодер" и "Погода".
В данной статье я поведаю вам о том, как я делал известную и встроенную в браузере Google Chrome игру “Dino Runner” в стиле игр Nokia 3310 с использованием Windows Forms API на языке C#. Я расскажу, с какими трудностями столкнулся, как решал те или иные проблемы и так далее…
Сказ о том, как мы игру в команде делали
Меня зовут Юрий, недавно мне исполнилось 17 лет, и я программист. В основном делаю Windows Forms приложения (C#). С марта 2022 года я активно начал заниматься программированием, сначала на PascalABC.NET, а затем перешёл на C# в августе того же года...