Как стать автором
Обновить
95.82

C++ *

Типизированный язык программирования

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

60 антипаттернов для С++ программиста, часть 3 (совет 11 — 15)

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 508
Блог компании PVS-Studio C *C++ *Программирование *Совершенный код *

1053_60_cpp_antipatterns_ru/image2.png


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

Читать дальше →
Рейтинг 0
Комментарии 0

Новости

Пишем свой игровой движок.Часть 1 — WinApi и Directx

Время на прочтение 5 мин
Количество просмотров 2.5K
C++ *
Из песочницы

Всем привет!

Давно хотели создать свой движок но не знаете как? Я вам расскажу! Сегодня сделаем инициализацию d3d и окно WinApi.

Итак, нам надо установить Visual studio 2022 с Windows SDK.

Читать далее
Всего голосов 14: ↑10 и ↓4 +6
Комментарии 17

С++ как скриптовый язык на примере простой игры

Время на прочтение 4 мин
Количество просмотров 2.9K
Блог компании Издательский дом «Питер» C++ *Разработка игр *API *
Перевод
Однажды я написал игру-паззл Blockdown (страница на Steam). Она интересна тем, что у неё свой собственный игровой движок. Filament берёт на себя всю сложную работу, связанную с графикой, поэтому игра не требует значительных усилий со стороны художника. Игровой физики здесь также считай нет. На самом деле, отсутствие гравитации здесь играет очень важную роль, поскольку игрок перекатывает плитки, которые могут принимать всевозможные варианты ориентации:

image
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 1

60 антипаттернов для С++ программиста, часть 2 (совет 6 — 10)

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 3.1K
Блог компании PVS-Studio Программирование *Совершенный код *C++ *C *

1053_60_cpp_antipatterns_ru/image2.png


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

Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 16

Истории

60 антипаттернов для С++ программиста, часть 1 (совет 1 — 5)

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 4.7K
Блог компании PVS-Studio Программирование *Совершенный код *C++ *C *

1053_60_cpp_antipatterns_ru/image2.png


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

Читать дальше →
Всего голосов 25: ↑19 и ↓6 +13
Комментарии 44

Шутер «Проект Кощей», разработка игр на SFML C++

Время на прочтение 16 мин
Количество просмотров 5.7K
Программирование *C++ *Разработка игр *
Обзор

Предыдущая тема

Шутеры — это один из самых популярных жанров видеоигр, который появился в начале 90-х годов. Первые шутеры были созданы для персональных компьютеров и имели простейшую графику и управление. Однако, они были невероятно популярны, и в скором времени стали самыми продаваемыми играми.

Читать далее
Всего голосов 18: ↑15 и ↓3 +12
Комментарии 4

Из серии: заглянем под капот clang-e2k/llvm-e2k из штатного дистрибутива для Эльбруса

Время на прочтение 12 мин
Количество просмотров 3.6K
Программирование *C++ *Компиляторы *C *Процессоры
Из песочницы

Тема непосредственно самого процессора Эльбрус уже достаточно хорошо раскрыта в различных статьях, в том числе, в статьях, опубликованных на habr.ru. Кроме самого процессора Эльбрус время от времени на просторах рунета можно встретить обсуждения, посвященные вопросу портирования компилятора clang/llvm на Эльбрус. Пожалуй, данная тема еще не получала подробного освещения. Данная заметка призвана заполнить этот «пробел».

Если вкратце, то llvm из e2k-дистрибутива портируется на базе оптимизирующего компилятора LCC. Ну а тем, кому нужно больше подробностей, то добро пожаловать «под кат».

Читать далее
Всего голосов 26: ↑26 и ↓0 +26
Комментарии 9

Три очень практичные фичи C++23

Время на прочтение 5 мин
Количество просмотров 4.6K
Блог компании OTUS C++ *
Перевод

