Эта подборка предназначена для тех программистов, которые уже умеют разрабатывать приложения на языке C++. С помощью представленных книг вы сможете отточить свои навыки и научиться некоторым техникам, которые позволять вам писать эффективный и быстрый код. Приятного погружения в океан знаний!
С чего начинается знакомство с книгой? Конечно, с заголовка. Вам не показался он смутно знакомым? Если нет, то советую почитать про загадочное число «42». В книге вы найдете 42 (как неожиданно!) рекомендации по написанию кода, которые помогут избежать множество ошибок. Автор Андрей Карпов имеет огромный опыт в анализе кода с помощью статического анализатора PVS-Studio. Он обнаружил, что большая часть ошибок, которые находил анализатор, достаточно типичны и повторяются из одного проекта в другой. Так он решил написать данное руководство, чтобы помочь разработчикам, пишущим на языке C++, писать более совершенный код.

Эффективное использование С++. 55 верных способов улучшить структуру и код ваших программ
КупитьЭта книга была написана как обязательная к прочтению для программистов на C++. Ранние издания были нацелены на специалистов, пришедших с С, третье издание поменяло свой курс на мигрирующих с Java и подобных ей языков. Содержит около 50 легко запоминающихся правил, написанных и объясненных в доступной форме.

Наиболее эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов
КупитьСкотт Мейерс задумывал эту книгу как продолжение предыдущей. Описанные в новой книге приемы по сравнению с оной не столь важны, но ознакомиться с ними несомненно стоит. Автор, опираясь на свой многолетний опыт, дает множество советов по написании эффективных программ на языке C++. В частности, вы сможете ознакомиться с примерами обработки исключений и анализом их влияния на структуру и поведение классов и функций С++, а также вариантами практического применения новых возможностей языка, таких как тип bool
, ключевые слова mutable
и explicit
, пространства имен, шаблоны функций членов, стандартная библиотека шаблонов и многое другое.

Эффективный и современный С++. 42 рекомендации по использованию C++11 и C++14
КупитьВ отличие от двух предыдущих книг, в этой Скотт Мейерс рассказывает обо всех преимуществах использования «фишек» современных стандартов C++11 и C++14. В первую очередь книга подойдет для тех разработчиков, которые хотят перейти с устаревших стандартов, таких как C++03 и более ранних, на современные и научиться эффективно использовать все их функции. В книге подробно освещаются следующие темы:
- преимущества и недостатки инициализации с помощью фигурных скобок, спецификации noexcept, прямой передачи и функций make интеллектуальных указателей;
- связь между
std::move
,std::forward
, rvalue-ссылками и универсальными ссылками; - методы написания понятных, корректных, эффективных лямбда-выражений;
- чем
std::atomic
отличается отvolatile
, как они используются и как соотносятся с API параллельных вычислений C++; - какие из лучших методов «устаревшего» программирования на C++ (т.е. C++98) должны быть пересмотрены при работе с современным C++.

Optimizing Software in C++
СкачатьВ отличие от других руководств по оптимизации кода, представленных в этой подборке, эта книга делает акцент на оптимизации кода на достаточно низком уровне: компилятора и микропроцессора. Пособие является первым из серии книг про низкоуровневую оптимизацию. Автор рассматривает архитектуру x86 для процессоров Intel, AMD и VIA, включая их современные 64-битные версии. Напомним лишь, что к низкоуровневой оптимизации следует прибегать, только если другие способы улучшения кода не дают ощутимый результат.

Эффективное использование STL
КупитьВ этой книге Скотт Мейерс привел множество приемов работы со стандартной библиотекой шаблонов STL. Эти рекомендации подкреплены подробным анализом и качественными примерами, поэтому читателю будет легче освоить STL и научиться использовать библиотеку в своих проектах.

