Разделы презентаций


Семинар 3

Содержание

Что этоРефакторинг изменения во внутренней структуре программного обеспечения, имеющее целью облегчить понимание его работы и упростить модификацию, не затрагивая наблюдаемого поведенияСистематическое привидение кода в порядокУлучшение кода после его написания

Слайды и текст этой презентации

Слайд 1Семинар 3
Рефакторинг

Семинар 3Рефакторинг

Слайд 2Что это
Рефакторинг изменения во внутренней структуре программного обеспечения, имеющее целью

облегчить понимание его работы и упростить модификацию, не затрагивая наблюдаемого

поведения

Систематическое привидение кода в порядок

Улучшение кода после его написания
Что этоРефакторинг изменения во внутренней структуре программного обеспечения, имеющее целью облегчить понимание его работы и упростить модификацию,

Слайд 3НЕ решает задачи, НО ПОЛЕЗЕН ДО ЭТАПОВ

Исправления ошибок – легче

выявить ошибки в корректно структурированном коде

Доработки новой функциональности – проще

доработать адаптированный к изменениям код

Оптимизации – проще сделать корректную (понятную) программу быстрой, чем быструю корректной

НЕ решает задачи, НО ПОЛЕЗЕН ДО ЭТАПОВИсправления ошибок – легче выявить ошибки в корректно структурированном кодеДоработки новой

Слайд 4Что дает

Рефакторинг улучшает композицию программного обеспечения

Рефакторинг облегчает понимание ПО

Помогает найти

ошибки

Дает возможность обходиться предварительным проектированием

Что даетРефакторинг улучшает композицию программного обеспеченияРефакторинг облегчает понимание ПОПомогает найти ошибкиДает возможность обходиться предварительным проектированием

Слайд 5Когда
Code smells (like teen spirit) :
Дублирование кода
Длинный метод
Большой класс
Длинный список

параметров
Расходящиеся модификации (несколько осей модификации (нарушение SRP))
Стрельба дробью (Анти SRP)
Завистливые

функции (функции одного класса/метода больше обращаются к другому классу/модулю, чем к своему)
Группы данных
Одержимость элементарными типами
Операторы типа switch
Параллельные иерархии наследования
Ленивый класс
Теоретическая общность
Временное поле
Цепочки сообщений
Посредник
Неуместная близость
Альтернативные классы с разными интерфейсами
Классы данных
Отказ от наследства
Комментарии
КогдаCode smells (like teen spirit) :Дублирование кодаДлинный методБольшой классДлинный список параметровРасходящиеся модификации (несколько осей модификации (нарушение SRP))Стрельба

Слайд 6Когда (по группам)
Общие ошибки программирования

Плохое использование принципов, практик, паттернов (ООП)

Избыточное

использование принципов, практик, паттернов (ООП)

Когда (по группам)Общие ошибки программированияПлохое использование принципов, практик, паттернов (ООП)Избыточное использование принципов, практик, паттернов (ООП)

Слайд 7Предусловие

Хорошее покрытие тестами

Знание каталога методов рефакторинга, мотивировок и техник их

применения

++ наличия средства проведения автоматических рефакторингов

ПредусловиеХорошее покрытие тестамиЗнание каталога методов рефакторинга, мотивировок и техник их применения++ наличия средства проведения автоматических рефакторингов

Слайд 8Синдром рефакторинга и технический долг
Рефакторинг ради рефакторинга не имеет смысла

Не

видеть, где рефакторинг полезен также плохо

Технический долг – осознанный и

отложенный рефакторинг

Наличие технического долга – норма. Но его надо погашать в срок.
Синдром рефакторинга и технический долгРефакторинг ради рефакторинга не имеет смыслаНе видеть, где рефакторинг полезен также плохоТехнический долг

Слайд 9Примеры методов рефакторинга
Выделение метода
Быдло:
void printOwing(double amount) {
printBaner();

//вывод деталей
System.out.println (“name: ” +

_name);
System.out.println (“amount: ” + _ amount); }

Стадло:
void printOwing(double amount) {
printBaner();
printDetailes(amount); }

void printDetailes(double amount) {
System.out.println (“name: ” + _name);
System.out.println (“amount: ” + _ amount); }

Примеры методов рефакторингаВыделение методаБыдло:void printOwing(double amount) {  printBaner();  //вывод деталей  System.out.println (“name:

Слайд 10Примеры методов рефакторинга
Замена временной переменной вызовом метода

Быдло:
double basePrice = _quantity

* _itemPrice;
if (basePrice > 1000)
return basePrice * 0,95;
else

return basePrice * 0,98;


Стадло:
if (basePrice() > 1000)
return basePrice() * 0,95;
else
return basePrice() * 0,98;

double basePrice() {
return _quantity * _itemPrice; }

Примеры методов рефакторингаЗамена временной переменной вызовом методаБыдло:double basePrice = _quantity * _itemPrice;if (basePrice > 1000)  return

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика