Sobes.tech
Junior

Mi a DRY elv és milyen aspektusokat foglal magában?

sobes.tech MI

Válasz az MI-től

A DRY (Don't Repeat Yourself) elv azt jelenti, hogy ne ismételd magad. Ez egy alapvető elv a szoftverfejlesztésben, amely a kód és adatok redundanciájának csökkentésére irányul. Ennek betartása javítja a karbantarthatóságot, az olvashatóságot, és csökkenti a hibák valószínűségét.

A DRY elv aspektusai:

  • Kódduplikáció elkerülése: A ismétlődő kódrészek függvényekbe, osztályokba, modulokba kerülnek.
    # Rossz:
    def process_user_data(user):
        print(f"Felhasználó adatai feldolgozva: {user['name']}")
        # Sok feldolgozási lépés
        print("Feldolgozás befejezve.")
    
    def process_order_data(order):
        print(f"Rendelés adatai feldolgozva: {order['id']}")
        # Sok feldolgozási lépés (hasonló a felhasználói adatokhoz)
        print("Feldolgozás befejezve.")
    
    # Jó:
    def process_data(item_type, item_id):
        print(f"{item_type} adatainak feldolgozása: {item_id}")
        # Közös feldolgozási lépések
        print("Feldolgozás befejezve.")
    
    process_data("user", user['name'])
    process_data("order", order['id'])
    
  • Adatok duplikációjának elkerülése: Az ugyanaz az információ egy helyen tárolódik (pl. konfigurációs paraméterek, konstansok).
    // Rossz:
    {
      "api_url_users": "https://api.example.com/users",
      "api_url_orders": "https://api.example.com/orders"
    }
    
    // Jó:
    {
      "base_api_url": "https://api.example.com",
      "endpoints": {
        "users": "/users",
        "orders": "/orders"
      }
    }
    
  • Üzleti logika duplikációjának elkerülése: A szabályokat és algoritmusokat egyszer kell megvalósítani.
    // Rossz:
    // Érvényesítés több helyen
    if (orderAmount < 0) {
        throw new InvalidOrderException("Az összeg nem lehet negatív.");
    }
    // Hasonló ellenőrzés egy másik szolgáltatásban
    
    // Jó:
    // Központosított érvényesítési logika
    public void validateOrderAmount(double amount) {
        if (amount < 0) {
            throw new InvalidOrderException("Az összeg nem lehet negatív.");
        }
    }
    
  • Konfiguráció duplikációjának elkerülése: Az alkalmazás beállításait konfigurációs fájlokba vagy központi tárolókba helyezik.
  • Dokumentáció duplikációjának elkerülése: Az információ strukturált és egyetlen forráshoz kapcsolódik.

A DRY betartása modulárisabb, könnyebben olvasható és skálázható rendszerekhez vezet, ami kritikus a QA számára, mivel megkönnyíti a tesztelést és a hibák lokalizálását.