Sobes.tech
Junior

Czym jest zasada DRY i jakie aspekty obejmuje?

sobes.tech AI

Odpowiedź od AI

Zasada DRY (Don't Repeat Yourself) oznacza nie powtarzaj się. To podstawowa zasada rozwoju oprogramowania, mająca na celu zmniejszenie nadmiarowości kodu i danych. Przestrzeganie tej zasady poprawia łatwość utrzymania, czytelność i zmniejsza prawdopodobieństwo błędów.

Aspekty zasady DRY:

  • Unikanie duplikacji kodu: Powtarzające się bloki kodu są przenoszone do funkcji, klas, modułów.
    # Złe:
    def process_user_data(user):
        print(f"Przetwarzanie danych dla użytkownika: {user['name']}")
        # Wiele kroków przetwarzania
        print("Przetwarzanie danych zakończone.")
    
    def process_order_data(order):
        print(f"Przetwarzanie danych dla zamówienia: {order['id']}")
        # Wiele kroków przetwarzania (podobnych do danych użytkownika)
        print("Przetwarzanie danych zakończone.")
    
    # Dobrze:
    def process_data(item_type, item_id):
        print(f"Przetwarzanie danych dla {item_type}: {item_id}")
        # Wspólne kroki przetwarzania
        print("Przetwarzanie danych zakończone.")
    
    process_data("user", user['name'])
    process_data("order", order['id'])
    
  • Unikanie duplikacji danych: Ta sama informacja jest przechowywana w jednym miejscu (np. parametry konfiguracyjne, stałe).
    // Złe:
    {
      "api_url_users": "https://api.example.com/users",
      "api_url_orders": "https://api.example.com/orders"
    }
    
    // Dobrze:
    {
      "base_api_url": "https://api.example.com",
      "endpoints": {
        "users": "/users",
        "orders": "/orders"
      }
    }
    
  • Unikanie duplikacji logiki biznesowej: Reguły i algorytmy są implementowane tylko raz.
    // Złe:
    // Walidacja w wielu miejscach
    if (orderAmount < 0) {
        throw new InvalidOrderException("Kwota nie może być ujemna.");
    }
    // Podobna kontrola w innym serwisie
    
    // Dobrze:
    // Centralna logika walidacji
    public void validateOrderAmount(double amount) {
        if (amount < 0) {
            throw new InvalidOrderException("Kwota nie może być ujemna.");
        }
    }
    
  • Unikanie duplikacji konfiguracji: Ustawienia aplikacji są przenoszone do plików konfiguracyjnych lub centralnych magazynów.
  • Unikanie duplikacji w dokumentacji: Informacje są strukturalnie uporządkowane i odwołują się do jednego źródła.

Przestrzeganie zasady DRY prowadzi do bardziej modułowych, łatwych do odczytania i skalowalnych systemów, co jest kluczowe dla QA, ponieważ upraszcza testowanie i lokalizację defektów.