Sobes.tech
Junior

Šta je princip DRY i koje aspekte obuhvata?

sobes.tech АИ

Одговор од АИ

Princip DRY (Don't Repeat Yourself) — ne ponavljaj se. Ovo je temeljni princip razvoja softvera, usmeren na smanjenje suvišnosti koda i podataka. Poštovanje ovog principa povećava održivost, čitljivost i smanjuje verovatnoću grešaka.

Aspekti principa DRY:

  • Izbegavanje dupliranja koda: Ponavljajući blokovi koda se izdvajaju u funkcije, klase, module.
    // Loše:
    def process_user_data(user):
        print(f"Processing data for user: {user['name']}")
        # Mnogi koraci obrade
        print("Data processing finished.")
    
    def process_order_data(order):
        print(f"Processing data for order: {order['id']}")
        # Mnogi koraci obrade (slično kao kod korisnika)
        print("Data processing finished.")
    
    // Dobro:
    def process_data(item_type, item_id):
        print(f"Processing data for {item_type}: {item_id}")
        # Deljeni koraci obrade
        print("Data processing finished.")
    
    process_data("user", user['name'])
    process_data("order", order['id'])
    
  • Izbegavanje dupliranja podataka: Isto informacije se čuvaju na jednom mestu (npr. konfiguracioni parametri, konstante).
    // Loše:
    {
      "api_url_users": "https://api.example.com/users",
      "api_url_orders": "https://api.example.com/orders"
    }
    
    // Dobro:
    {
      "base_api_url": "https://api.example.com",
      "endpoints": {
        "users": "/users",
        "orders": "/orders"
      }
    }
    
  • Izbegavanje dupliranja poslovne logike: Pravila i algoritmi se implementiraju jednom.
    // Loše:
    // Validacija na više mesta
    if (orderAmount < 0) {
        throw new InvalidOrderException("Amount cannot be negative.");
    }
    // Slično provera u drugoj usluzi
    
    // Dobro:
    // Centralizovana logika validacije
    public void validateOrderAmount(double amount) {
        if (amount < 0) {
            throw new InvalidOrderException("Amount cannot be negative.");
        }
    }
    
  • Izbegavanje dupliranja konfiguracije: Podešavanja aplikacije se izdvajaju u konfiguracione fajlove ili centralizovane skladišta.
  • Izbegavanje dupliranja u dokumentaciji: Informacije su strukturirane i referenciraju se na jedinstveni izvor.

Poštovanje DRY principa dovodi do modularnijih, lakše čitljivih i skalabilnih sistema, što je ključno za QA, jer olakšava testiranje i lokalizaciju defekata.