Sobes.tech
Junior

რა არის DRY პრინციპი და რა ასპექტებს მოიცავს?

sobes.tech AI

პასუხი AI-სგან

DRY (Don't Repeat Yourself) қағидаты — қайталама. Бұл бағдарламалық қамтамасыз етуді дамыту негіздері арасында, ол код пен деректердің артықшылығын азайтуға бағытталған. Бұл қағидатты сақтау қолдау мүмкіндігін арттырады, оқылуын жеңілдетеді және қателер ықтималдығын азайтады.

DRY қағидатының аспектілері:

  • Кодтың қайталануын болдырмау: Қайталанатын блоктар функцияларға, сыныптарға, модульдерге бөлінеді.
    // Жаман:
    def process_user_data(user):
        print(f"Processing data for user: {user['name']}")
        # Көптеген өңдеу қадамдары
        print("Data processing finished.")
    
    def process_order_data(order):
        print(f"Processing data for order: {order['id']}")
        # Көптеген өңдеу қадамдары (пайдаланушы деректері сияқты)
        print("Data processing finished.")
    
    // Жақсы:
    def process_data(item_type, item_id):
        print(f"Processing data for {item_type}: {item_id}")
        # Жалпы өңдеу қадамдары
        print("Data processing finished.")
    
    process_data("user", user['name'])
    process_data("order", order['id'])
    
  • Деректердің қайталануын болдырмау: Бір ақпарат бір жерде сақталады (мысалы, конфигурациялық параметрлер, тұрақтылар).
    // Жаман:
    {
      "api_url_users": "https://api.example.com/users",
      "api_url_orders": "https://api.example.com/orders"
    }
    
    // Жақсы:
    {
      "base_api_url": "https://api.example.com",
      "endpoints": {
        "users": "/users",
        "orders": "/orders"
      }
    }
    
  • Бизнес логикасының қайталануын болдырмау: Ережелер мен алгоритмдер бір рет жүзеге асырылады.
    // Жаман:
    // Валидация бірнеше жерде
    if (orderAmount < 0) {
        throw new InvalidOrderException("Amount cannot be negative.");
    }
    // Басқа қызметте ұқсас тексеру
    
    // Жақсы:
    // Орталықтандырылған валидация логикасы
    public void validateOrderAmount(double amount) {
        if (amount < 0) {
            throw new InvalidOrderException("Amount cannot be negative.");
        }
    }
    
  • Конфигурацияны қайталамау: Қосымшаның параметрлері конфигурациялық файлдарда немесе орталық қоймаларда бөлінеді.
  • Құжаттамада қайталануды болдырмау: Ақпарат құрылымдалған және бір көзге сілтеме жасайды.

DRY қағидатын сақтау модульдік, оңай оқылатын және масштабталатын жүйелерге әкеледі, бұл QA үшін маңызды, себебі тестілеуді және кемшіліктерді локализациялауды жеңілдетеді.