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-ի համար, քանի որ հեշտացնում է թեստավորումը և թերությունների տեղայնացումը։