Sobes.tech
Junior

Mis on DRY põhimõte ja milliseid aspekte see hõlmab?

sobes.tech AI

Vastus AI-lt

DRY (Don't Repeat Yourself) põhimõte — ära korda ennast. See on põhialus tarkvaraarenduses, mille eesmärk on vähendada liigset koodi ja andmeid. Selle põhimõtte järgimine suurendab hooldatavust, loetavust ning vähendab vigade tõenäosust.

DRY põhimõtte aspektid:

  • Koodi dubleerimise vältimine: Korduvad koodiplokid eraldatakse funktsioonidesse, klassidesse, moodulitesse.
    // Halb:
    def process_user_data(user):
        print(f"Processing data for user: {user['name']}")
        # Paljud töötlemisastmed
        print("Data processing finished.")
    
    def process_order_data(order):
        print(f"Processing data for order: {order['id']}")
        # Paljud töötlemisastmed (nagu kasutaja andmed)
        print("Data processing finished.")
    
    // Hea:
    def process_data(item_type, item_id):
        print(f"Processing data for {item_type}: {item_id}")
        # Ühine töötlemisprotsess
        print("Data processing finished.")
    
    process_data("user", user['name'])
    process_data("order", order['id'])
    
  • Andmete dubleerimise vältimine: Sama teave salvestatakse ühes kohas (näiteks konfiguratsiooniparameetrid, konstantsed väärtused).
    // Halb:
    {
      "api_url_users": "https://api.example.com/users",
      "api_url_orders": "https://api.example.com/orders"
    }
    
    // Hea:
    {
      "base_api_url": "https://api.example.com",
      "endpoints": {
        "users": "/users",
        "orders": "/orders"
      }
    }
    
  • Äritegevuse loogika dubleerimise vältimine: Reeglid ja algoritmid rakendatakse üks kord.
    // Halb:
    // Valideerimine mitmes kohas
    if (orderAmount < 0) {
        throw new InvalidOrderException("Amount cannot be negative.");
    }
    // Sarnane kontroll teises teenuses
    
    // Hea:
    // Keskne valideerimisloogika
    public void validateOrderAmount(double amount) {
        if (amount < 0) {
            throw new InvalidOrderException("Amount cannot be negative.");
        }
    }
    
  • Konfiguratsiooni dubleerimise vältimine: Rakenduse seaded eraldatakse konfiguratsioonifailidesse või kesksetesse hoidlatele.
  • Dokumentatsiooni dubleerimise vältimine: Teave on struktureeritud ja viidatakse ühele allikale.

DRY põhimõtte järgimine viib modulaarsemate, kergemini loetavate ja skaleeritavate süsteemideni, mis on QA jaoks kriitilise tähtsusega, kuna see lihtsustab testimist ja defektide lokaliseerimist.