3.2.2 Refactoring
An'anaviy dasturiy injiniringning asosiy qoidasi shundaki, o'zgarishlarni loyihalash kerak. Ya'ni, dasturiy ta'minotdagi kelajakdagi o'zgarishlarni oldindan bilish va ushbu o'zgarishlarni osongina amalga oshirish uchun loyihalash kerak. Biroq, ekstremal dasturlashda o'zgarishlarni loyihalash behuda kuch sarflanadi deb o’ylab, bu tamoyildan voz kechgan. O'zgarishlarga dosh berish uchun dasturga umumiylik kiritish uchun vaqt ajratishning hojati yo'q. Ko'pincha kutilgan o'zgarishlar hech qachon amalga oshmaydi yoki butunlay boshqacha o'zgartirish so'rovlari amalga oshirilishi mumkin.
Albatta, amalda har doim ishlab chiqilayotgan kodga o'zgartirishlar kiritilishi kerak bo'ladi. Ushbu o'zgarishlarni osonlashtirish uchun XP ishlab chiquvchilari ishlab chiqilayotgan kodni doimiy ravishda qayta ishlashni taklif qilishdi. Refaktoring (Fowler va boshqa 1999) dasturlash jamoasi dasturiy ta'minotni mumkin bo'lgan yaxshilanishlarni izlashini va ularni darhol amalga oshirishini anglatadi. Jamoa a'zolari yaxshilanishi mumkin bo'lgan kodni ko'rganlarida, ular darhol zarurat bo'lmagan holatlarda ham bu yaxshilanishlarni amalga oshiradilar.
Incremental rivojlanishning asosiy muammosi shundaki, mahalliy o'zgarishlar dasturiy ta'minot tuzilmasini yomonlashtiradi. Natijada, dasturiy ta'minotdagi keyingi o'zgarishlarni amalga oshirish qiyinroq bo'ladi. Asosan, ishlab chiqish muammolarni hal qilish yo'llarini topish orqali davom etadi, natijada kod ko'pincha takrorlanadi, dasturiy ta'minotning qismlari nomaqbul usullarda qayta ishlatiladi va tizimga kod qo'shilishi bilan umumiy tuzilma yomonlashadi. Refaktoring dasturiy ta'minot tuzilmasi va o'qilishini yaxshilaydi va shu bilan dasturiy ta'minot o'zgartirilganda tabiiy ravishda yuzaga keladigan tizimli buzilishning oldini oladi.
Refaktoring misollari qatoriga takroriy kodni olib tashlash uchun sinf ierarxiyasini qayta tashkil etish, atributlar va usullarni tartibga solish va nomlarini o'zgartirish, shu kabi kod bo'limlarini dastur kutubxonasida belgilangan usullarga chaqiruvlar bilan almashtirish kiradi. Dastur ishlab chiqish muhitlari odatda refaktoring vositalarini o'z ichiga oladi. Bular kod bo'limlari orasidagi bog'liqliklarni topish va global kod o'zgartirishlarini amalga oshirish jarayonini soddalashtiradi.
Printsipial jihatdan, refaktoring ishlab chiqish jarayonining bir qismi bo'lsa, yangi talablar taklif qilinganda dasturiy ta'minot har doim tushunilishi va o'zgarishi oson bo'lishi kerak. Amalda, bu har doim ham shunday emas. Ba'zida ishlab chiqish bosimi refaktoringning kechiktirilishini anglatadi, chunki vaqt yangi funksiyalarni amalga oshirishga bag'ishlangan. Ba'zi yangi xususiyatlar va o'zgarishlar kod darajasidagi refaktoring bilan osongina moslashtirilmaydi va tizim arxitekturasini o'zgartirishni talab qiladi.
Do'stlaringiz bilan baham: |