Būdamas kūrėju, kaip pradėti dirbti su nauju projektu...??
Pirmiausia surenkate keletą pagrindinių reikalavimų, o tada, remdamiesi reikalavimu, pradedate diegti funkciją po vieną. Vykdydami projektą ir sužinoję daugiau apie jį, nuolat pridedate ir keičiate kodą savo kodų bazėje. Vėliau taip pat pakeisite kodą, kad ištaisytumėte klaidą ir kraštutinius atvejus.

Bet kas atsitiks po kelių dienų ar mėnesių...? Kaip atrodo tavo kodas...?? Ar tai sudėtinga? Ar sunku suprasti? Jei taip, tuomet tikrai nekreipėte dėmesio į kodo tobulinimą ar kodo pertvarką. Galbūt parašėte pasikartojantį kodą nežiūrėdami į esamą kodą arba parašėte ilgesnius metodus / funkcijas, dideles klases, per daug parametrų, neintuityvius kintamųjų pavadinimus, kodo vietą ir pan.
Kodo tobulinimas arba atnaujinimas nekeičiant programinės įrangos funkcionalumo ar išorinės programos veikimo yra žinomas kaip kodo pertvarkymas. Tai sumažina technines sąnaudas ir daro kodą efektyvesnį ir lengviau prižiūrimą. Jei anksčiau nekreipsite dėmesio į kodo keitimo procesą, vėliau sumokėsite už kodo klaidas. Taigi neignoruokite kodo valymo.
Programinės įrangos kūrimo procese skirtingi kūrėjai turi skirtingus kodo rašymo stilius. Jie atlieka pakeitimus, prižiūri kodą, pratęsia kodą ir dažniausiai palieka kodą be nuolatinio pertvarkymo. Nepertvarkytas kodas linkęs kodas rot: daug painiavos ir netvarkos kode, pvz., pasikartojančio kodo, nesveikos priklausomybės tarp klasių ar paketų, blogai paskirstytos klasės atsakomybės, per daug atsakomybės vienam metodui ar klasei ir tt Norint išvengti visų šių problemų, svarbu nuolat keisti veiksmą.
Dabar klausimas… Kokie yra kodo pertvarkymo būdai?
Aptarsime keletą populiarių ir įprastų kodo pertvarkymo metodų, bet prieš tai aptarkime keletą greitų patarimų…
Patarimai:
- Turite atlikti kodo pertvarkymą mažais žingsneliais. Atlikite nedidelius programos pakeitimus. Dėl kiekvieno nedidelio pakeitimo jūsų kodas šiek tiek pagerėtų, o programa paliks veikiančią.
- Atlikę nedidelius pertvarkymo proceso pakeitimus, paleiskite bandomąjį TDD ir CI. Nevykdydami šių testų, kyla pavojus, kad bus klaidų.
- Atkūrimo proceso metu nekurkite jokių naujų funkcijų ar funkcijų. Prieš įtraukdami bet kokius atnaujinimus ar naujas funkcijas į esamą kodą, turėtumėte pakeisti kodą.
- Atnaujinimo procesas gali turėti įtakos testavimo rezultatams, todėl verta įtraukti savo kokybės užtikrinimo ir testavimo komandą į pakartotinio kūrimo procesą.
- Turite sutikti, kad nebūsite visiškai patenkinti savo kodu. Netolimoje ateityje jūsų pakeistas kodas bus pasenęs ir turėsite jį pakartotinai pakeisti.
Dažniausi kodo pertvarkymo metodai
Yra daug būdų ir metodų, kaip atkurti kodą. Pakalbėkime apie keletą populiarių…
1. Raudonai žalias pertvarkymas
Raudona-žalia yra populiariausia ir plačiausiai naudojama kodo keitimo technika Agile programinės įrangos kūrimo procese. Ši technika vadovaujasi pirmojo bandymo metodu kuriant ir įgyvendinant, tai yra visų formų pertvarkymo pagrindas. Kūrėjai imasi iniciatyvos perjungti į bandomąjį kūrimo ciklą ir tai atliekama į tris rajono etapus.

