"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إنشاء تطبيقات Go-Lang مرنة وقابلة للصيانة

إنشاء تطبيقات Go-Lang مرنة وقابلة للصيانة

تم النشر بتاريخ 2024-08-07
تصفح:761

Building Flexible and Maintainable Go-Lang Apps

في تطوير البرمجيات، يعد حقن التبعية (DI) أحد المبادئ الأساسية التي تساعد في بناء تطبيقات مرنة وقابلة للصيانة. في هذه المقالة، سنناقش استخدام Dependency حقن في Go-Lang وكيف يمكن لأداة Wire أن تساعدنا في تكوين التبعيات بسهولة.

ما هو حقن التبعية؟
حقن التبعية (DI) هو نمط تصميم برمجي شائع الاستخدام لإدارة التبعيات بين المكونات التي تشكل التطبيق. عندما نبني برنامجًا، فإننا غالبًا ما نقوم بتقسيم التعليمات البرمجية الخاصة بنا إلى مكونات أصغر ومعزولة تتفاعل مع بعضها البعض لتوفير وظائف معينة. هذه المكونات لها تبعيات على بعضها البعض، تسمى التبعيات.

أولاً، دعونا نفهم سبب حاجتنا إلى استخدام حقن التبعية. مع نمو التطبيق، يصبح الرسم البياني للتبعية معقدًا بشكل متزايد. يمكن أن يؤدي هذا إلى عملية تهيئة مرهقة ومن الصعب تقسيم التعليمات البرمجية بشكل نظيف، خاصة عند استخدام بعض التبعيات عدة مرات. بالإضافة إلى ذلك، قد تستغرق إدارة التبعيات يدويًا وقتًا طويلاً ويصعب إجراء تغييرات على التعليمات البرمجية واختبار الوظائف مع تبعيات مختلفة وتتبع آثار التعليمات البرمجية.

يسمح لنا حقن التبعية بفصل منطق بناء الكائنات عن منطق استخدام تلك الكائنات. في الأساس، يتم توفير التبعيات أو حقنها في الكائنات من خلال المنشئات أو المعلمات. يتيح لنا ذلك إنشاء تطبيقات تتم إدارتها بشكل أفضل، وأسهل في الاختبار، وأكثر مرونة.

استخدام حقن التبعية في Go-Lang
Go-Lang، أو Go، هي لغة برمجة مصممة لبناء تطبيقات فعالة وبسيطة وقابلة للصيانة. يتمتع Go-Lang بدعم مدمج لحقن التبعية ويوفر أدوات مثل Wire التي يمكن أن تساعدنا في تكوين التبعيات بسهولة.

لماذا نستخدم واير؟
Wire هي أداة لحقن التبعية تم تطويرها بواسطة فريق Google. يعتمد على معالجة التعليمات البرمجية في وقت الترجمة، مما يعني أنه يمكننا تكوين التبعيات في وقت الترجمة وتجنب استخدام الانعكاس المعقد. وبهذا المعنى، يمكن أن يساعدنا Wire في إنتاج تعليمات برمجية أكثر كفاءة وقابلية للصيانة.
يوفر Wire أيضًا ميزات مثل التحليل الثابت للكود، واكتشاف التبعية الدورية، وتجميع التبعية المنظم. يتيح لنا ذلك إدارة التبعيات بشكل أفضل وجعل الكود الخاص بنا أكثر تنظيماً.

تركيب الأسلاك
الخطوة الأولى لاستخدام Wire هي تثبيته. لتثبيت Wire، يمكننا استخدام الأمر go get:

اذهب للحصول على github.com/google/wire

بمجرد تثبيت Wire، يمكننا البدء في تكوين التبعيات في تطبيق Go-Lang الخاص بنا.

تكوين التبعيات باستخدام الأسلاك
لتكوين التبعيات باستخدام Wire، نحتاج إلى إنشاء ملف wire.go في دليل مشروعنا. سيتم استخدام هذا الملف بواسطة Wire لإنشاء الكود المطلوب لتكوين التبعيات.

إليك خطوات تكوين التبعيات باستخدام Wire:

1. إنشاء ملف wire.go

قم بإنشاء ملف جديد يسمى wire.go في دليل مشروعك. سيكون هذا الملف هو ملف التكوين الذي سيتم استخدامه بواسطة Wire.

2. استيراد سلك الحزمة

أضف السطر التالي أعلى ملف wire.go لاستيراد حزمة Wire:

استيراد "github.com/google/wire"

3. تحديد وظيفة حقن التبعية

بعد ذلك، نحتاج إلى تحديد الوظيفة التي سيتم استخدامها بواسطة Wire لإدخال التبعيات. يجب أن يكون لهذه الوظيفة اسم تهيئة وإرجاع نوع بيانات الكائن الذي سيتم حقن التبعية فيه.

على سبيل المثال، إذا أردنا إدخال التبعيات في بنية UserService، فيمكننا تحديد وظيفة InitializeUserService على النحو التالي:

func InitializeUserService() *UserService {
    // Konfigurasi dependensi di sini
    return &UserService{}
}
  1. استخدام وظيفة Build()

بعد تحديد وظيفة التهيئة، نحتاج إلى استخدام وظيفة Build() الخاصة بحزمة Wire لإنشاء الكود المطلوب لتكوين التبعيات.

أضف السطر التالي في نهاية ملف wire.go:

func main() {
    wire.Build(InitializeUserService)
}

5. تشغيل الأسلاك

بمجرد الانتهاء من تكوين ملف wire.go، يمكننا تشغيل Wire لإنشاء الكود اللازم.

افتح محطة طرفية أو موجه أوامر، وانتقل إلى دليل المشروع الخاص بك، وقم بتشغيل الأمر التالي:

الأسلاك

سيقوم Wire بإنشاء ملف wire_gen.go الذي يحتوي على الكود المطلوب لتكوين التبعيات.

استخدام التبعيات التي تم تكوينها

بمجرد قيام Wire بإنشاء ملف wire_gen.go، يمكننا استخدام التبعيات التي تم تكوينها.

يوضح المثال التالي كيفية استخدام تبعيات UserService التي تم تكوينها باستخدام Wire:

func main() {
    userService := InitializeUserService()
    // Gunakan userService di sini
}

يمكننا استخدام كائن userService الذي تم تكوينه بواسطة Wire وفقًا لاحتياجات التطبيق لدينا.

خاتمة

يمكن أن يساعدنا استخدام حقن التبعية في تطوير تطبيقات Go-Lang في إنشاء تطبيقات أكثر مرونة وقابلية للصيانة وتنظيمًا جيدًا. يمكن لأدوات مثل Wire أن تساعدنا في تكوين التبعيات بسهولة وإنشاء تعليمات برمجية أكثر كفاءة.

باستخدام حقن التبعية، يمكننا فصل منطق بناء الكائنات عن منطق استخدام تلك الكائنات. يتيح لنا ذلك إجراء تغييرات على التبعيات بسهولة أكبر، واختبار التعليمات البرمجية ذات التبعيات المختلفة، وجعل التعليمات البرمجية الخاصة بنا أكثر تنظيماً وقابلية للصيانة.

لذا، إذا كنت تقوم بإنشاء تطبيق Go-Lang، ففكر في استخدام Dependency حقن وأدوات مثل Wire لإدارة تبعياتك بشكل أفضل. بهذه الطريقة، ستتمكن من إنشاء تطبيقات أكثر مرونة وقابلية للصيانة وكفاءة.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/dyaksaa_/building-flexible-and-maintainable-go-lang-apps-56kn?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3