✅ Чек-лист для Code Review
Code review — один из самых эффективных способов повышения качества кода. Составили чек-лист для
1. Архитектура и дизайн
• Соответствует ли код общей архитектуре проекта?
• Не нарушаются ли SOLID принципы?
• Правильно ли выбраны абстракции и интерфейсы?
2. Логика и корректность
• Корректно ли реализована бизнес-логика?
• Обрабатываются ли все edge cases?
• Нет ли off-by-one ошибок в циклах?
3. Безопасность кода
• Правильно ли управляется память?
• Нет ли потенциальных buffer overflow'ов?
• Корректно ли обрабатываются исключения?
4. Производительность
• Нет ли ненужных копирований объектов?
• Эффективны ли используемые алгоритмы?
• Правильно ли используются контейнеры STL?
5. Читаемость и поддерживаемость
• Понятны ли названия переменных и функций?
• Достаточно ли комментариев для сложной логики?
• Не слишком ли сложные функции (соблюдается ли SRP)?
6. Соответствие стандартам
• Следует ли код style guide проекта?
• Используются ли современные возможности C++?
• Корректно ли оформлены заголовочные файлы?
7. Тестирование
• Покрыт ли новый код unit тестами?
• Обновлены ли существующие тесты?
• Протестированы ли edge cases?
8. Документация
• Обновлена ли документация API?
• Есть ли примеры использования для новых функций?
• Актуальны ли комментарии в коде?
9. Обратная совместимость
• нарушается ли API существующих компонентов?
• Совместимы ли изменения с используемыми версиями библиотек?
10. Финальная проверка
• Проходят ли все автоматические тесты?
• Нет ли compiler warnings?
• Готов ли код к production?
Библиотека C/C++ разработчика #буст
Code review — один из самых эффективных способов повышения качества кода. Составили чек-лист для
reviewer'ов
и авторов PR.1. Архитектура и дизайн
• Соответствует ли код общей архитектуре проекта?
• Не нарушаются ли SOLID принципы?
• Правильно ли выбраны абстракции и интерфейсы?
2. Логика и корректность
• Корректно ли реализована бизнес-логика?
• Обрабатываются ли все edge cases?
• Нет ли off-by-one ошибок в циклах?
3. Безопасность кода
• Правильно ли управляется память?
• Нет ли потенциальных buffer overflow'ов?
• Корректно ли обрабатываются исключения?
4. Производительность
• Нет ли ненужных копирований объектов?
• Эффективны ли используемые алгоритмы?
• Правильно ли используются контейнеры STL?
5. Читаемость и поддерживаемость
• Понятны ли названия переменных и функций?
• Достаточно ли комментариев для сложной логики?
• Не слишком ли сложные функции (соблюдается ли SRP)?
6. Соответствие стандартам
• Следует ли код style guide проекта?
• Используются ли современные возможности C++?
• Корректно ли оформлены заголовочные файлы?
7. Тестирование
• Покрыт ли новый код unit тестами?
• Обновлены ли существующие тесты?
• Протестированы ли edge cases?
8. Документация
• Обновлена ли документация API?
• Есть ли примеры использования для новых функций?
• Актуальны ли комментарии в коде?
9. Обратная совместимость
• нарушается ли API существующих компонентов?
• Совместимы ли изменения с используемыми версиями библиотек?
10. Финальная проверка
• Проходят ли все автоматические тесты?
• Нет ли compiler warnings?
• Готов ли код к production?
Библиотека C/C++ разработчика #буст
🫣 Устали от HR-сказок про «дружный коллектив» и «печеньки в офисе»?
Давайте честно поговорим о том, что действительно происходит на IT-рынке. Не в розовых презентациях, а в реальной жизни разработчиков, тестировщиков, аналитиков и всех, кто живет кодом.
🧐 Мы проводим исследование, чтобы выяснить:
— Как часто мы прыгаем между компаниями (и почему)
— Какие красные флаги заставляют бежать без оглядки
— Где реально находят работу
— Что бесит в HR больше всего
— Сколько кругов собеседований — это уже перебор
Результаты покажут реальную картину рынка. Без приукрашиваний. Может, компании поймут, что нужно менять, а специалисты — куда двигаться дальше.
😈 Опрос займет 5 минут, но результаты будут работать на всех нас → https://clc.to/9aaXVg
Давайте честно поговорим о том, что действительно происходит на IT-рынке. Не в розовых презентациях, а в реальной жизни разработчиков, тестировщиков, аналитиков и всех, кто живет кодом.
🧐 Мы проводим исследование, чтобы выяснить:
— Как часто мы прыгаем между компаниями (и почему)
— Какие красные флаги заставляют бежать без оглядки
— Где реально находят работу
— Что бесит в HR больше всего
— Сколько кругов собеседований — это уже перебор
Результаты покажут реальную картину рынка. Без приукрашиваний. Может, компании поймут, что нужно менять, а специалисты — куда двигаться дальше.
😈 Опрос займет 5 минут, но результаты будут работать на всех нас → https://clc.to/9aaXVg
⚠️ Debugging: инструменты для поиска багов
Для C++ инструменты помогающие находить и исправлять ошибки имеют такое же значение, как и само написание кода. Сама же отладка превращается в искусство, которое призвано заставить код работать не только быстро, но и выполнять возложенные на него задачи.
Делимся арсеналом инструментов для разных типов багов.
Memory issues:
• Valgrind (Linux/Mac) — поиск утечек и ошибок доступа
• AddressSanitizer (-fsanitize=address) — встроенный в GCC/Clang
• Dr. Memory (Windows)
Performance:
• gprof — профайлинг CPU
• perf (Linux) — системное профилирование
• Intel VTune — продвинутое профилирование
Thread issues:
• ThreadSanitizer (-fsanitize=thread)
• Helgrind (Valgrind tool)
Static analysis:
• clang-static-analyzer
• PVS-Studio
• PC-lint Plus
Это всего лишь небольшая часть, которая используется для борьбы с насекомыми, но достаточная, чтобы попробовать улучшить свой код.
🔍 Какие инструменты для отладки используете чаще всего? Есть любимые фишки?
Библиотека C/C++ разработчика #междусобойчик
Для C++ инструменты помогающие находить и исправлять ошибки имеют такое же значение, как и само написание кода. Сама же отладка превращается в искусство, которое призвано заставить код работать не только быстро, но и выполнять возложенные на него задачи.
Делимся арсеналом инструментов для разных типов багов.
Memory issues:
• Valgrind (Linux/Mac) — поиск утечек и ошибок доступа
• AddressSanitizer (-fsanitize=address) — встроенный в GCC/Clang
• Dr. Memory (Windows)
Performance:
• gprof — профайлинг CPU
• perf (Linux) — системное профилирование
• Intel VTune — продвинутое профилирование
Thread issues:
• ThreadSanitizer (-fsanitize=thread)
• Helgrind (Valgrind tool)
Static analysis:
• clang-static-analyzer
• PVS-Studio
• PC-lint Plus
Это всего лишь небольшая часть, которая используется для борьбы с насекомыми, но достаточная, чтобы попробовать улучшить свой код.
🔍 Какие инструменты для отладки используете чаще всего? Есть любимые фишки?
Библиотека C/C++ разработчика #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM