
Указатели в C++: что нужно знать заранее
Первое знакомство с указателями обычно заканчивается segmentation fault и часом непонимания. Разбираем, что такое указатель на самом деле, как его объявить, разыменовать и не выстрелить себе в ногу.

Первое знакомство с указателями обычно заканчивается segmentation fault и часом непонимания. Разбираем, что такое указатель на самом деле, как его объявить, разыменовать и не выстрелить себе в ногу.

Невиртуальный деструктор, срезка объекта, ромбовидное наследование без virtual — четыре ошибки, из-за которых C++ течёт памятью и падает. Разбираем, почему так и как чинить.

За полчаса вы создадите первый класс на C++, разложите код по файлам .h и .cpp и скомпилируете рабочую программу. С чего начать и на чём спотыкаются новички.

Один и тот же параметр функции можно объявить пятью способами, и каждый диктует, сколько раз скопируется объект. Разбираем на примере std::string и std::vector, где копия стоит денег.

std::string, const char*, string_view — три способа работать с текстом в C++, и легко перепутать, кто владеет памятью. Разбираем ловушки, из-за которых программа падает или тихо портит данные.

Гонка данных в Go — это не просто флаг у race-детектора. Она диктует, как вы разбиваете код на горутины, где ставите границы владения данными и почему рефакторинг такой проблемы редко сводится к добавлению мьютекса.

К концу разбора вы объявите массив, заполните его, пройдёте циклом и поймёте, почему индексы начинаются с нуля и что происходит при выходе за границы. Займёт около получаса.

Горутина висит, пока не завершится или не вернётся из функции. Забытый канал, отменённый запрос без остановки фоновой работы — и число горутин растёт линейно с трафиком, пока сервис не съест память.

Как namespace в C++ спасает от конфликтов имён при линковке, почему using namespace std в заголовках — беда, и как всё это устроено в стандартах C++17 и C++20.

Сервис на Go рос по RSS с 200 МБ до 3 ГБ за сутки и падал по OOM. Разбираем, как pprof heap показал реальный источник и чем отличается «утечка» в Go от классической.

Сервис держит 40k RPS, но p99 плавает до 200 мс на ровном месте. Разбираем, как трассировка планировщика Go показывает, где горутины ждут вместо работы, и что с этим делать.

Профиль pprof показывает, куда ушло процессорное время, но легко читается неправильно. Разбираем, на что смотреть в профиле и какие выводы из него делать нельзя.