русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Підстави для проведення рефакторингу


Дата додавання: 2014-10-07; переглядів: 872.


  1. Код дублюється.

Це нерідко призводить до необхідності вносити паралельні зміни до кількох скопійованих ділянок коду одночасно (що не відповідає принципам «DRY» (Don't Repeat Yourself) та «Copy And Paste is a Design Error»).

  1. Підпрограма занадто довга.

Хоча питання, яку максимальну довжину може мати підпрограма, є досить суперечливим, однак загальноприйнятим неофіційним стандартом є написання підпрограм довжиною не більше, ніж один екран коду.

  1. Цикл занадто довгий, або рівень вкладеності тіла циклу занадто великий.
  2. Клас має багато обов'язків, слабо пов'язаних між собою.

В такому випадку краще розділити клас на кілька атомарних класів.

  1. Інтерфейс класу не забезпечує достатній рівень абстракції.
  2. Функція має занадто багато параметрів.
  3. Потрібно одночасно змінювати кілька паралельних ієрархій класів.

Для вирішення цієї проблеми можна, наприклад, скористатися шаблоном «Міст».

  1. Споріднені дані, які використовуються разом, не організовані в клас.
  2. Клас не виконує ніяку роботу самостійно, а тільки передоручає обов'язки іншим класам.
  3. Назва класу чи методу має ім'я, яке недостатньо точно відповідає змісту.
  4. Клас має занадто багато відкритих (public) членів.
  5. Нестатичний клас складається тільки з даних або тільки з методів.
  6. В ланцюжку викликів методів передається багато зайвих даних.
  7. Занадто поширене використання глобальних змінних.

<== попередня лекція | наступна лекція ==>
Причини рефакторингу | Прийоми рефакторингу


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн