Professional Documents
Culture Documents
Методи рефакторингу коду програмного забезпечення - Пархоменко
Методи рефакторингу коду програмного забезпечення - Пархоменко
РЕФАКТОРИНГ
У КОДУ
Виконала:
студентка групи ПЗПІ-19-1
Пархоменко Юлія Юріївна
Розглянуті методи рефакторингу
Вбудовування методу
Проблема: Було:
Варто використовувати в тому випадку, коли тіло
методу очевидніше самого методу.
Причина рефакторингу:
Основна причина – тіло методу складається із
простого делегування до іншого методу. Саме
собою таке делегування — не проблема. Але
якщо таких методів досить багато, стає дуже
легко заплутатися в них. Найчастіше методи не
бувають надто короткими спочатку, а стають
такими внаслідок змін у програмі.
(Inline Method)
Вбудовування методу
Рішення: Стало:
Замініть виклики методу його вмістом та видаліть метод.
Переваги:
Мінімізуючи кількість непотрібних методів, ми
зменшуємо загальну складність коду.
Порядок рефакторингу:
1. Переконайтеся, що метод не перевизначається у
підкласах. Якщо він перевизначається, утримайтеся
від рефакторингу.
2. Знайдіть усі виклики методу. Замініть ці виклики
вмістом методу.
3. Видаліть метод.
(Replace Parameter with Explicit Methods)
Причина рефакторингу:
Метод, що містить варіанти виконання, розрісся
до грандіозних розмірів. У кожному з таких
ланцюжків виконується нетривіальний код. При
цьому нові варіанти додаються дуже рідко.
(Replace Parameter with Explicit Methods)
Переваги:
Покращує читабельність коду. Більш очевидним є код,
який ми отримали після рефакторингу.
Порядок рефакторингу:
1. Для кожного варіанта виконання методу створіть свій
метод. Викликайте ці методи в залежності від значення
параметра в основному методі.
2. Знайдіть усі місця, де викликається оригінальний метод. Підставте
туди виклик одного з нових методів залежно від параметра, що
передається.
3. Якщо не залишиться жодного виклику оригінального методу, його
можна видалити.
(Remove Control Flag )
Причина рефакторингу:
Раніше хорошим стилем програмування
вважалося мати у функції одну вхідну точку
(рядок оголошення функції) та одну вихідну
точку (у самому кінці функції). У сучасних
мовах програмування цей підхід застарів,
тому що у нас з'явилися спеціальні
оператори для керування ходом програми
в циклах та інших складних конструкціях:
break: зупиняє виконання циклу;
continue: зупиняє виконання поточного витка циклу та переходить до перевірки умови циклу та наступної ітерації;
return: зупиняє виконання всієї функції та повертає її результат, якщо він поданий у цьому операторі.
(Remove Control Flag )
Переваги:
Код з керуючим прапором часто виходить
значно заплутанішим, ніж при використанні
операторів управління виконанням.
Порядок рефакторингу:
1. Знайдіть присвоєння значення керуючому прапору, яке призводить до виходу з циклу або поточної ітерації.
2. Замініть його на break, якщо це вихід із циклу, або continue, якщо це вихід з ітерації, або return, якщо потрібно
повернути це значення з функції.
3. Приберіть решту коду та перевірки, пов'язані з керуючим прапором.
Дякую за увагу!