Category

Go Programming

Go language tutorials, patterns, and best practices

68 posts

بناء خادم JSON-RPC عالي الأداء مع التحقق من صحة مخطط JSON في Go

تتطلب الأنظمة الموزعة الحديثة فرض عقود صارمة. بينما لـ REST مكانه، يقدم JSON-RPC بديلاً خفيفاً وفعالاً للتواصل بين الخدمات، خاصة في هندسة الخدمات المصغرة. ومع ذلك، يمكن أن تكون استدعاءات RPC الخام خطيرة دون التحقق من الصحة. يستكشف هذا المنشور...

إتقان وحدات Go وإدارة مساحات العمل للتطوير الحديث

منذ الإصدار 1.11، انتقلت لغة Go بعيداً عن إدارة التبعيات المقيدة القائمة على GOPATH نحو نظام أكثر متانة ومطابقاً للمعايير باستخدام وحدات Go. بالنسبة للمشاريع الفردية، تكون ملفات go.mod بسيطة. ومع ذلك، مع زيادة تعقيد التطبيقات، خاصة في هندسة الخدمات المصغرة...

إتقان اختبار Go: قوة الاختبارات القائمة على الجداول

الاختبار ليس مجرد خانة يجب شطبها في دورة حياة التطوير؛ بل هو العمود الفقري للبرمجيات الموثوقة. في بيئة Go، يُعد الاختبار مواطناً من الدرجة الأولى. حزمة الاختبار مدمجة في المكتبة القياسية، مما يشجع المطورين على كتابة الاختبارات جنباً إلى جنب مع الكود. ومع ذلك، كلما كبر قاعدة الكود...

إتقان أنماط معالجة الأخطاء في Go: ما وراء جملة if البسيطة

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

إتقان التعميم في Go: أمثلة عملية لكتابة كود أنظف

أشارت إضافة التعميم (Generics) في إصدار Go 1.18 إلى لحظة محورية في تطور اللغة. لسنوات طويلة، اعتمد مطورو Go على الواجهات والانعكاس (Reflection) وتوليد الكود لتحقيق مرونة الأنواع، غالباً على حساب الكود المكرر وأداء وقت التشغيل. يوفر التعميم آلية من الدرجة الأولى لكتابة كود آمن من حيث الأنواع وقابل لإعادة الاستخدام دون التضديد ببساطة وأداء Go المعروفين.

بناء خدمات مصغرة عالية الأداء في Go باستخدام gRPC

في المشهد الحديث لأنظمة الموزعة، يعد الأداء والكفاءة أمرين لا غنى عنهما. مع نمو التطبيقات، يمكن أن يصبح عبء الاتصال بين الخدمات عنق زجاجة كبير. هنا تبرز قوة gRPC. من خلال الاستفادة من بروتوكول Buffers (Protobuf) كلغة تعريف الواجهة (IDL) وHTTP/2 للنقل، يقدم gRPC بديلاً قوياً وفعالاً...