Keskitaso🔧 Refaktorointi

Funktion modularisointi

Jaa suuri funktio pienempiin osiin.

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

Lisää prompteja

Selaa kaikkia refaktorointi prompteja tai tutustu muihin kategorioihin.