Рефакторинг: поліпшення проекту існуючого коду
Перевидання класичної праці з інформатики, новий сучасний переклад!
рефакторинг вже давно і міцно займає своє гідне місце серед технологій програмування, і не в останню чергу завдяки книзі Мартіна Фаулера – однієї з тих книг, які написані “на всі часи” і які, як хороше вино, з часом стають тільки цінніше.
Сам принцип рефакторінга простий: це послідовність невеликих кроків, таких як переміщення поля з одного класу в інший, винесення фрагмента коду з методу і його перетворення в самостійний метод або навіть переміщення коду по ієрархії класів. Кожен такий крок виглядає настільки просто і природно, що здається дивним – про що тут можна писати? Однак кумулятивний ефект від таких малих змін полягає в істотному поліпшенні проекту існуючого коду.
Мартін Фаулер і інші висококласні фахівці в області об’єктно-орієнтованого програмування, що прийняли участь в написанні цієї книги, виклали принципи і найбільш ефективні методики виконання різних рефакторингов і показали, коли і як слід ретельно вивчати код з метою його поліпшення. У книзі детально описано понад 70 методів рефакторинга, причому наведено не тільки їх теоретичний опис, а й практичні приклади на мові програмування Java.
Дана класична книга гідна того, щоб зайняти своє місце на книжковій полиці кожного серйозного програміста – незалежно від мови програмування.
У міру поширення об’єктних технологій – особливо з використанням мови програмування Java – для спільноти розробників програмного забезпечення ставала все більш і більш актуальною нова проблема.
Недостатньо досвідчені розробники створили безліч погано спроектованих програм, які опинилися в результаті малопродуктивними додатками, які важко підтримувати і розширювати. Все частіше розробники програмного забезпечення стикаються з тим, наскільки складно працювати з такими дісталися їм у спадок додатками.
Протягом декількох років об’єктні програмісти-експерти використовували постійно зростаючу колекцію методів підвищення структурної цілісності і ефективності таких існуючих програм. Відомі як “рефакторинг”, ці практики так і залишалися надбанням експертів, бо не було ніяких реальних спроб донести ці знання до широких мас розробників в доступній формі.
У даній книзі відомий експерт в області об’єктних технологій Мартін Фаулер відкриває перед спільнотою розробників нові горизонти, розповідаючи про практиках, що застосовуються експертами, і демонструючи, які значні переваги від їх застосування може отримати будь-який розробник. При належній підготовці кваліфікований проектувальник систем може взяти погано спроектовану програму і перетворити її в добре продуманий, надійний код.
У книзі Мартін Фаулер показує читачам, де зазвичай можна знайти можливості для оптимізації і як перетворити поганий проект в хороший. Кожен крок рефакторінга простий – навіть, здавалося б, дуже простий, щоб його варто було виконувати. Оптимізація може включати переміщення поля з одного класу в інший або витяг деякого коду з методу з тим, щоб перетворити його в окремий метод, або навіть перенесення деякого коду вгору або вниз по ієрархії класів.
Хоча ці окремі кроки можуть здатися елементарними, кумулятивний ефект таких невеликих змін може радикально поліпшити проект програми. Рефакторинг коду – перевірений спосіб запобігання розпаду програмного забезпечення.
Крім опису різних методів рефакторинга, автор наводить детальний каталог більш ніж з сімдесятьма рефакторингом і корисними вказівками, які навчать вас, коли їх слід застосовувати. Книга містить докладний опис понад 70 методів рефакторинга, причому не тільки теоретичне їх опис, а й практичні приклади на мові програмування Java. Слід врахувати, що викладені в книзі ідеї застосовні до будь-якого об’єктно-орієнтованого мови програмування.
про авторів
Мартін Фаулер – незалежний консультант, який застосовує об’єктні технології для вирішення нагальних проблем бізнесу близько сорока років. Він давав консультації з програмних систем в таких областях, як охорона здоров’я, торгівля і фінанси. Серед його клієнтів були Chrysler, Citibank, Міністерство охорони здоров’я Великобританії, Andersen Consulting і Netscape Communications. Крім того, Фаулер часто робить доповіді по об’єктним технологіям, уніфікованого мови моделювання UML і проектним шаблонами.
Кент Бек – відомий програміст, тестувальник ПЗ, фахівець з рефакторингу, автор книг і гравець на банджо.
Джон Брант і Дон Робертс – автори інструментарію для автоматизованого виконання рефакторингов Refactoring Browser for Smalltalk. Вони також є консультантами, близько тридцяти років вивчали практичні і теоретичні аспекти рефакторінга.
Дисертаційна робота Вільяма Опдайка “Дослідження з оптимізації об’єктно-орієнтованих структур”, виконана в Університеті Іллінойсу, привела до першої важливої публікації по цій темі. В даний час він працює в Lucent Technologies / Bell Laboratories.
Зміст Рефакторинг: покращення проекту існуючого коду:
- Глава 1. Перший приклад рефакторингу
- Глава 2. Принципи рефакторингу
- Глава 3. Запах у коді
- Глава 4. Створення тестів
- Глава 5. На шляху до каталогу рефакторингів
- Глава 6. Складання методів
- Глава 7. Перенесення функціональності між об’єктами
- Глава 8. Організація даних
- Глава 9. Спрощення умовних виразів
- Глава 10. Спрощення викликів методів
- Глава 11. Робота з узагальненістю
- Глава 12. Великомасштабні рефакторинги
- Глава 13. Рефакторинг, повторне використання та реальність
- Глава 14. Інструментарій для виконання рефакторингу
- Глава 15. висновок