Ответ
Программист должен постоянно улучшать код, над которым работает. Это не только написание новой функциональности, но и забота о существующей кодовой базе. В моей практике на C++ это включает несколько аспектов:
-
Рефакторинг для ясности и поддерживаемости. Например, замена "магических чисел" на именованные константы, выделение сложных фрагментов в отдельные функции с понятными именами, упрощение запутанных условных конструкций.
// Было if (status == 0 || status == 1 || status == 3) { ... } // Стало bool isTerminalState(Status s) { return s == Status::Success || s == Status::Failed || s == Status::Cancelled; } if (isTerminalState(currentStatus)) { ... } -
Оптимизация производительности там, где это необходимо и обосновано. Это не преждевременная оптимизация, а анализ узких мест (профайлинг) и их устранение: выбор более подходящих структур данных (например,
std::unordered_mapвместоstd::mapдля частого поиска), минимизация копирования (использование семантики перемещения,std::string_view), обеспечение кэш-дружественности доступа к памяти. -
Обеспечение надёжности. Написание модульных и интеграционных тестов (с помощью Google Test, Catch2), обработка ошибок, использование умных указателей (
std::unique_ptr,std::shared_ptr) для автоматического управления памятью и предотвращения утечек.// Вместо сырого указателя void riskyFunction() { int* raw_ptr = new int[100]; // ... если здесь выбросится исключение, будет утечка ... delete[] raw_ptr; } // С умным указателем void safeFunction() { auto smart_ptr = std::make_unique<int[]>(100); // Память будет освобождена автоматически при выходе из функции, даже при исключении } -
Документирование сложных решений. Не каждый строки, а нетривиальных алгоритмов, инвариантов классов или причин выбора конкретной реализации. Хороший код в значительной степени самодокументируем, но для сложных моментов я добавляю комментарии в формате Doxygen.
Для меня это цикл: написать, протестировать, измерить, понять, улучшить. Цель — чтобы код через полгода было так же легко читать и изменять, как и сегодня.