Sobes.tech
Junior

Kas ir DRY princips un kādus aspektus tas ietver?

sobes.tech AI

Atbilde no AI

DRY (Don't Repeat Yourself) princips — ne atkārtojies. Šis ir ir programmēšanas pamatprincipi, kas vērsts uz lieka koda un datu samazināšanu. Šī principa ievērošana uzlabo uzturējamību, lasāmību un samazina kļūdu iespējamību.

DRY principa aspekti:

  • Koda dublēšanās novēršana: Atkārtojošie blokķēdes tiek izdalītas funkcijās, klasēs, moduļos.
    // Slikti:
    def process_user_data(user):
        print(f"Processing data for user: {user['name']}")
        # Daudzi apstrādes soļi
        print("Data processing finished.")
    
    def process_order_data(order):
        print(f"Processing data for order: {order['id']}")
        # Daudzi apstrādes soļi (līdzīgi kā lietotāja dati)
        print("Data processing finished.")
    
    // Labi:
    def process_data(item_type, item_id):
        print(f"Processing data for {item_type}: {item_id}")
        # Kopīgi apstrādes soļi
        print("Data processing finished.")
    
    process_data("user", user['name'])
    process_data("order", order['id'])
    
  • Datu dublēšanās novēršana: Tā pati informācija tiek glabāta vienā vietā (piemēram, konfigurācijas parametri, konstantes).
    // Slikti:
    {
      "api_url_users": "https://api.example.com/users",
      "api_url_orders": "https://api.example.com/orders"
    }
    
    // Labi:
    {
      "base_api_url": "https://api.example.com",
      "endpoints": {
        "users": "/users",
        "orders": "/orders"
      }
    }
    
  • Biznesa loģikas dublēšanās novēršana: Noteikumi un algoritmi tiek realizēti vienu reizi.
    // Slikti:
    // Validācija vairākās vietās
    if (orderAmount < 0) {
        throw new InvalidOrderException("Amount cannot be negative.");
    }
    // Līdzīga pārbaude citā servisā
    
    // Labi:
    // Centralizēta validācijas loģika
    public void validateOrderAmount(double amount) {
        if (amount < 0) {
            throw new InvalidOrderException("Amount cannot be negative.");
        }
    }
    
  • Konfigurācijas dublēšanās novēršana: Lietojumprogrammas iestatījumi tiek izdalīti konfigurācijas failos vai centrālajos glabāšanas vietās.
  • Dokumentācijas dublēšanās novēršana: Informācija ir strukturēta un atsaucas uz vienu avotu.

DRY principa ievērošana noved pie modulārākām, vieglāk lasāmām un mērogojamām sistēmām, kas ir kritiski svarīgi QA, jo tas atvieglo testēšanu un defektu lokalizāciju.