
coode refactoring

computer prograamingilum software roopakalppanayilum, coode refactoring ennathu nilavilulla computer coode athinte baahya swabhaavam maattathe-"factoring" mattunna-punasamghadippikkunna prakriyayaan. softweyarinte (athinte "pravarthanarahithamaaya" attributeukal) roopakalppana, ghadana, koodaathe/allengil nadappaakkal enniva mechappeduthunnathinum athinte pravartthanam samrakshikkunnathinum uddeshichullathaanu refactoring. mechappetta coode redabilityum sankeernnatha kuraykkalum refactoringinte saadhyathayulla gunangalil ulppedaam; ivaykku sozhs kodukalude nilanirtthal mechappeduthaanum extensibility mechappeduthunnathinna lalithavum vrithiyullathum kooduthal expressive intenal architecture allengil object model srishtikkaanum kazhiyum. mechappetta prakadanamaanu refactoringinte mattoru saadhyathayulla lakshyam; software enchineeyarmaar vegathil pravartthikkunnatho memory kuravullatho aaya prograamukal ezhuthaan thudarchayaaya velluvili neridunnu.
saadhaaranayaayi, refactoring staanderd adisthaana "micro-refactoringukalude" oru parambara prayogikkunnu, avaa oronnum (saadhaaranayaayi) oru computer prograaminte sozhs kodile oru cheria maattamaan, athu onnukil softweyarinte swabhaavam samrakshikkunnu, allengil kuranjathu pravarthanaparamaaya aavasyakathakalumaayi athinte poruthappedutthal parishkkarikkunnilla. pala vikasana parithasthithikalum eee adisthaana refactorukalude mechanical vashangal nirvahikkunnathin yaanthrika pinthuna nalkunnu. nannayi cheythaal, coode refactoring software developermaare sisttathile maranjirikkunna allengil nishkriyamaaya bagukalo kedupaadukalo kandethaanum pariharikkanum sahayikkunnu, adisthaana yukthi lalithamaakkukayum anaavasyamaaya sankeernnatha illaathaakkukayum cheiyunnu. moshamaayi cheythaal, baahya pravartthanam maattaathirikkaanulla aavasyakatha paraajayappettekkam, angane puthiya bagukal avatharippikkam.
prachodanam.
oru coode manam sradhichaanu saadhaaranayaayi refactoring prachodippikkunnathu. udaaharanathinu, kaiyilulla reethi valare dairkhyameriyathaakaam, allengil aduthulla mattoru reethiyude ekadesham pakarppayirikkaam. orikkal thiricharinjaal, sozhs coode "refactor" cheiyukayo allengil munbatheppole thanne perumaarukayum ennaal "manam" varaathirikkukayum cheiyunna oru puthiya roopathilekku parivartthanam cheiyukayo cheythukondu atharam prasnangal pariharikkam.
oru neenda dinacharyayil, onno athiladhikamo cheria subrutineukal verthirichedukkaan kazhiyum; allengil duplicate dinacharyakalkkaayi, duplication neekkam cheyth oru pankitta function upayogichu maattisthaapikkaam. refactoring nadathaathathukondu saankethika kadam shekharikkaanaakum; maruvashathu, saankethika kadam thirichadaykkunnathinula praadhamika maargangalilonnaanu refactoring.
aanukoolyangal.
refactoringinte pravarthanatthinu rund pothuvaaya vibhaagangalund.
oru aaplikkeshan pravarthippikkaan edukkunna samayathekkaal vikasana samayam kuraykkaan lakshyamidunna parambaraagatha software-vikasana thanthrangalil ninnu undaakunna software bloat ennariyappedunna prograamukalile kaaryakshamathayillaaymakal neekkam cheyyaan perfomence enchineeyaringinu kazhiyum. perfomence enchineeyaringinu athu pravartthikkunna hardwarein anusrithamaayi software roopakalppana cheyyaanum kazhiyum, udaaharanathinu, samanthara prosessorukaludeyum vekttar unitukaludeyum prayojanam nedunnathinu.
velluvilikal.
nilavilulla oru software systethekkurichulla arivu thirike labhikkunnathin software sisttam ghadana, dattaa modalukal, intra-aaplikkeshan dependensikal enniva refactoringinu aavasyamaanu.
teamukalude vittuvarav soochippikkunnathu oru sisttathinte nilavile avasthayekkurichum developermar upekshikkunna design theerumaanangalekkurichum nashtappettatho krithyathayillaathatho aaya arivine soochippikkunnu. kooduthal coode refactoring pravarthanangalkku eee arivu veendedukkaan adhika sramam aavashyamaayi vannekkaam.
refactoring pravartthanangal oru software sisttathinte gadanaaparamaaya vaasthuvidya vashalaakkunna vasthuvidyaa parishkkaranangal srishtikkunnu. atharam thakarcha paripalanaakshamatha, graahyabodham thudangiya vasthuvidyaa savisheshathakale badhikkunnu, ithu software samvidaanangalude poornnamaaya punarvikasanatthilekku nayichekkaam.
algorithangalekkurichum coode executionte seekwansukalekkurichum daatta nalkunna upakaranangalum saankethikavidyakalum upayogikkumbol coode refactoring pravartthanangal software intelligence upayogichu surakshithamaan. software sisttam ghadana, dattaa modalukal, intra-komponant dependensikal ennivayude aantharika avasthaykku manassilakkaavunna oru formet nalkunnathu oru uyarnna thalatthilulla dhaarana roopappeduthunnathinum thudarnnu enthaanu parishkkarikkendathu, engane ennathinekkurichulla parishkritha kaazhchappaadukal roopappeduthunnathinum nirnaayaka gadakamaanu.
parisodhana.
pathiv pravartthanangal pratheekshichathupole pravarthikkunnuvennu urappakkaan refactoringinu munbu automatic yoonit testtukal sajjeekarikkanam. orotta aattomik kammitt upayogichu nadathumbol yoonit parishodhanakalkk valia refactorukalil polum sthiratha konduvaraan kazhiyum. onniladhikam padhathikalil vyaapichukidakkunna surakshithavum aattomik refactorukalum anuvadikkunnathinulla oru pothu thanthram ellah padhathikalum monorepo ennariyappedunna orotta shekharathil sambharikkuka ennathaanu.
yoonit parishodhanaykkoppam, refactoring ennathu oru cheria prograam parivartthanam nadathunnathinum krithyatha urappakkaan athu parisodhikkunnathinum mattoru cheria parivartthanam nadathunnathinumulla oru aavarthana chakramaanu. eathenkilum ghattathil oru parisodhana parajayappettaal, avasaanathe cheria maattam pazhayapadiyaakkukayum mattoru reethiyil aavarthikkukayum cheiyunnu. niravadhi cheria ghattangaliloode prograam athu evideyaayirunno avide ninnu ningal aagrahikkunnidathekku neengunnu. eee aavarthana prakriya praayogikamaakanamenkil, parisodhanakal valare vegathil nadakkanam, allengil prograamar avarude samayathinte valiyoru bhagam parisodhanakal poortthiyaakunnathinaayi kaathirikkendivarum. theevramaaya prograaminginteyum mattu chadulamaaya software vikasanathinteyum vakthaakkal eee pravartthanatthe software vikasana chakratthinte avibhaajya gadakamaayi visheshippikkunnu.
saankethikavidyakal.
micro-refactoringinte chila udaaharanagal ivideyundu; ivayil chilath chila bhaashakalkko bhasha tharangalko maathrame baadhakamaakoo. martin foularude refactoring pusthakatthilum websaittilum oru neenda pattika kaanam. pala vikasana parithasthithikalum eee micro-refactoringukalkku yaanthrika pinthuna nalkunnu. udaaharanathinu, oru prograamarkk oru veriyabilinte peril click cheyth oru kontekst menuvil ninnu "encapsulate feeld" refactoring thiranjedukkaam. idea pinneedu kooduthal vishadaamshangalkkaayi aavasyappedum, saadhaaranayaayi vivekapoornamaaya sthirasthithikalum coode maattangalude preview. prograamar sthireekaranathinu sesham athu kodiludaneelam aavashyamaaya mattangal nadappilaakkum.
hardware refactoring.
refactoring" enna padam yadhaarthathil software kodinte refactoringine maathram soochippikkumbol, sameepa varshangalil hardware vivarana bhashakalil ezhuthiya code refactor cheythittundu. hardware vivarana bhashakalil coode refactor cheiyunnathinulla oru hraswa padamaayi "hardware refactoring" enna padam upayogikkunnu. mikka hardware enchineeyarmaarum hardware vivarana bhaashakale prograaming bhashakalaayi kanakkaakkaathathinaal, hardware refactoring parambaraagatha coode refactoringil ninnu oru prathyeka mekhalayaayi kanakkaakkanam.
analog hardware vivaranangalude (vhdl-aamsil) automated refactoring sengum haz nirddeshichittundu. avarude sameepanathil, refactoring oru hardware roopakalppanayude simulated swabhaavam samrakshikkunnu. yadhaartha coode cheyyaan kazhiyaathappol, staanderd synthesis toolukal vazhi refactor cheytha coode prosess cheyyaan kazhiyum ennathaanu mechappeduthunna noonn-functional alavu. maanuval refactoring aanenkilum digital hardware vivarana bhaashakalude refactoring synopsis fellow mike keating parishodhichittundu. sankeernamaaya samvidaanangal manasilakkaan eluppamaakkuka ennathaanu addehathinte lakshyam, ithu designermaarude uthppaadanakshamatha vardhippikkunnu.
charithram.
prasidheekaricha saahithyathil "refactoring" enna padam aadyamaayi upayogikkunnathu 1990 septambaril vilyam opdikkum ralph johnson ezhuthiya oru lekhanathilaanu.
griswoldinte piechu.dii. prabandham,
opidikkinte piechu.dii. 1992ll prasidheekaricha prabandhavum eee padam upayogichu. pathittaandukalaayi anoupachaarikamaayi refactoring coode nadathappedunnundengil, vilyam griswoldinte 1991 piechu.dii. ellah sidhaanthangalum yanthrangalum valarekkaalamaayi prograam parivartthana samvidaanangalaayi labhyamaanengilum, pravartthanaparavum nadapadikramaparavumaaya prograamukalude refactoringinecturich aadyathe pradhana academic kruthikalilonnaanu prabandham, thudarnnu object ooriyantad prograamukalude refactoringinecturich vilyam opdikkinte 1992 leeii prabandham. eee vibhavangalellaam refactoringinulla pothuvaaya reethikalude oru kaattalog nalkunnu; oru refactoring reethikk ningal eppol reethi prayogikkanam (allengil paadilla) ennathinulla reethiyum soochakangalum engane prayogikkaamennathinte vivaranamundu.
martin foularude "refactoringa nilavilulla kodinte roopakalppana mechappeduthal" enna pusthakam canonical reference aanu. 
factoring", "factoring outtu" ennee padangal kuranjathu 1980 kalude thudakkam muthal forth kammyoonittiyil eee reethiyil upayogikkunnu. lioo brody 'thinking fort' (1984) enna pusthakatthile aaram adhyayam eee vishayathinayi samarppichirikkunnu.
theevramaaya prograamingil, ekstraakt reethi refactoring saankethikathaykku adisthaanaparamaayi faaktaringinte athe ardhamundu; oru "vaakk" (allengil function) cheruthum eluppathil paripalikkaavunnathumaaya functionukalaayi vibhajikkuka.
sii. vii. ezz allengil ezz. vii. enn polulla software shekharangalil rekhappeduthiyittulla sankeernamaaya software maattangalude samkshiptha vivaranagal nalkunnathinu refactoringukal posthokku punarnirmmikkaanum kazhiyum.
automated coode refactoring.
pala software edittarmaarkkum aidikalkkum automated refactoring pinthunayundu. eee edittarmaaril chilarude allengil refactoring brouserukal ennu vilikkappedunnavarude oru pattika ivideyundu.

