О чём курс
Ваш исходный код сложно читать, вы вспоминаете не добрым словам автора кода, который попал к вам в руки, потому что вы тратите время на понимании того, что хотел выразить разработчик в этом не читаемом фрагменте кода.
Если вы узнали свои будни, тогда этот тренинг вам будет полезен. Мы изучим, что такое "запахи" кода, как и когда они появляются, а также какие существуют техники их устранения. Мы начнем с простейших проблем в одной функции, и закончим проблемами во взаимодействии между классами. Мы поговорим о том, как надо делать и что не надо делать, чтобы ваш код было легко читать
Цели
На этом тренинге слушатели получат представление:
- О том, что такое "запахи" кода;
- О передовых техниках улучшения читабельности существующего кода.
После тренинга слушатели будут уметь:
- Выделять проблемные места в программном коде на языке C++;
- Улучшать читабельность исходного кода на языке C++.
Целевая аудитория
Разработчики исходного кода на языке С++ с опытом работы от 1 года до 2 лет.
Предварительная подготовка
Базовые общие знания в области программирования.
Базовые знания скриптовых языков.
Способность понимать логические потоки кода.
Для кого
Разработчик
Улучшаемые навыки
Определение и устранение проблем в коде
Применение методов рефакторинга
Использование инструментов для рефакторинга
Тестирование после рефакторинга
Поддержание чистоты кода
Темы курса
01
Рефакторинг – введение.
Понятие рефакторинга, для чего нужен рефакторинг кода. Разработка через тестирование
02
Запахи кода. Общая информация. Определение запаха кода.
Принципы хорошего дизайна. Запахи кода в тестах,
запахи в базах данных (обзор). Запахи в архитектуре, запахи в управлении
персоналом
03
Общие проблемы в коде.
Организация данных. Поля. Массивы данных. Ссылки и значения. Кодовые поля. Упрощение условных выражений. Упрощение вызова методов. Работа с обобщениями. Композиция методов
04
Проблемы внутри класса.
Легко обнаруживаемые проблемы. Именование. Чрезмерная
сложность. Дублирование. Условная логика
05
Перемещение функционала между объектами.
Принцип единой ответственности. Связность. Закон Деметра. Передвижение методов/полей. Выделение класса. Встраивание класса. Сокрытие делегатов. Удаление посредника
06
Проблемы во взаимодействии классов.
Данные. Наследование. Ответственность.
Приспосабливающиеся изменения. Библиотечные классы
Чему вы научитесь
01
Научитесь выявлять проблемные участки в коде, такие как дублирование, сложность и недостаточная читаемость
02
Освоите различные методы и техники рефакторинга, такие как извлечение методов, переименование переменных и классов
03
Научитесь использовать инструменты и среды разработки
04
Освоите методы написания и выполнения тестов для проверки корректности работы кода после рефакторинга
05
Научитесь применять принципы чистого кода и лучшие практики программирования