RU

BitRank: Битовая система ранжирования на C++20

В этой статье рассмотрим создание легковесной, типобезопасной библиотеки для ранжирования объектов по множеству критериев с использованием битовых м…

шаблоныбитовые маскиранжированиефильтрацияметапрограммирование
Habr
RU

Отрежьте мне миллиард символов: как C++20, string_view и шаблонный ад могут скрывать баг годами

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

templatesшаблоны c++метапрограммированиеc++c++20
Habr
RU

Шаблоны C++ как инструмент архитектуры: compile-time dispatch, type traits и type erasure

Всех приветствую! Я неоднократно встречал разработчиков, которые говорили, что метапрограммирование — это моветон, а шаблоны только усложняют код. Я…

шаблоны c++метапрограммированиешаблоныc++c++20type erasure
Habr
RU

Как я ускорил dependency injection в Python в 130 раз: от рефлексии до компиляции графа

«Контейнер для DI — это лишний оверхед, передай зависимость руками и не выдумывай». Я тоже так считал, пока не замерил: наивный контейнер резолвил т…

pythonоптимизация производительностипрофилированиеdependency injectionметапрограммированиекодогенерациябенчмаркcpython
Habr
RU

Bad Apple через CSS: как заставить браузер страдать без единой строчки JavaScript

Есть проекты, которые рождаются не из практической необходимости, а из глубоко нездорового вопроса: а можно ли сделать это совсем не тем инструменто…

Ненормальное программированиеJS-freeCSSc++26bad appleметапрограммированиеtimeweb_статьи
Habr
RU

Полный гайд по dunder-методам в Python (от новичка до профи)

В Python всё — объект. Но как язык понимает, что делать при сложении двух классов через +, вызове len() или обращении к несуществующему атрибуту? Вс…

ythonООПdunder-методымагические методыметапрограммированиедескрипторыитераторыгенераторыконтекстные менеджерыPython 3