بوی کد 293 – شما باید از اضافه کردن پرچم های مشابه یا پرچم های مشابه خودداری کنید

اجازه ندهید کد آزمایش به تولید بپردازد

tl ؛ dr: از اضافه کردن خودداری کنید استحکام یا پرچم های مشابه

مشکلات

راه حل ها

  1. IFS رفتار را حذف کنید
  2. از تزریق وابستگی استفاده کنید
  3. مدل خدمات خارجی (آنها را مسخره نکنید)
  4. تنظیمات جداگانه
  5. منطق تست را جدا کنید
  6. مرزهای رفتار تمیز را حفظ کنید

refactorings ⚙

متن

وقتی پرچم هایی مانند اضافه می کنید استحکام، شما کد آزمایش و تولید را مخلوط می کنید.

این مسیرهای پنهان را ایجاد می کند که فقط در تست ها فعال هستند.

همچنین ، شما کد تولید واقعی را پوشش نمی دهید.

شما در معرض خطر رفتار آزمایش حمل و نقل به تولید ، منجر به اشکالات و رفتار غیرقابل پیش بینی می شوید.

کد نمونه

اشتباه

struct PaymentService {
    is_testing: bool,
}

impl PaymentService {
    fn process_payment(&self, amount: f64) {
        if self.is_testing {
            println!("Testing mode: Skipping real payment");
            return;
        }
        println!("Processing payment of ${}", amount);
    }
}

درست

trait PaymentProcessor {
    fn process(&self, amount: f64);
}

struct RealPaymentProcessor;
impl PaymentProcessor for RealPaymentProcessor {
    fn process(&self, amount: f64) {
        println!("Processing payment of ${}", amount);
    }
}

struct TestingPaymentProcessor;
impl PaymentProcessor for TestingPaymentProcessor {
    // Notice this is not a mock
    fn...

Source link