Разработчик С++

О курсе
Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (игр). В курсе «Разработчик C++» будут рассмотрены как вводные понятия, такие как инструменты автоматизации, STL, нововведения 11 и 14 стандартов; так и более сложные: асинхронное программирование, шаблоны проектирования, архитектуры распределенных высокодоступных сервисов.
Программа курса
1
Введение
2
Архитектура
3
Асинхронщина
4
Сеть
5
СУБД
CMake. Система сборки: build and deploy. Поиск распространяемых пакетов. Кастомный модуль для наших пакетов. Server mode: построение сервера автосборки.
Стартовое ДЗ. Подготовка окружение и применение CMake для сборки и деплоя проекта.
C++11. Широкоиспользуемые фичи C++11 стандарта. rvalue и lvalue ссылки. Move semantic. Variadic Templates. POD. Лямбда-функции. Кортежи.
C++14. Рассмотрим полезные нововведения 14 стандарта. Q&A по ДЗ
ДЗ: Разгонный проект "ToDo List"
Smart pointers. Вглубь реализации умных указателей. Подводные камни и оптимизации.
ДЗ: Реализация нативного умного указателя и сравнение производительности с библиотечным.
Allocators. Идея аллокаторов. Стандартный аллокатор и его недостатки. Различные методы управлением памятью: достоинства и недостатки.
ДЗ: Реализация кастомного аллокатора.
Metaprogramming. Что это и зачем? Как выглядит в C++: макросы и шаблонная магия. Примеры. Type traits в STL.
ДЗ: Реализация контейнера/аллокатора, способного эффективно хранить примитивные и комплексные типы. Сравнение со стандартным.
Принципы проектирования ПО. UML. Принципы: SoC, DRY, YAGNI, KISS, TDA, LoD, SOLID
GRASP. Рассмотрим: Creator, Controller, Pure Fabrication, Information Expert, High Cohesion, Indirection, Low Coupling, Polymorphism, Protected Variations
Шаблоны GoF 1. Порождающие шаблоны проектирования.
Шаблоны GoF 2. Структурные шаблоны проектирования.
Шаблоны GoF 3. Поведенческие шаблоны проектирования.
Шаблоны GoF 4. Поведенческие шаблоны проектирования.
Антипаттерны. Разберем антипаттерны программирования (кодирования), ООП, проектирования и антипаттерны в других областях
Структуры данных. BOOST Containers. Рассмотрим многообразие контейнеров библиотеки BOOST и области их применения.
Многопоточность. Потоки. Критические секции и методы синхронизации: мьютексы, семафор, условные переменные, барьеры. Пулы потоков.
Асинхронное программирование. Архитектура асинхронных сервисов. Низкоуровневая поддержка асинхронного выполнения кода.
Lockfree DS. Неблокирующие структуры данных и алгоритмы. BOOST Lockfree
Сетевое взаимодействие. Сокеты. Протоколы: TCP и UDP. Сериализация.
Асинхронный ввод/вывод. Библиотеки и практики работы с неблокирующей передачей данных.
РСУБД. Использование РСУБД. Подключение и работа с БД.
ORM. ООП при работе с базами данных. Паттерны DAO и Repository
Работодатели