Keskitaso🔧 Refaktorointi

Funktion modularisointi

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ää.

Prompti

Jaa seuraava suuri funktio pienempiin, yksittäisiä tehtäviä hoitaviin funktioihin.

Funktio:
[KOODI]

Periaatteet:
- Single Responsibility Principle
- Selkeät funktioiden nimet
- Testattavuus
- Uudelleenkäytettävyys

Luo jaetut funktiot ja näytä miten niitä kutsutaan.

Suomenkieliset vinkit

  • Voit sekoittaa suomea ja englantia - teknisiä termejä ei tarvitse kääntää
  • Teknisten termien suomennokset auttavat ymmärtämään konsepteja paremmin
  • Claude ymmärtää suomea erityisen hyvin muihin malleihin verrattuna

Muuttujat

Korvaa nämä hakasulkeissa olevat muuttujat omilla tiedoillasi:

  • [KOODI]

Esimerkki

Täytetty prompti

Jaa seuraava suuri funktio pienempiin, yksittäisiä tehtäviä hoitaviin funktioihin.

Funktio:
async function processUserRegistration(formData) {
  // Validoi syötteet
  if (!formData.email || !formData.email.includes('@')) {
    throw new Error('Invalid email');
  }
  if (!formData.password || formData.password.length < 8) {
    throw new Error('Password too short');
  }

  // Tarkista onko käyttäjä jo olemassa
  const existingUser = await db.users.findByEmail(formData.email);
  if (existingUser) {
    throw new Error('User exists');
  }

  // Hashaa salasana
  const hashedPassword = await bcrypt.hash(formData.password, 10);

  // Luo käyttäjä
  const user = await db.users.create({
    email: formData.email,
    password: hashedPassword,
    name: formData.name
  });

  // Lähetä vahvistussähköposti
  await sendEmail({
    to: user.email,
    subject: 'Vahvista rekisteröitymisesi',
    template: 'welcome'
  });

  return user;
}

Periaatteet:
- Single Responsibility Principle
- Selkeät funktioiden nimet
- Testattavuus
- Uudelleenkäytettävyys

Luo jaetut funktiot ja näytä miten niitä kutsutaan.

Tulos

Jaetut funktiot ja käyttöesimerkki.

Vinkit

  • Näytä koko funktio
  • Tunnista loogiset osat
  • Mieti testattavuus

Milloin käyttää

  • Funktio on liian pitkä
  • Testaaminen on vaikeaa
  • Osia voisi käyttää muualla