C++ Today
СкачатьКнига от издательства O’Reilly, что уже говорит о ее высоком качестве. В ней вы найдете ответы на многие вопросы о современном C++, например:
- какие «фишки» C++ полезны в облачных вычислениях;
- почему данный язык является единственным языком высокого уровня, использующимся для разработки приложений в трех мобильных платформах: iOS, Android, Windows;
- какие изменения языка ожидаются в следующих обновлениях стандарта языка.

Решение сложных задач на С++
КупитьКнига представляет собой сборник задач. Она содержит подробное обсуждение управления ресурсами и безопасностью исключений в С++. В материале рассматриваются идиомы RAII и pimpl, а также такие темы, как проверка имен, дизайн классов и модель памяти С++.

Новые сложные задачи на C++
КупитьКнига является продолжением труда «Решение сложных задач на С++». В ней вы можете найти материал по дженерик-программированию, оптимизации и управлению ресурсами. Эта книга — отличный пример того, как надо писать модульный код в С++, используя non-member функции и принцип единой ответственности. Рассчитана на разработчиков с глубокими познаниями в C++.

Стандарты программирования на С++
Купить«Стандарты» здесь — это не «сколько пробелов я должен ставить перед новой строчкой?», а советы по написанию кода, идиомы и чаще всего встречающиеся грабли, которые помогут вам писать корректный, понятный и эффективный код на С++. Книга дает много полезных рекомендаций как для опытных программистов, так и для разработчиков профессионального уровня. Вторые могут взять за основу материалы из этой книги и разработать собственные стандарты программирования для собственной команды.

C++ Core Guidelines
ЧитатьДанное пособие содержит в себе основные рекомендации по написанию проектов на языке C++, учитывающее как уже существующие стандарты (C++17, C++14, C++11), так и ожидаемые улучшения. Фокус материала сосредоточен на таких темах, как интерфейс, управление ресурсами и памятью, а также параллелизм. Рекомендации не затрагивают такие моменты, как стиль отступов, названия переменных, функций, классов, поскольку достаточно часто в компаниях, занимающихся разработкой, определены для этого собственные стандарты. Материал постоянно обновляется, так что вы всегда получите актуальную информацию прямо из рук создателя C++ — Бьерна Страуструпа.

Google C++ Style Guide
ЧитатьОфициальное пособие от компании Google по стилизации кода. Данные рекомендации используются в большинстве open source проектов поискового гиганта, написанных на C++. Google обозначила несколько главных принципов своего руководства:
- Правила должны быть применимыми на практике.
- Код должен быть удобочитаемым, ведь его будут изучать и другие люди.
- Написанный код должен соответствовать уже существующему.
- При необходимости следует ориентироваться на рекомендации сообщества разработчиков C++.
- Избегать опасных конструкций.
- Избегать конструкций, которые большинство C++-программистов посчитали бы сложными.
- Приступать к оптимизации кода только в случае необходимости.

Шаблоны C++. Справочник разработчика
КупитьЭто книга о шаблонах в том виде, в котором они существовали до С++11. Она покрывает все от самых начал до продвинутого шаблонного метапрограммирования, подробно объясняет, как работают шаблоны, обсуждает некоторые распространенные грабли. В приложениях несколько замечательных извлечений из правила одного определения (англ. ODR).
Как известно, программы для встроенных систем и микроконтроллеров разрабатывают в подавляющем большинстве случаев на языке Си. Он считается наиболее быстрым и приближенным к «железу» среди всех языков высокого уровня. Автор этой книги стремится развеять это установившееся понятие и рассказывает о разработке подобных программ на языке C++. Со времен C++98 язык получил существенные изменения, стал более удобным, безопасным, а самое главное — быстрым. Последние исследования говорят о том, что код, написанный на современном C++, по времени исполнения ничтожно мало отличается от аналогичного кода, написанного на Си, зато удобство работы и скорость разработки программы возрастает в разы. Это особенно актуально для систем реального времени. Поэтому C++ имеет все шансы стать языком номер один для разработки под микроконтроллеры.
Понравилась вам подборка? Или вы знаете еще несколько крутых книжек? Делитесь с нами своим мнением в комментариях.