Найти тему
PVS-Studio

60 антипаттернов для С++ программиста

Давайте обсудим вечную тему программирования – ошибки. Они были, есть и будут. Поэтому всегда есть повод поговорить о них, тем более в шуточной форме. Поговорим об умении обходить грабли и писать красивый код, проработав типичные антипаттерны.

Язык C++ - непростой язык программирования. Новичкам бывает особенно тяжело на первых этапах. Да что уж новичкам, даже опытные разработчики сталкиваются с неприятными ситуациями в процессе работы.

“Получается, не стоит изучать С++?” - спросите вы. Стоит! На этом языке пишутся топовые игры, операционные системы, приложения и прикладные программы. Поэтому С++ - популярный язык программирования. Для его изучения существует огромное количество материала - видеокурсы или книги, например.

Хотим вам посоветовать одно пособие про ошибки и вредные практики при написании кода. Это довольно нестандартный материал, дальше вы поймете почему.

Андрей Карпов, автор увлекательных статей по C++, опубликовал мини-книгу - “60 антипаттернов для С++ программиста”. Это тот случай, когда чтиво по программированию одновременно бывает полезным и развлекательным.

Один из главных плюсов книги – ее структура. Каждый антипаттерн представлен компактно и его легко понять. А главное, что всё основано на реальных ситуациях. Это не просто список вредных советов, но и практическое пособие, которое помогает разработчикам избегать типичных ошибок в коде.

Вот примеры первых 15 “советов” из книги:

Вредный совет N1. Настоящие программисты программируют только на C++!

Вредный совет N2. Если в строковом литерале вам нужен символ табуляции, смело жмите кнопку tab. Оставьте \t для яйцеголовых. Не парьтесь.

Вредный совет N3. Всюду используйте вложенные макросы. Так текст программы станет короче, и вы сохраните больше места на жёстком диске. Заодно это развлечёт ваших коллег при отладке.

Вредный совет N4. Отключите предупреждения компилятора. Они отвлекают от работы и мешают писать компактный код.

Вредный совет N5. Используйте для переменных имена из одной-двух букв. Так в одну строчку, помещающуюся на экране, можно уместить более сложное выражение.

Вредный совет N6. Используйте при написании кода невидимые символы. Пусть ваш код работает магическим образом. Это прикольно.

Вредный совет N7. Используйте странные числа. Так ваша программа будет выглядеть умнее и солиднее. Согласитесь, что такие строки смотрятся хардкорно: qw = ty / 65 - 29 * s;

Вредный совет N8. - Во всех старых книгах для хранения размеров массивов и для организации циклов использовались переменные типа int. Так и делайте. Не стоит нарушать традиции.

Вредный совет N9. Глобальные переменные очень удобны, т. к. к ним можно обращаться отовсюду.

Вредный совет N10. Совет для разработчиков библиотек: в любой непонятной ситуации сразу завершай программу, используя функцию abort или terminate.

Вредный совет N11. Если что-то не работает, то, скорее всего, глючит компилятор. Попробуйте поменять местами некоторые переменные и строки кода.

Вредный совет N12. Не мешкайте и не тормозите. Сразу берите и используйте аргументы командной строки. Например, так: char buf[100]; strcpy(buf, argv[1]);. Проверки делают только параноики, не уверенные в себе и людях.

Вредный совет N13. Undefined behavior – это страшилка на ночь для детей. На самом деле его не существует. Если программа работает, как вы ожидали, значит она правильная. И обсуждать здесь нечего, точка. Everything is fine.

Вредный совет N14. Смело сравнивайте числа с плавающей точкой с помощью оператора ==. Раз есть такой оператор, значит им нужно пользоваться.

Вредный совет N15. memmove — лишняя функция. Всегда и везде используйте memcpy.

Надеемся, вы понимаете, что это всё - сарказм. Подробное объяснение каждого пункта вы можете прочитать в полной версии книги. Также стоить отметить, что этот материал ориентирован не только на С++ разработчиков, там есть и общие “советы” для всех программистов.

-2

Вывод: это информативная, развлекательная и легкая для понимания мини-книга. Ее стоит прочитать, чтобы научиться избегать типичных ошибок в написании кода, узнать что-то новое и просто закрепить имеющиеся знания.

Полная версия - https://pvs-studio.ru/ru/blog/posts/cpp/1053/