C++23 — это текущая рабочая версия стандарта C++. На момент написания статьи туда пока не было включено ни одной крупной фичи, но ряд небольших нововведений, а также множество отчетов о дефектах уже утверждены в стандарте. Вы можете посмотреть текущий статус и поддержку компиляторами новых фич здесь. Многие из этих нововведений представляют из себя небольшие улучшения и вещи, которыми вы, вероятно, не будете пользоваться на регулярной основе. Однако сегодня я хочу обратить ваше внимание на три новые фичи C++23, которые, на мой взгляд, выделяются на фоне остальных именно тем, насколько часто они будут встречаться в нашем коде.

Читать далее
Всего голосов 26: ↑23 и ↓3 +20
Комментарии 26

MIDI chiptune + envelope

Уровень сложности Средний
Время на прочтение 18 мин
Количество просмотров 1.4K
C++ *Разработка под Arduino *DIY или Сделай сам Звук Электроника для начинающих

Продолжаем добавлять функциональность к музыкальному MIDI-синтезатору на двух чипах AY-3-8910 с помощью генератора огибающей.

Читать далее
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 0

Что нам не нравится в C++

Время на прочтение 6 мин
Количество просмотров 11K
Блог компании OTUS C++ *
Перевод

Результаты ежегодного опроса Annual C++ Developer Survey "Lite" за 2023 год наконец опубликованы, и мы можем почерпнуть из них ценную информацию об опыте C++ разработчиков. Одной из самых интересных целей этого опроса является выявление ряда болевых точек, с которыми приходится иметь дело C++ разработчикам.

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

Читать далее
Всего голосов 21: ↑14 и ↓7 +7
Комментарии 8

Что такое COM объект, как происходит его разработка, какие особенности реализации COM Microsoft?

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 4.4K
Habr Программирование *C++ *Visual Studio *ООП *
Мнение

Что такое COM объект, как происходит его разработка, какие особенности реализации COM Microsoft?

Мне попался на глаза такой вопрос:

Всем добрый день. Хотел бы получить краткие и понятные для новичка ответы на следующие вопросы:

1) Что такое COM объект?

2) Как происходит разработка COM объекта?

3) Какие особенности реализации COM Microsoft?

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

Предлагаю свой развернутый ответ. Интересно получить оценку сообщества профессионалов. Надеюсь и для новичков найдется что-то полезное.

Читать далее
Всего голосов 10: ↑2 и ↓8 -6
Комментарии 44

Многопоточность и Thread Pool в C++

Уровень сложности Простой
Время на прочтение 18 мин
Количество просмотров 6.2K
Программирование *C++ *Процессоры
Из песочницы

Привет, Хабр! Я неожиданно созрел для написания первой статьи тут. За время работы в сфере IT у меня появилась своя собственная библиотека на языке C++, которая медленно, но верно обрастает различными полезными модулями. Не все включаемые в нее модули написаны мною с нуля, но я всегда стараюсь так или иначе адаптировать их под свои нужды. Сегодня у меня появилось непреодолимое желание поделиться с вами некоторыми фрагментами моей библиотеки.

Читать далее
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 11

Монадическая композиция Expected в C++

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 2.3K
Habr Программирование *C++ *Изучение языков

Продолжение статьи На грани между exceptions и std::expected.

Здесь речь пойдёт о трюке, который ещё больше имитирует код под исключениями C++ (а так же в какой-то степени уподобляется некоторым функциональным языкам). Реализован такой трюк будет при помощи описанного в предыдущей статье типа Expected и использования монадической композиции с сопрограммами.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 2

[По полочкам] Алгоритмы сортировок. Часть 1

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 6.3K
C++ *Алгоритмы *
Из песочницы

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

В этой статье рассматриваются следующие сортировки: сортировка обменами, сортировка выбором, сортировка пузырьком, сортировка вставками.

Читать далее
Всего голосов 22: ↑17 и ↓5 +12
Комментарии 44

Программирование паяльником, пыльное железо и тонны легаси? Как на самом деле устроена разработка ПО в телекоме

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 4.4K
Блог компании YADRO Программирование *C++ *Разработка систем связи *Карьера в IT-индустрии
Мнение

