C++ разработчики, приходите на Weekend Offer в VK. За выходные, 28 и 29 мая, вы сможете попасть на все собеседования онлайн, познакомиться с командами — и, возможно, получить оффер.
Регистрируйтесь: vk.com/cppoffer.
C++ разработчики, приходите на Weekend Offer в VK. За выходные, 28 и 29 мая, вы сможете попасть на все собеседования онлайн, познакомиться с командами — и, возможно, получить оффер.
Регистрируйтесь: vk.com/cppoffer.
Количество багов в нашей коллекции перевалило за отметку 15000. Именно такое количество ошибок обнаружила команда PVS-Studio в различных открытых проектах. Особенно интересно, что это всего лишь побочный результат от написания статей.
Вышел релиз BitTorrent-клиента Transmission 4.0.0, который перевели с языка C на С++. Код распространяется под лицензиями GPLv2 и GPLv3.
Относительно популярный проект, с 2012 года, изначальный репозиторий имеет 1к+ звезд. Сначала был на Java, потом, перформанса ради, переписали на C++. Жалко если пропадет. Его можно и без Evernote использовать - хранить заметки локально. А еще CLI есть.
У проекта в разные годы было несколько разработчиков, вот сейчас вакантное место.
Найти конференцию по душе — ещё та задачка. Возможно, многие знакомы с ситуацией: роешься в куче сайтов, зависаешь в поисковике и тематических сообществах. Приходится держать в закладках кучу источников, куда хаотично публикуют анонсы событий. Поэтому команда PVS-Studio запустила на сайте агрегатор событий для разработчиков.
Агентство национальной безопасности США выпустило отчёт, в котором указало на то, что широко используемые языки программирования C и C++ дают хакерам больше возможностей для использования эксплойтов. В связи с этим эксперты АНБ рекомендуют переходить на более безопасные языки.
Открыт исходный код движка от игры 2010 года - "Приключения капитана Блада".
Компания МойОфис впервые проведет ускоренный найм С++ разработчиков в ключевые команды. Мероприятие пройдет 17 июня 2023 года с 09:00 до 23:59 по московскому времени в онлайн-формате.
В течение одного дня соискатели смогут познакомиться с представителями ИТ-команды МойОфис, узнать о действующих проектах и планах и получить предложение о работе в лидирующей продуктовой российской компании в день интервью. Среди основных требований к кандидатам — опыт работы более 3 лет, хорошее знание С++ 11/14, STL, Boost, QT и технический английский. Сотрудников нанимают в команды разработки ядра продуктов, десктоп- и мобильных приложений.
Принять участие в One day offer могут ИТ-специалисты из любого региона России — работать в компании можно в гибридном / удаленном формате. МойОфис помогает с релокацией и предоставляет все необходимые для работы условия и технику.
Любому программисту знакомо понятие "ссылка". Под этим термином обычно понимают небольшой объект, главная задача которого обеспечить доступ к другому объекту, физически расположенному в другом месте. Из-за этого ссылки удобно использовать, они легко копируются, и с их помощью очень просто получить доступ к объекту, на который эта ссылка ссылается и можно получить доступ к одним и тем же данным из разных мест программы.
К сожалению ссылки, точнее ручное управление памятью, является наиболее частой причиной возникновения различных ошибок и уязвимостей в программном обеспечении. А все попытки автоматического управления памятью с помощью различных менеджеров упираются в необходимость контролировать создание и удаление объектов, а так же периодически запускать сборщик мусора, что отнюдь не положительно сказывается на производительности приложений.
Тем не менее, ссылки в той или иной форме поддерживаются во всех языках программирования, хотя под этим термином часто подразумеваются не полностью эквивалентные термины. Например, под словом "ссылка" можно понимать ссылку как адрес в памяти (как в С++) и ссылку, как указатель на объект (как в Python или Java).
Хотя встречаются языки программирования, которые пытаются решать данные проблемы за счет концепции "владения" (Rust, Аргентум или NewLang). О возможном решении этих, и других имеющихся проблем со ссылками далее и пойдет речь.
В МойОфис мы создаем ПО для корпоративного пользования, и одни из ключевых продуктов нашей линейки — редакторы документов «МойОфис Текст» и «МойОфис Таблица». Эти приложения представлены на всех популярных платформах, включая мобильные устройства. Они позволяют создавать, изменять, просматривать текстовые и табличные документы различных форматов, а также совместно работать над ними в веб-версии редакторов.
Сегодня мы расскажем об общем технологическом устройстве редакторов МойОфис, с акцентом на их центральный элемент: ядро, написанное на C++. Именно ядро обеспечивает основную функциональность приложений и даёт нам возможность эффективно унифицировать её для разных платформ.
О том, что представляет собой ядро наших редакторов, принципах его работы, преимуществах и специфике, читайте под катом.
Всем привет!
Пришла, значит, мне в голову идея - сделать свою игру по типу Vampire Survivors и Brotato, а потом я подумал, что можно еще и цикл статей написать про то, как я ее разрабатываю, вдруг кому-то это покажется полезным (ну или хотя бы смешным).
Ну, собственно, вот - первая часть. В ней я покажу, как я создал персонажа и научил его бегать.
Привет, Хабр!
Сегодня я хочу поговорить о двух правилах С++: правиле трех и правиле пяти.
Правильное понимание этих правил способно уберечь код от утечек и неопределенных поведений.
Приветствую тебя! Меня зовут Дмитрий и я работаю в LAD.
Сегодня я поведаю историю о том, как эволюционировал скидочный сервис одного из наших проектов. Пройдя путь от всеми нелюбимого, "тормозящего" сервиса, до сервиса,
который имеет наилучшие показатели на недельных графиках SLA.
Привет, Хабр!
CRTP — это метод в C++, при котором класс наследуется от шаблона класса, используя себя в качестве параметра шаблона. Это выглядит примерно так: класс X
наследуется от класса-шаблона Y<X>
. Этот паттерн позволяет базовому классу напрямую обращаться к методам производного класса. С помощью CRTP можно можно обогатить интерфейс производного класса, внеся в него дополнительные методы через базовый класс-шаблон.
С CRTP также можно достигнуть полиморфизма во время компиляции и таким образом избваиться от затрат на производительность, связанных с динамическим полиморфизмом и виртуальными функциями.
Как часто вам приходится сталкиваться с конструкцией sizeof(array)/sizeof(array[0]) для определения размера массива? Очень надеюсь, что не часто, ведь на дворе уже 2024 год. В заметке поговорим о недостатках конструкции, откуда она берётся в современном коде и как от неё наконец избавиться.
Асинхронность... Как много в слове этом! Асинхронность считается одной из сложных тем программирования вообще. Не все просто в этом вопросе. В интернете периодически появляются различные статьи, туториалы по тем или иным вопросам асинхронности. Из последнего дельной статьей я считаю вот этот материал. Собственно, эта статья и послужила последней каплей, переполнившей моё терпение. Мною сделана попытка взглянуть на асинхронность, проблемы и сложности, связанные с ней, совершенно под другим углом. Выводы, я бы сказал, напрашиваются весьма радикальные. Итак, поехали!
В марте мы собирались на митапе по С++ в Санкт-Петербурге. Для всех, кто не смог присоединиться к встрече, подготовили записи докладов и дискуссии с экспертами из YADRO, VK и Kaspersky, а также создателем Sphinx Андреем Аксёновым. Почему стоит сохранить подборку в закладки:
• Руководитель отдела компиляторов научит рассчитывать цену абстракции для функций и других сущностей с учетом ваших ресурсов и возможностей компилятора.
• Эксперт из PVS-Studio покажет, почему линтеры не всегда подходят для поиска ошибок и какое решение использовать вместо них, чтобы не навредить безопасности сервиса.
• Инженеры с многолетним опытом работы на С++ поделятся опытом проведения код-ревью — возможно, вы найдете в их практиках что-то полезное или просто посмеетесь вместе с участниками дискуссии.