Перевод DeepL под редакцией Д.Хрюнделя. — Packt, 2023. — 482 с.
Добро пожаловать в Expert C++! Если вы опытный разработчик на C++, желающий повысить свою квалификацию и раскрыть весь потенциал C++20, вы пришли по адресу.
В этом экспертном руководстве мы тщательно продумали путь обучения, чтобы дать вам передовые методы программирования и практические знания, которые выходят за рамки традиционного объектно-ориентированного программирования. Если вы хотите разрабатывать высокопроизводительные приложения, работать с передовыми структурами данных или освоить многопоточность и параллелизм, эта книга станет вашим незаменимым помощником.
Мы расскажем вам о тонкостях проектирования шаблонов, включая мощную сферу метапрограммирования шаблонов. Управление памятью и умные указатели станут вашими союзниками, и вы с уверенностью возьметесь за сложные проекты. Окунитесь в царство структур данных, используя контейнеры стандартной библиотеки шаблонов (STL), а затем расширьте границы с помощью продвинутых структур данных в C++. Откройте для себя элегантность функционального программирования и тонкости параллелизма и многопоточности, а также научитесь проектировать параллельные структуры данных.
По мере продвижения мы будем вести вас через процесс создания готовых к работе приложений, внедрения основных моделей проектирования, понимания принципов работы сети и безопасности. Кульминацией книги станет ваше просвещение в области отладки и тестирования, а затем глубокое изучение проектирования крупномасштабных приложений.
Независимо от того, хотите ли вы разрабатывать программное обеспечение корпоративного уровня или передовые проекты, эта книга призвана помочь вам стать опытным программистом на C++. Так что не теряйте времени и отправляйтесь в это преображающее путешествие.
Счастливого программирования!
Для кого эта книга.
Основная целевая аудитория - опытные разработчики на C++, желающие повысить свою квалификацию и создавать приложения профессионального уровня. Если вы хотите освоить сложные концепции программирования, повысить производительность приложений или изучить передовые методы, эта книга станет ценным источником информации на вашем пути.
Вторичная целевая аудитория охватывает инженеров-программистов и студентов, изучающих компьютерные науки и заинтересованных в изучении передовых методов программирования на C++ и открытии реальных приложений этого языка. Изучив содержание этой книги, вы сможете расширить свои знания и развить практический опыт в использовании языка C++ для решения различных проектов и задач.
Независимо от вашего образования и уровня опыта, «Эксперт C++» призван наделить вас ценными знаниями и практическими навыками, которые помогут вам стать опытным и умелым программистом на C++.
Что включает в себя эта книга:В главе 1 «Создание приложений на C++» рассматриваются такие темы, как процесс создания приложений на C++ и низкоуровневые детали приложений на C++.
Глава 2, За пределами объектно-ориентированного программирования, посвящена глубокому изучению дизайна ООП.
Глава 3, Понимание и проектирование шаблонов, рассказывает о синтаксисе шаблонов функций и классов, их инстанциях и специализациях.
Глава 4, Метапрограммирование шаблонов, дает вам знания и навыки, необходимые для освоения метапрограммирования шаблонов.
Глава 5 «Управление памятью и умные указатели» раскрывает тайну памяти и правильных методов управления памятью.
Глава 6 «Структуры данных и алгоритмы в STL» охватывает широкий спектр структур данных и алгоритмов.
В главе 7 «Продвинутые структуры данных» еще глубже рассматриваются структуры данных, о некоторых из которых вы, возможно, никогда раньше не слышали.
В главе 8 «Функциональное программирование» рассказывается о фундаментальных блоках функционального программирования, а также о диапазонах.
Глава 9 «Параллельность и многопоточность» знакомит вас с основами параллельности и многопоточности в C++ и лучшими практиками проектирования параллельного кода.
Глава 10 «Проектирование параллельных данных» поможет вам разобраться с проблемами гонок данных и получить базовые знания, необходимые для проектирования параллельных алгоритмов и структур данных.
В главе 11 «Проектирование готовых к работе приложений» рассматриваются общие идеи проектирования, которые помогут предотвратить ошибки и написать готовые к работе приложения.
В главе 12 «Применение паттернов проектирования в приложениях на C++» мы разберем примеры использования паттернов проектирования в приложениях на C++ в различных областях.
В главе 13 «Сети и безопасность» мы обсудим стандартные сетевые расширения и посмотрим, что необходимо для реализации программ с поддержкой сетей.
В главе 14 «Отладка и тестирование» описывается анализ дефекта программного обеспечения, использование инструмента GNU Debugger (GDB) для отладки программы, а также применение инструментов для автоматического анализа программного обеспечения.
В главе 15 «Проектирование крупномасштабных приложений» рассматриваются методы создания приложений с большим объемом данных, а также разделение данных, репликация, кэширование и оптимизация потоков данных.
Глава 16 «Понимание и использование C++ в задачах машинного обучения» знакомит с понятиями AI и ML, а также приводит примеры задач в ML. Мы реализуем их и дадим вам базовое представление о том, как следует исследовать и продвигаться к решению более сложных задач.
Глава 17 «Использование C++ в Data Science» объясняет, почему C++ может быть использован в области науки о данных и как он позволяет это сделать.
В главе 18 «Проектирование и реализация фреймворка анализа данных» рассматриваются основные этапы создания сложной программы анализа данных с использованием C++.