C/C++

rocksdb/

RocksDB — это встраиваемая база данных на основе LSM-tree с открытым исходным кодом (лицензция Apache 2.0) от компании Facebook. Является форком LevelDB, созданной в Google. В RocksDB устранены многие недостатки…

network-application-mistakes/

Очень многие программисты при написании сетевых приложений на C/C++ по неопытности допускают одни и те же ошибки. Даже несмотря на то, что эти ошибки, казалось бы, довольно известны. Поэтому сегодня…

cpp-json/

JSON используется очень много где. В частности, он нужен для написания REST-сервисов и REST-клиентов. Если какие-то объекты нужно сериализовывать и класть в какой-нибудь Redis , использовать в качестве сериализованного представления…

cpp-protobuf/

Некоторое время назад мы научились сериализовывать классы в языке C++ в формат JSON при помощи библиотеки RapidJSON . Формат JSON хорош тем, что он текстовый, а значит может быть прочитан…

cpp-gtest/

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

libevent/

Помните, как когда-то мы писали простой TCP-сервер на C , а потом разбирали типичные ошибки ? Описанный в этих статьях подход прекрасно работает, но только до тех пор, пока количество…

cpp-smart-pointers/

Благодаря наличию исключений, язык C++ позволяет разделить основную логику приложения и обработку ошибок, не мешая их в одну кучу. Что есть очень хорошо. Однако теперь по коду нельзя с уверенностью…

doxygen/

Программисты, как правило, не очень любят писать тесты . Но куда сильнее они не любят писать документацию. Тесты хотя бы представляют собой программы, а документация — это что? Просто текст. Вот…

debugging-trick/

Бывает так, что ошибка в коде воспроизводится лишь при определенном стечение обстоятельств. Эти обстоятельства могут быть довольно сложными, особенно если приложение распределенное и каждый его экземпляр состоит из N процессов.…

linux-character-device/

Недавно мы научились основам написания модулей ядра Linux . Впрочем, рассмотренные тогда примеры были совсем простые, можно даже сказать, что игрушечные. Сегодня мы напишем модуль поинтереснее. Он будет создавать в каталоге /dev символьное…

EnglishRussianUkrainian