C++ до сих пор живет по двум логикам: старой, где многое собирали вручную, и новой, где стандарт уже закрыл большую часть типовых задач.
Что это значит на практике:
— до C++11 умные указатели, move-семантика, constexpr и концепты приходилось имитировать шаблонами и перегрузками;
— поэтому в легаси-коде встречаются решения, которые выглядят странно, но были оптимальны для своего времени;
— в играх и движках такие подходы все еще держатся, потому что там абстракции постоянно сравнивают с профилировщиком.
Главный сигнал для команды: старые идиомы C++ нельзя оценивать только по современным меркам. Если код появился до C++11, он мог быть не «костылем», а лучшим доступным способом избежать лишних копий, аллокаций и ошибок владения.
Что проверять в кабинете кода:
1) где ручное управление памятью уже можно заменить на стандартные механизмы;
2) какие шаблонные трюки нужны из-за ограничений старого стандарта;
3) что оставлено ради производительности, а что — просто по инерции.
Для ecom-команд это хороший маркер: в любом большом продукте важно отличать технический долг от осознанной оптимизации.
Seller Brief
@SellerBriefPro
C++ до сих пор живет по двум логикам: старой, где многое собирали вручную, и новой, где стандарт уже закрыл бо
Этот пост опубликован в Telegram-канале Seller Brief. Подписаться можно по ссылке: @SellerBriefPro.