Метка «c++» - 12

PVS-Studio and Open-Source
Подобная статья уже публиковалась на нашем сайте. Однако, количество проектов увеличивается, и, думаю, будет рационально раз в год обновлять список. Этим и займёмся.

Мы хорошо относимся к бесплатным open-source проектам. Мы стараемся уведомить авторов проектов о найденных недочётах и при необходимости предоставляем им на время лицензию.
Читать полностью »

О чем это

Доброго времени суток!

Я бы хотел рассказать о StubDb — библиотеке для быстрого прототипирования приложений и легкого юнит тестирования. Она позволяет заменять работу с реальной базой данных, на работу с данными хранимыми в памяти/файле. Это дает возможность сконцентрироваться на классах доменной модели, а не на особенностях хранения данных. StubDb использует принцип работы Entity Framework Code First, что делает удобным их совместное использование, но может использоваться отдельно.

Чтобы написать Data Persistence Layer, нужно затратить немало усилий. Работа с базой данных это — хлопотно: начиная от подключения и редактирования конфигов, и заканчивая написанием запросов. Раньше, пока ORM еще не были так популярны, много времени занимало написание однообразных SQL запросов. С развитием ORM, меньше времени тратится непосредственно на SQL, но вместо этого необходимо изучать особенности самих ORM фреймворков.

В теории все просто: программист работает с доменными объектами, изменения в них транслируются в базу данных легко и безболезненно. Но на практике особенности фреймворков часто вызывают недоумение и прострацию. Например, на данный момент на StackOverflow по ASP.NET MVC 77,852 вопросов, а по Entity Framework 33,276, меньше, но не значительно. А ведь в идеале EF должен просто незаметно делать свою работу.

Конечно, без БД не обойтись. Но когда приложение или новая фича находятся в начальной стадии проектирования и разработки, в БД нет необходимости. На этом этапе вполне достаточно: иметь доменную модель классов, хранить данные в этой модели вместе с взаимосвязями между отдельными классами (один к одному, многие ко многим), получать данные доменной модели, учитывая эти связи. StubDb реализует этот минимальный набор требований. Используя StubDb на начальном этапе разработки, можно избежать сложностей работы с БД и ORM, но при этом иметь возможность хранить данные в доменной модели и легко ее менять, не нарушая работоспособности приложения.
Читать полностью »

Часть 1: заготовка персонажа и анимация покоя
Часть 2: бегущий персонаж
Часть 3: прыжки (и падения)

Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.
Читать полностью »

Недавно наткнулся на замечательную статью, о том, как собрать все инструменты для разработки в среде linux под контроллеры stm32 и я решил вновь вернуться к задаче, которую уже пытался решить, а именно заставить работать все тоже самое по Mac OS X (В моем случае версии 10.9.1 Mavericks), так как работать в CooCox (а он основан именно на Eclipse) в виртуальной машине уже изрядно надоело. В данной статье я опишу пошаговый алгоритм как все тоже самое заставить работать в OS X.

Установка ST LINK V2 в MAC OS X для разработки под STM32

Итак, вы хотите разрабатывать на STM32 в среде Mac OS X, у вас есть ST-LINK V2 отдельно или на макетной плате, тогда добро пожаловать под кат.
Читать полностью »

Часть 1: заготовка персонажа и анимация покоя
Часть 2: бегущий персонаж

Всем привет. Продолжаем дело, начатое в первой части. Сейчас у нас есть платформа и стоящий на ней персонаж с анимацией покоя. Настало время научить нашего персонажа бегать вправо-влево по платформе.
Читать полностью »

Эта статья является продолжением статей:
Простейший кросcплатформенный сервер с поддержкой ssl
Кроссплатформенный https сервер с неблокирующими сокетами
В этих статьях я постепенно из простенького примера, входящего в состав OpenSSL стараюсь сделать полноценный однопоточный веб-сервер.
В предыдущей статье я «научил» сервер принимать соединение от одного клиента и отсылать обратно html страницу с заголовками запроса.
Сегодня я исправлю код сервера так, чтобы он мог обрабатывать соединения от произвольного количества клиентов в одном потоке.
Читать полностью »

в 9:53, , рубрики: .net, CRTP, метки: , ,

CRTP (Curiously recurring template pattern) — идиома, ведущая свои корни из C++. Суть CRTP заключается в наследовании от шаблонного (generic) класса, шаблонным параметром которого является сам класс-наследник.

В коде это выглядит достаточно просто:

public class Base<T> where T : Base<T>
{ /* ... */ }
public class Derived : Base<Derived>
{ /* ... */ }

Такой подход позволяет оперировать типом класса-наследника (T) в коде базового класса, например, явно приводить this к типу T.

Рассмотрим пару вариантов практического применения.
Читать полностью »

LibRaw and PVS-Studio
Прочитал заметку о проверке маленького проекта LibRaw с помощью Coverity SCAN. Из статьи следует, что ничего интересного не нашлось. Решил попробовать, сможет ли найти что-то анализатор PVS-Studio.
Читать полностью »

image

В статьях и интервью, посвященных созданию игр, довольно часто упоминается термин «искусственный интеллект» или ИИ. Как правило, подобные описания ограничиваются фразами вроде «реалистичный ИИ» или «продвинутый ИИ». Однако для симулятора, а именно об авиасимуляторе пойдет речь ниже, ИИ играет роль не меньшую, чем физическая модель самолета.

Читать полностью »

Яндекс открывает офис разработки в Берлине. Это уже 16-й офис компании в мире и третий в Западной Европе — первые два расположены в Цюрихе и Люцерне. Исторически в Яндексе разработка сервисов и технологий распределена по региональным офисам. Так, сервис Такси разрабатывается в Екатеринбурге, Недвижимость – в Петербурге, технологии распознавания речи — в Москве и Цюрихе.

Яндекс открывает офис в разработки Берлине

Сотрудники берлинского офиса займутся разработкой и исследованиями — при этом речь не идёт о сервисах для Германии. Первый проект связан с разработкой новой функциональности и технологий для мировых Яндекс.Карт: уже открыты вакансии для разработчиков С++. В перспективе в Берлине появятся команды и для других сервисов Яндекса.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js