- RAUDONA: Pirmas žingsnis prasideda parašant nepavykusį raudonąjį testą. Sustojate ir patikrinate, ką reikia tobulinti.
- Žalias: Antrame žingsnyje rašote pakankamai paprasčiausią kodą ir gaunate žaliąjį testavimą.
- Refaktorius: Paskutiniame ir trečiajame žingsniuose sutelkite dėmesį į kodo tobulinimą ir patobulinimą, kad testas būtų ekologiškas.
Taigi iš esmės šią techniką sudaro dvi atskiros dalys: pirmoji dalis apima kodo, kuris prideda naują funkciją į jūsų sistemą, rašymas, o antroji dalis yra apie kodo, kuris atlieka šią funkciją, pertvarkymą. Atminkite, kad darbo eigos metu neturėtumėte daryti abiejų veiksmų vienu metu.
2. Refaktoringas pagal abstrakciją
Šią techniką dažniausiai naudoja kūrėjai, kai reikia atlikti didelį pertvarkymo kiekį. Daugiausia naudojame šią techniką, kad sumažintume kodo perteklių (dubliavimą). Tai apima klasių paveldėjimą, hierarchiją, naujų klasių ir sąsajų kūrimą, ištraukimą, paveldėjimo pakeitimą delegavimu ir atvirkščiai.

Patraukimas į viršų / Stumimas žemyn metodas yra geriausias šio požiūrio pavyzdys.
- Prisitraukimo metodas: Jis sutraukia kodo dalis į superklasę ir padeda pašalinti kodo dubliavimą.
- Nuspaudimo metodas: Jis paima kodo dalį iš superklasės ir perkelia ją žemyn į poklasius.
Ištraukite konstruktoriaus korpusą, ištraukite poklasį, išskleiskite superklasę, sutraukite hierarchiją, formos šablono metodą, išskleiskite sąsają, pakeiskite paveldėjimą delegavimu, pakeiskite delegavimą paveldėjimu, pastumkite lauką žemyn – visa tai yra kiti pavyzdžiai.
Iš esmės, naudojant šią techniką, mes sukuriame abstrakcijos sluoksnį toms sistemos dalims, kurias reikia pertvarkyti, ir atitikmenį, kuris galiausiai jį pakeis. Žemiau pateikiami du įprasti pavyzdžiai…
java sveikasis skaičius
- Inkapsuliuotas laukas: Priverčiame kodą pasiekti lauką su geter ir setter metodais.
- Apibendrinti tipą: Kuriame bendresnius tipus, kad leistų dalytis kodu, tipo tikrinimo kodą pakeičiame būsena, sąlyginį pakeičiame polimorfizmu ir pan.
3. Komponavimo būdas
Programos kūrimo etape daug kartų savo programoje rašome ilgus metodus. Dėl šių ilgų metodų jūsų kodas labai sunkiai suprantamas ir sunkiai keičiamas. Tokiais atvejais dažniausiai naudojamas komponavimo metodas.
Taikydami šį metodą naudojame supaprastintus metodus, kad sumažintume kodo dubliavimą. Kai kurie pavyzdžiai: išskleidimo metodas, kintamojo ištraukimas, eilutinė Temp, Temp pakeitimas užklausa, eilutinis metodas, laikinojo kintamojo padalijimas, parametrų priskyrimų pašalinimas ir kt.
Ištraukimas: Suskaidome kodą į mažesnes dalis, kad surastume ir ištrauktume fragmentaciją. Po to sukuriame atskirus metodus šiems gabalams, o tada jis pakeičiamas šio naujo metodo iškvietimu. Išskyrimas apima klasę, sąsają ir vietinius kintamuosius.
Eilutėje: Šis požiūris pašalina nereikalingų metodų skaičių mūsų programoje. Surandame visus metodų iškvietimus, o paskui juos visus pakeičiame metodo turiniu. Po to mes ištriname metodą iš savo programos.
java eilutės pridėjimas
4. Supaprastinimo metodai
Šiam metodui taikomi du būdai... aptarkime juos abu.
- Sąlyginių išraiškų pertvarkymo supaprastinimas: Sąlyginis teiginys programuojant laikui bėgant tampa logiškesnis ir sudėtingesnis. Norėdami suprasti visą programą, turite supaprastinti kodo logiką.
Yra tiek daug būdų, kaip pertvarkyti kodą ir supaprastinti logiką. Kai kurie iš jų yra šie: konsoliduoti sąlyginę išraišką ir kopijuoti sąlyginius fragmentus, išskaidyti sąlyginę, pakeisti sąlyginę polimorfizmu, pašalinti kontrolinę vėliavėlę, pakeisti įdėtą sąlyginį elementą apsauginiais sakiniais ir kt. - Supaprastinamas metodas, iškviečiamas pakartotinai: Taikydami šį metodą metodų iškvietimus padarome paprastesnius ir lengviau suprantamus. Mes dirbame su sąveika tarp klasių ir supaprastiname jų sąsajas.
Pavyzdžiai: naujų parametrų pridėjimas, pašalinimas ir įvedimas, parametro pakeitimas aiškiu metodu ir metodo iškvietimu, parametrizavimo metodas, atskiros užklausos iš modifikatoriaus sudarymas, viso objekto išsaugojimas, nustatymo metodo pašalinimas ir kt.
5. Savybių perkėlimas tarp objektų
Šia technika kuriame naujas klases ir saugiai perkeliame funkcionalumą tarp senų ir naujų klasių. Slepiame išsamią diegimo informaciją nuo viešos prieigos.
Dabar kyla klausimas... kada perkelti funkcijas tarp klasių arba kaip nustatyti, kad laikas perkelti funkcijas iš vienos klasės į kitą?
Kai pastebite, kad klasė turi tiek daug pareigų ir vyksta per daug dalykų, arba kai pastebėsite, kad klasė nereikalinga ir nieko nedaro programoje, galite perkelti kodą iš šios klasės į kitą klasę ir visiškai jį ištrinti.
Pavyzdžiai: perkelti lauką, išskleisti klasę, perkelti metodą, eilutę, paslėpti delegatą, įvesti svetimą metodą, pašalinti vidurinį žmogų, įvesti vietinį plėtinį ir kt.
6. Parengiamasis pertvarkymas
Šį metodą geriausia naudoti, kai pastebite, kad pridedant naujų funkcijų programoje, reikia atlikti pertvarkymą. Taigi iš esmės tai yra programinės įrangos atnaujinimo dalis su atskiru pertvarkymo procesu. Jei pastebėsite, kad kodą reikia atnaujinti ankstesniuose funkcijų kūrimo etapuose, išvengsite techninių skolų.
Galutinis vartotojas negali matyti tokių inžinierių komandos pastangų akis į akį, tačiau su programa dirbantys kūrėjai kurdami programą supras kodo pertvarkymo vertę. Jie gali sutaupyti savo laiko, pinigų ir kitų išteklių, jei tik praleis šiek tiek laiko atnaujindami kodą anksčiau.
Panašu, kad noriu nuvažiuoti 100 mylių į rytus, bet užuot tiesiog vaikščiojęs per mišką, važiuosiu 20 mylių į šiaurę iki greitkelio, o tada eisiu 100 mylių į rytus tris kartus didesniu greičiu, kokį galėčiau turėti, jei Tiesiog nuėjau tiesiai ten. Kai žmonės tave verčia eiti tiesiai ten, kartais reikia pasakyti: „Palauk, aš turiu patikrinti žemėlapį ir rasti greičiausią maršrutą“.
Jessica Kerr (Programinės įrangos kūrėjas)

