چهار اصل مهم برنامه نویسی DRY,KISS,YAGNI ,Demeter

بله، در اینجا مثال‌هایی برای اصول DRY، KISS، YAGNI و Demeter با زبان برنامه‌نویسی Go آورده شده است:

1. DRY (Don’t Repeat Yourself)

در اصل DRY از تکرار کد جلوگیری می‌شود. در Go می‌توانیم این کار را با استفاده از توابع و بازنویسی کد انجام دهیم.

کد تکراری:

// کد تکراری
func calculateRectangleArea(length, width float64) float64 {
    return length * width
}

func calculateSquareArea(side float64) float64 {
    return side * side
}

اصلاح‌شده با DRY:

// حذف تکرار
func calculateArea(shape string, dimensions ...float64) float64 {
    if shape == "rectangle" {
        return dimensions[0] * dimensions[1]
    } else if shape == "square" {
        return dimensions[0] * dimensions[0]
    }
    return 0
}

2. KISS (Keep It Simple, Stupid)

اصل KISS به سادگی کد تأکید دارد. در اینجا از پیچیدگی اضافی جلوگیری می‌شود.

کد پیچیده:

// بررسی عدد زوج
func isEven(n int) bool {
    if n % 2 == 0 {
        return true
    } else {
        return false
    }
}

اصلاح‌شده با KISS:

// بررسی ساده‌تر
func isEven(n int) bool {
    return n % 2 == 0
}

3. YAGNI (You Aren’t Gonna Need It)

اصل YAGNI به این معناست که نباید کدی بنویسید که ممکن است در آینده به آن نیاز نداشته باشید.

کد غیرضروری:

// تابع با ویژگی‌های غیرضروری
func processData(data string, format string, sort bool, unusedFeature string) {
    if format == "JSON" {
        // پردازش داده‌ها
    }
}

اصلاح‌شده با YAGNI:

// حذف ویژگی غیرضروری
func processData(data string, format string) {
    if format == "JSON" {
        // پردازش داده‌ها
    }
}

4. Law of Demeter

اصل دمتر می‌گوید که باید فقط با واحدهای “مستقیم” کار کنید و از فراخوانی زنجیره‌ای اجتناب کنید.

کد ناقض اصل دمتر:

// زنجیره‌ای از فراخوانی‌ها
func getCity(user User) string {
    return user.GetProfile().GetAddress().GetCity()
}

اصلاح‌شده با رعایت دمتر:

// فراخوانی ساده‌تر
func getCity(user User) string {
    address := user.GetAddress()
    return address.GetCity()
}

خلاصه:

  • DRY: از کد تکراری جلوگیری کنید و کد را به صورت توابع مشترک و قابل استفاده مجدد بنویسید.
  • KISS: کد ساده و قابل فهم بنویسید.
  • YAGNI: فقط آنچه که نیاز دارید بنویسید و از کد غیرضروری خودداری کنید.
  • Demeter: از وابستگی‌های غیرضروری بین اشیاء جلوگیری کنید.
اسکرول به بالا