Улучшение кода в приложениях .NET (refactoring)
Описание
Аннотация
Курс состоит из 5 уроков, на протяжении которых учащиеся получают представление о том, что такое рефакторинг, каких целей он позволяет достичь и какие возможности он предоставляет.
Материал разбит на логические блоки, благодаря чему слушатели быстро и эффективно осваивают новые техники и методики. Каждый Модуль сопровождается конкретными примерами, реализованными на языке C# с полным учетом его возможностей и достоинств. Такой подход позволяет увидеть живые примеры применения рефакторинга и способствует более глубокому пониманию основных его принципов.
Предварительные требования
- Знания и уверенное использование основных библиотек .NET Framework
- Опыт программирования на C#
- Знание ООП
- Опыт работы с Visual Studio.
Целевая аудитория
Начинающие программисты, а также программисты имеющие опыт разработки приложений на языке C#, проектировщики и архитекторы, которые хотят понять принципы рефакторинга и научиться применять его в своих проектах.
Программа курса
Модуль 1. Введение в рефакторинг
В модуле студенты познакомятся с понятием рефакторинга, а также узнают об основных проблемах, с которыми сталкиваются разработчики при работе над программным кодом. Отдельное внимание уделяется понятиям связанности и связности.
Модуль 2. Составление методов
Модуль посвящен анализу проблем, возникающих при разработке внутренней структуры методов, а так же при непосредственном проектировании методов. Cлушатели научатся создавать максимально удобные при использовании и гибкие в расширении методы.
Рассмотрение рефакторингов:
- Выделение метода
- Встраивание метода
- Встраивание временной переменной
- Замена временной переменной вызовом метода
- Введение поясняющей переменной
- Расщепление временной переменной
- Замена метода объектом методов
- Перемещение метода
- Перемещение поля
- Выделение класса
- Встраивание класса
- Сокрытие делегирования
- Удаление посредника.
Модуль 3. Организация данных
Обсуждаются методы рефакторинга, облегчающие работу с данными. Затрагиваются понятия самоинкапсуляции, замены значений ссылками, дублирования данных, взаимозаменяемости однонаправленных и двунаправленных связей, инкапсуляция полей и коллекций, внедрение новых классов для решения проблем связанных с логической структурой объектов.
Рассмотрение рефакторингов:
- Замена значения данных объектом
- Замена значений ссылкой
- Замена однонаправленной связи двунаправленной
- Инкапсуляция коллекции
- Замена кода типа подклассом
- Замена кода типа состоянием/стратегией
- Замена подкласса полями.
Модуль 4. Упрощение условных выражений
С ростом проекта логика условного выполнения имеет тенденцию становиться сложной, поэтому мы рассматриваем техники, позволяющие отделять логику переключения от непосредственного выполнения.
Рассмотрение рефакторингов:
- Декомпозиция условного оператора
- Консолидация условного выражения
- Консолидация дублирующихся условных фрагментов
- Удаление управляющего флага
- Замена вложенных условных операторов граничным оператором
- Замена условного оператора полиморфизмом
- Введение объекта Null.
Модуль 5 Решение задач обобщения
В модуле рассматриваются техники, составляющие отдельную группу рефакторингов, в основном связанных с перемещением методов по иерархии наследования.
Рассмотрение рефакторингов:
- Подъем поля
- Подъем метода
- Спуск метода
- Спуск поля
- Выделение подкласса
- Выделение родительского класса
- Выделение интерфейса
- Замена наследования делегированием
- Замена делегирования наследованием.
Расписание
Время проведения курса пока не определено, отправьте нам заявку, пожалуйста.
Возможно, мы предложим пройти курс в дистанционном режиме или организуем выездной курс, если у Вас группа.