Предварительная подготовка
Знание основ алгоритмизации и программирования, базовые знания скриптовых языков (Опыт работы с хотя бы одним скриптовым языком (например, Python, JavaScript)), основы работы с текстовыми редакторами и интегрированными средами разработки (IDE) (Опыт работы с текстовыми редакторами (например, Notepad++, Sublime Text) или IDE (например, Visual Studio, Eclipse).
Для кого
Разработчик
Улучшаемые навыки
C++
Программирование
ООП
Рефакторинг
Обучение
Курсы
IT
Разработка
Алгоритмы
Дорожная карта
Указатели
Память
Многопоточность
Шаблоны
Исключения
Компиляция
Отладка
Тестирование
IDE (Integrated Development Environment)
Visual Studio
GitHub
Инструменты
Программа курса
История языка C++
Установка и настройка среды разработки (Windows 10
Visual Studio 2019
Google Test Framework)
Первая программа на C++
Создание первой программы на C++ и запуск в среде разработки
Литералы и переменные
Операции с данными
Написание программ с использованием различных выражений
03
Операторы и функции в C++
Условные операторы (if, else, switch)
Циклы (for, while, do-while)
Функции и параметры
Реализация программ с использованием условных операторов и циклов
Примитивные типы данных
Структуры и классы
Создание структур и классов для хранения данных
05
Доступ к памяти и управление в C++
Указатели и ссылки
Динамическое выделение памяти
Работа с указателями и динамическим выделением памяти
06
Жизненный цикл объекта в C++
Конструкторы и деструкторы
Инкапсуляция и абстракция
Создание классов с конструкторами и деструкторами
07
Наследование и полиморфизм в C++
Понятие наследования
Виртуальные функции и полиморфизм
Реализация наследования и полиморфизма
08
Преобразование типов в C++
Явное и неявное преобразование типов
Преобразование типов в программах
09
Обобщенное программирование
Шаблоны классов и функций
Создание шаблонов классов и функций
Контейнеры
Алгоритмы
Предикаты
11
Тест по темам «Программирование на языке С++»
12
Обеспечение качества кода на языке C++
Введение в юнит тестирование
Методология TDD
Введение в рефакторинг
SOLID принципы дизайны коды
Практическое задание: Анализ кода на предмет возможных улучшений.
Определение запаха кода
Примеры запахов кода
Практическое задание: Идентификация запахов кода в примерах
14
Общие проблемы в коде и внутри классов
Организация данных
Упрощение условных выражений
Упрощение вызова методов
Легко обнаруживаемые проблемы
Именование
Чрезмерная сложность
Дублирование,
Условная логика
15
Перемещение функционала между объектами
Принцип единой ответственности
Связность
Закон Деметра
Передвижение методов/полей
Выделение класса
Встраивание класса
Сокрытие делегатов
Удаление посредника
Методы расширения
Практическое задание: Перемещение функционала между объектам
16
Проблемы во взаимодействии классов Данные
Наследование
Ответственность
Приспосабливающиеся изменения
Библиотечные классы
Практическое задание: Улучшение взаимодействия между классами
17
Итоговый тест по всем темам курса
18
Итого на курс 53 часов: теория – 35 ч (66%), практика – 18 ч ( 34%)
Чему вы научитесь
01
Изучать основы и синтаксис языка C++.
02
Применять принципы объектно-ориентированного программирования (ООП), такие как инкапсуляция, наследование и полиморфизм.
03
Оптимизировать код для повышения производительности и уменьшения использования ресурсов.
04
Работать с указателями и динамической памятью, избегая утечек памяти.
05
Отлаживать и тестировать код с помощью инструментов и техник отладки.
06
Освоите основные приемы рефакторинга для улучшения читабельности кода.
07
Создавать пользовательские интерфейсы с использованием библиотек, таких как Qt.