🔧

Refaktorointi promptit

Promptit koodin parantamiseen ja siistimiseen.

14 promptia

Milloin käytät näitä promptteja?

Refaktorointipromptit siistivät toimivaa koodia muuttamatta sen toimintaa. Vibekoodatessa koodia syntyy nopeasti, ja samat asiat toistuvat helposti monessa tiedostossa. Refaktorointi pitää projektin sellaisena, että sekä sinä että tekoäly ymmärrätte sen vielä kuukauden päästä.

  • Sama koodinpätkä toistuu useassa tiedostossa.
  • Yksi tiedosto on kasvanut satoihin riveihin, eikä kukaan enää tiedä, mitä se tekee.
  • Ennen uuden ominaisuuden lisäämistä, kun vanha rakenne tekisi siitä hankalan.
  • Tekoäly alkaa tehdä samoja virheitä, koska koodi on sekavaa.

Esimerkki

Tilanne: Kolmella sivulla on oma kopio samasta hintojen muotoilusta.

Tiedostoissa app/tuotteet/page.tsx, app/ostoskori/page.tsx ja app/kassa/page.tsx on sama hinnan muotoilu. Siirrä se yhteen funktioon tiedostoon lib/format.ts ja käytä sitä kaikissa kolmessa. Toiminta ei saa muuttua. Aja testit ja build lopuksi ja kerro, mitkä tiedostot muuttuivat.

Mitä tapahtuu: Muotoilu on yhdessä paikassa, ja seuraava muutos tehdään yhteen tiedostoon kolmen sijaan. Testit ja build kertovat, säilyikö toiminta.

Miten hyvä prompti rakennetaan?

Kaikki tämän kategorian promptit noudattavat samaa neljän osan rakennetta. Kun jokin osa puuttuu, tekoäly täyttää aukon arvauksella.

  1. Tavoite: mitä haluat lopputulokseksi, yhdellä tai kahdella lauseella.
  2. Konteksti: mitkä tiedostot, sivut tai virheilmoitukset liittyvät tehtävään.
  3. Rajaus: mitä tekoäly ei saa muuttaa, kuten ulkoasu, testit tai muut tiedostot.
  4. Tarkistus: miten tiedät, että tehtävä onnistui, esimerkiksi testit menevät läpi tai sivu näyttää oikean summan.

Yleisimmät virheet

  • Liian laaja pyyntö, kuten "siisti koko projekti". Tulos on iso muutos, jota on mahdoton tarkistaa.
  • Testit puuttuvat. Ilman testejä et tiedä, muuttiko refaktorointi toimintaa, joten kirjoita testit ensin.
  • Nimet ja rakenne vaihtuvat ilman syytä. Pyydä pitämään julkiset funktiot ja tiedostopolut ennallaan, ellei muutos ole tehtävän tarkoitus.

Vinkit

  • Sano aina, että toiminta ei saa muuttua, ja pyydä ajamaan testit.
  • Refaktoroi yksi asia kerrallaan.
  • Älä yhdistä refaktorointia ja uutta ominaisuutta samaan pyyntöön.

Liittyvät sanaston termit: Refaktorointi, DRY, Komponentti, TypeScript, Git

Koodin siistiminen

Aloittelija

Siisti ja selkeytä olemassa olevaa koodia.

Komponentin jakaminen osiin

Keskitaso

Jaa suuri, monimutkainen komponentti pienempiin ja uudelleenkäytettäviin osiin. Selkeyttää koodia, helpottaa testausta ja tekee ylläpidosta huomattavasti helpompaa.

Custom Hookin luonti

Keskitaso

Luo custom hook toistuvalle logiikalle, jotta vältät copy-paste-koodia komponenttien välillä. Saat siistin ja testattavan hookin jota voi käyttää koko sovelluksessa.

TypeScript-tyyppien lisääminen

Keskitaso

Lisää TypeScript-tyypit JavaScript-koodiin.

Funktion modularisointi

Keskitaso

Jaa suuri, vaikeasti luettava funktio pienempiin ja nimettyihin osiin jotka tekevät kukin yhden asian. Lopputulos on koodia jota on helppo testata ja ylläpitää.

Virheenkäsittelyn parantaminen

Keskitaso

Paranna koodin virheenkäsittelyä lisäämällä try-catch-lohkot, selkeät virheilmoitukset ja palautumisstrategiat. Lopputulos on sovellus joka ei kaadu yllättäviin tilanteisiin.

Promise-ketju async/awaitiksi

Keskitaso

Muunna Promise-ketjut selkeämmäksi async/await-syntaksiksi.

Prop drilling → Context API

Keskitaso

Korvaa prop drilling React Context API:lla.

React-komponentin memoization

Keskitaso

Optimoi komponentin uudelleenrenderöintiä React.memo, useMemo ja useCallback avulla.

If-else-refaktorointi

Keskitaso

Refaktoroi monimutkainen if-else selkeämmäksi.

Legacy-koodin riskikartoitus

Edistynyt

Tunnista legacy-moduulin suurimmat riskit ennen refaktorointia.

API-sopimusmuutoksen migraatio

Edistynyt

Suunnittele turvallinen migraatio API-sopimuksen muutokselle.

Virheviestien normalisointi

Keskitaso

Yhtenaista hajanaiset virheviestit backendissa ja frontendissa.

Muutosriskin esikatselu

Keskitaso

Arvioi muutoksen riskitaso ennen mergea ja listaa pakolliset tarkistukset.