Refaktorering

Refactoring er en programvareteknisk teknikk for å restrukturere kildekoden , endre dens interne struktur uten å endre dens eksterne atferd.

Koderefaktorering

I programvareteknikk brukes begrepet refactoring ofte for å beskrive endring av kildekode uten å endre oppførselen, uformelt kjent som kodeopprydding . Refaktorering gjøres ofte som en del av programvareutviklingsprosessen: utviklere bytter inn ny funksjonalitet og testcases med refactoring-kode for å forbedre intern konsistens og klarhet. Testene sikrer at refaktoreringen ikke endrer oppførselen til koden.

Refaktorering er den delen av kodevedlikehold som ikke fikser feil eller legger til funksjonalitet. I stedet er målet å forbedre forståelsen av koden eller å endre struktur og layout og fjerne død kode, for å gjøre den enklere å vedlikeholde i fremtiden. Å legge til ny atferd til et program kan være vanskelig med den gitte strukturen til programmet, så en utvikler kan først refaktorere det for å gjøre denne oppgaven enklere og deretter legge til den nye atferden.

Begrepet ble laget som en analogi til faktorisering av tall og polynomer . For eksempel kan det faktoriseres som , og avsløre en intern struktur som ikke tidligere var synlig (slik som de to røttene ved -1 og +1). På samme måte kan endringen i den synlige strukturen i programvarerefaktorering ofte avsløre den "skjulte" interne strukturen til den originale koden.

Refaktoreringen bør gjøres som et eget trinn, for lettere å kontrollere at det ikke er innført feil ved gjennomføringen. På slutten av refaktoreringen er enhver endring i atferd helt klart en feil og kan fikses separat fra feilsøking av den nye funksjonaliteten.

Et eksempel på en triviell refactoring er å endre et variabelnavn for å være mer meningsfullt, for eksempel en enkelt bokstav 't' til 'tid'. En mer kompleks refactoring er å transformere klumpen inne i en blokk til en subrutine . En enda mer kompleks refactoring er å erstatte et betinget utsagn ifmed polymorfisme .

Selv om kodeopprydding har blitt gjort i flere tiår, er nøkkelfaktoren i refactoring å med vilje rydde opp separat fra å legge til ny funksjonalitet, ved å bruke en kjent katalog over nyttige refactoring-metoder, og deretter sjekke koden ved å kjøre enhetstestene , vel vitende om at enhver endring i atferd betyr at en feil har blitt introdusert.

Refaktorering er et viktig aspekt ved ekstrem programmering .

Martin Fowlers bok Refactoring er den klassiske referansen. Selv om koderefaktorering har blitt utført uformelt i årevis, er William F. Opdykes ( 1993 ) doktorgradsavhandling det første kjente arbeidet som spesifikt undersøker denne teknikken. Alle disse ressursene gir en katalog over vanlige refactoring-metoder . En refaktoreringsmetode har en beskrivelse av hvordan metoden skal brukes og indikasjoner på når den bør (eller ikke bør) brukes.

Refaktorering er et så viktig konsept at det har blitt identifisert av David A. Wheeler som "en av de viktigste innovasjonene innen programvare." [ 1 ]

Refaktorering av andre tekster

Begrepet refactoring har sin opprinnelse i riket av dataprogrammering , men konseptet har blitt brukt for å endre hvilken som helst tekst.

Wiki -nettsteder refererer refactoring til prosessen med å omskrive og omorganisere tekst for å holde den kort og samtidig bevare innholdet. Det gjelder spesielt diskusjoner, som dermed kan gjøres tilgjengelige for personer som er interessert i argumentene som tilbys i diskusjonen og informasjonen man kan få ut av den, snarere enn i selve diskusjonens historie. Det kan være vanskelig å refaktorere på en slik måte at alle diskusjonsdeltakerne er enige.

Etymologi

Den tidligste kjente bruken av begrepet refactoring i den publiserte litteraturen er i artikkelen Refactoring: An Aid in Designing Application Frameworks and Evolving Object-Oriented Systems , Proceedings of the Symposium on Object Oriented Programming Emphasizing Practical Applications (SOOPPA) september 1990, ACM av William F. Opdyke og Ralph E. Johnson. [ 2 ] William Opdykes doktorgradsavhandling med tittelen "Refactoring Object-Oriented Framework" (University of Illinois) ble publisert i 1992. [ 3 ] Både begrepet refactoring og teknikken den definerer ble sikkert brukt før.

Referanser

  1. [1]
  2. [2]
  3. [3]

Eksterne lenker