Vcpkg

Ещё одна короткая статья о маленьком счастье программиста. Любой C++ разработчик под Windows может рассказать, какой головной болью оборачивается установка и настройка Boost. Это настолько ужасный процесс, что некоторые разработчики зачастую собирали некую версию и сидели на ней, пока не произойдёт что-то колоссальное.

Vcpkg

Another short article about little developers happiness. Any windows C++ developer can tell you, what a big headache setting up the Boost libraries is. It was so dreadful that some engineers used to build some version and stick with it until something extraordinary happens.

Предпочитайте статические методы классов

Давно не виделись, как-то забегался и не мог найти время написать. Давайте начнем разговор о небольшой вещи, а потом пойдут более серьезные статьи. Тем более, переезд на GitHub Pages это отличный повод попробовать что-то новое. В приложениях реального времени счет зачастую идет на микросекунды. На практике это означает, что горячий путь программы должен быть максимально оптимизирован, вплоть до написания на ассемблере. Допустим, у нас есть класс, который содержит некоторые поля с данными и методы. Вдобавок, один из методов прекрасно работает без доступа к внутренним данным объекта:

Prefer static class members

Long time no see. Let us talk about one minor thing just to keep going. In real-time applications often, it is the matter of microseconds. In practice, a hot path should be optimized as well as possible, often rewritten in assembly. For example, we have a class that encapsulates some data and has some methods. In addition, one of the methods works perfectly fine without accessing the internal data:

Автоматизированная сборка C++ проектов в Gitlab CI

Для начала: GitLab это git-сервис с открытым исходным кодом. Около года назад, когда я спросил о наличии каких-либо развёрнутых систем контроля версий, админы дали мне доступ к нашему серверу git. Достаточно долго я использовал лишь малую часть его возможностей, в основном просто push, чтобы сохранить проделанную работу. Однако, этому было суждено измениться. Сейчас я работаю над достаточно сложным проектом, который включает в себя несколько типов программных продуктов (программы для DSP и ARM, API, графическое приложение), которые в свою очередь требуют множество сред и тулчейнов для сборки. И после того как пришлось ждать три часа, пока скачается и установится Qt (привет корпоративным прокси!), я решил, что было бы здорово настроить build-сервер, который бы при каждом новом коммите стягивал последние исходники и собирал их. Беглое гугление рассказало про Jenkins, но в тот день мне было лениво его настраивать. Позднее в тот же день я зашел в веб-интерфейс нашего git и один пункт меню приковал моё внимание: “Builds”. Если не вдаваться в детали, это интегрированный планировщик задач, который запускается при каждом новом коммите (а так же merge request).

Pagination


© 2022. All rights reserved.

Powered by Hydejack v9.2.1