7. Vartotojo sąsajos pertvarkymas
Galite atlikti paprastus vartotojo sąsajos pakeitimus ir pakeisti kodą. Pavyzdžiui: sulygiuokite įvesties lauką, pritaikykite šriftą, perfrazuokite aktyviu balsu nurodykite formatą, pritaikykite įprastą mygtuko dydį, padidinkite spalvų kontrastą ir t. t.
Baigiamieji žodžiai
Kodo atkūrimo procesą turite laikyti tvarkingo namo valymu. Bereikalinga netvarka namuose gali sukurti chaotišką ir įtemptą aplinką. Tas pats pasakytina apie rašytinį kodą. Švarų ir gerai sutvarkytą kodą visada lengva pakeisti, lengva suprasti ir lengva prižiūrėti. Vėliau nesusidursite su sunkumais, jei anksčiau atkreipsite dėmesį į kodo keitimo procesą.
Du įtakingiausi programinės įrangos kūrėjai Martinas Fowleris ir Kentas Bekas skyrė savo laiko, kad paaiškintų kodo keitimo procesą ir jo metodus. Jie taip pat parašė visą knygą šia tema Pertvarkymas: esamo kodo dizaino tobulinimas . Šioje knygoje aprašomi įvairūs pertvarkymo būdai, aiškiai paaiškinant, kaip dirbti su šiais pertvarkymo procesais. Rekomenduojame perskaityti šią knygą, jei norite įsigilinti į kodo keitimo procesą.