Рефакторинг (англ.refactoring) — процес редагуванняпрограмного коду, внутрішньої структурипрограмного забезпечення для полегшення розуміння коду та внесення подальших правок без зміни зовнішньої поведінки самої системи[1]. Слово «рефакторинг» пішло від терміна«факторинг» вструктурному програмуванні; цей термін означавдекомпозицію програми на максимально автономні та елементарні частини.
Ця статтямістить текст, що не відповідаєенциклопедичному стилю. Будь ласка, допоможітьудосконалити цю статтю, погодивши стиль викладу зістилістичними правилами Вікіпедії. Можливо,сторінка обговорення містить зауваження щодо потрібних змін.(липень 2016) |
Існує міф про те, що при правильно організованому процесі розробки продукту, треба методично дотримуватися поставлених вимог, визначати однозначний, стабільний список обов’язків програми, і при цьому програмний код може бути написаний майже лінійно: від початку до закінчення, кожна ділянка — написана, відтестована і забута один раз. Посилаючись на цей міф, єдиний випадок, коли наявний код може змінюватись, — це в процесі підтримки і адміністрування програми, коли початкова версія продукту уже здана замовнику.
Однак реальність є дещо інакшою. Насправді код еволюціонує в процесі розробки продукту. Як правило, кодування, дебагінг (відлагодження) тамодульне тестування займають в середньому 30–65% зусиль від загального часу існування проекту (залежно від величини проекту). Навіть на добре організованих проектах вимоги змінюються в середньому на 1–4% за місяць, що неминуче спричиняє зміни в програмному коді — як дрібні, так і досить серйозні.[2]
Також, на відміну від старіших методик розробки програмних продуктів, де основний акцент ставився на мінімізації змін до коду, сучасна методика вбачає великий потенціал у внесенні змін. Вона є більш сфокусованою на коді (code-centered) і під час розробки можна очікувати, що код буде вдосконалюватися більше, ніж зазвичай.
Багатоінтегрованих середовищ розробки містять вбудовані механізми рефакторингу коду. Крім інтегрованої функціональності, існує також багато продуктів сторонніх виробників, які, як правило, реалізовані у вигляді додатків (plugins) до відповідного IDE. Приклади таких пакетів:
| Пакет | Мова | Середовище |
|---|---|---|
| Microsoft Visual Studio | C# | Microsoft Visual Studio (вбудований) |
| Java Development Tooklit | Java | Eclipse (вбудований) |
| IntelliJ IDEA | Java | IntelliJ IDEA (вбудований) |
| NetBeans | Java,PHP | NetBeans (вбудований) |
| Visual Assist | C#,C++,VB,VB.NET | Microsoft Visual Studio |
| Photran | Fortran | Eclipse |
| Це незавершена стаття пропрограмування. Ви можетедопомогти проєкту,виправивши або дописавши її. |