Хабр, привет! Недавно я спросил нескольких коллег — вчерашних студентов, как они представляли себе разработку в телекоме до того как пришли в эту сферу. Их ответы были очень далеки от реальности. Многие считали, что разработка в телекоме — это возня со старым пыльным железом на чердаках и в подвалах. Внедрять новые и современные решения невозможно из-за тонн легаси, в сторону которого все боятся даже дышать. А большинство коллег — бородатые деды, которые программируют паяльником и строго следуют парадигме каскадной разработки. Да и задачки в целом довольно скучные: перекладываешь байты — и, в общем-то, больше ничего не происходит. Нечего будет рассказать внукам, когда сам станешь бородатым дедом.

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

Читать далее
Всего голосов 24: ↑23 и ↓1 +22
Комментарии 9

На грани между exceptions и std::expected

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 3.7K
C++ *
Мнение

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

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 17

userver — что мы узнали за полгода в open-source

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 14K
Блог компании Яндекс Open source *C++ *Проектирование и рефакторинг *Управление разработкой *
Кейс
image
Прошло больше полугода с момента выхода фреймворка для C++ 🐙 userver в open-source. За это время мы многое узнали, на многом настрадались, а главное — получили много приятных сюрпризов.

И мы решили об этом написать. Рассказ будет полезен тем, кто ведёт или планирует вести свой open-source проект или занимается контрибьютами. Остальным будет интересно почитать про чужое набивание шишек и что вообще open-source даёт проекту.
Читать дальше →
Всего голосов 66: ↑65 и ↓1 +64
Комментарии 28

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 5.5K
Блог компании Timeweb Cloud Java *C++ *Разработка под Android *Разработка под Linux *
Ретроспектива
image

К сожалению, в наше время многие старые, но весьма неплохие по характеристикам гаджеты отправляются напрямую в помойку, и их владельцы не подозревают, что им можно найти применение. Сервер, мультимедийная-станция, да даже просто как TV-приставка — люди в упор не замечают сфер, где старенький планшет мог бы быть полезен. Но как быть, если посвящаешь жизнь портативным гаджетам, кодингу и копанию в железе? Правильно: сделать довольно мощную игровую консоль из старого планшета самому! Сегодня вам расскажу, как я сделал свою портативную приставку из планшета с нерабочим тачскрином, Raspberry Pi Pico и 8 кнопок! За рабочим результатом прячется несколько дней работы: поиск UART на плате, разработка контроллера геймпада на базе RPi Pico, написание приложения-сервиса, которое слушает события и отправляет их в подсистему ввода Linux в обход Android. Интересно? Тогда жду вас под катом!
Читать дальше →
Всего голосов 39: ↑39 и ↓0 +39
Комментарии 20

Blur Behind: История провалов на разных ОС

Время на прочтение 21 мин
Количество просмотров 4.7K
Блог компании VK C++ *Qt *


Привет, Хабр! Меня зовут Михаил Полукаров, я занимаюсь разработкой Desktop-версии корпоративного супераппа в команде VK Teams. Я уже писал на Хабр две статьи про использование масок, создание сложных многослойных и полупрозрачных окон и о своем опыте реализации красивых спецэффектов с использованием Qt Framework: вот первая и вторая. По просьбам читателей я решил закончить этот небольшой цикл статей описанием неудач, с которыми мне пришлось столкнуться при реализации спецэффекта Blur Behind для разных ОС.
Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 4

Подвох с указателями на Default Subobject

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 1.6K
C++ *Разработка игр *Отладка *Unreal Engine *
Кейс

Пожалуй, любой С++ разработчик на Unreal Engine имел дело с созданием Default Subobject в конструкторе. Через этот механизм, в частности, создаются компоненты по-умолчанию для акторов. Казалось бы, какие нюансы могут быть связаны с использованием такого стандартного функционала?

Между тем, они есть. И если их не учитывать - можно получить весьма странные проблемы.

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 3

Вклад авторов

Работа

QT разработчик
15 вакансий
Программист C++
160 вакансий