التطوير العملي للبرمجيات باستخدام Golang
554 صفحات
Arabic
PDF
4.5

التطوير العملي للبرمجيات باستخدام Golang

التطوير العملي للبرمجيات باستخدام Golang

المؤلف:

السنة:

ملخص:

مقدمة

كتاب «Hands-On Software Engineering with Golang» (2020، 554 صفحة) من تأليف أخيلياس أناجنوستوبولوس ليس مجرد مقدمة أخرى لبناء جملة Go، بل هو دليل عملي متعمق لبناء أنظمة برمجية معقدة وقابلة للتوسع والصيانة بلغة Go. على عكس العديد من الكتب التي تركز على الأساسيات، فإن هذا العمل مخصص للممارسات الهندسية: البنية، التصميم، الاختبار، النشر، والمراقبة. إنه مثالي لأولئك الذين هم على دراية بالفعل بـ Go ويريدون الانتقال إلى مستوى مطور أول أو مهندس معماري.

عن ماذا يتحدث الكتاب

تم بناء الكتاب حول تطوير تطبيق حقيقي - نظام لتحليل الروابط (link graph). على مدار الفصول، يطبق المؤلف باستمرار مبادئ التصميم الموجه للمجال (DDD)، ويبني بنية الخدمات المصغرة، ويستخدم gRPC للتواصل بين الخدمات، ويطبق الحاويات (Docker، Kubernetes)، ويكون خطوط أنابيب CI/CD. كل فصل هو مرحلة مكتملة يمكن تطبيقها على الفور عمليًا.

المواضيع الرئيسية:

  • أنماط البنية: DDD، CQRS، Event Sourcing، البنية السداسية.
  • الخدمات المصغرة: التصميم، التواصل (gRPC، RabbitMQ)، التنسيق.
  • الاختبار: اختبارات الوحدة، التكامل، النهاية إلى النهاية، الاختبار القائم على الخصائص.
  • CI/CD: إعداد خطوط الأنابيب، الاختبار الآلي والنشر.
  • المراقبة والملاحظة: التسجيل، المقاييس، التتبع (OpenTelemetry).
  • الأداء: التنميط، قياس الأداء، التحسين.

لمن هذا الكتاب

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

ماذا سيتعلم القارئ

  • كيفية تطبيق DDD لتحديد السياقات المحدودة والتجميعات.
  • كيفية بناء الخدمات المصغرة باستخدام gRPC وقوائم الانتظار غير المتزامنة.
  • كيفية تنفيذ CQRS و Event Sourcing في Go.
  • كيفية كتابة اختبارات على مستويات مختلفة واستخدام الاختبار القائم على الخصائص.
  • كيفية حاويات التطبيقات ونشرها في Kubernetes.
  • كيفية إعداد CI/CD باستخدام GitHub Actions أو GitLab CI.
  • كيفية تنميط وتحسين أداء تطبيقات Go.
  • كيفية تطبيق الملاحظة: التسجيل، المقاييس (Prometheus)، والتتبع (Jaeger).

نقاط القوة

الميزة الرئيسية للكتاب هي التوجه العملي. يتم دعم كل مفهوم على الفور بكود يمكن تشغيله وتعديله. لا يكتفي المؤلف بإعادة سرد النظرية، بل يوضح كيفية اتخاذ القرارات المعمارية وما هي المقايضات المرتبطة بها. الكود على GitHub مصحوب بتعليقات مفصلة. ميزة أخرى هي الملاءمة: تم نشر الكتاب في عام 2020، ومعظم الأساليب (gRPC، Kubernetes، OpenTelemetry) لا تزال معيارًا صناعيًا.

بشكل منفصل، تجدر الإشارة إلى فصول الاختبار و CI/CD - فهي تقدم وصفات جاهزة يمكن تطبيقها على الفور في أي مشروع. يعلمك الكتاب ليس فقط كتابة الكود، بل التفكير في النظام ككل: من المتطلبات إلى التشغيل.

لمن يُوصى به

أوصي بهذا الكتاب لكل من يريد الانتقال من كتابة "النصوص البرمجية" بلغة Go إلى إنشاء أنظمة صناعية. سيكون مفيدًا لكل من المطورين الأفراد والفرق التي تتبنى Go في الإنتاج. إذا كنت قد قرأت بالفعل «The Go Programming Language» أو «Concurrency in Go» وتريد المضي قدمًا - سيكون هذا الكتاب خطوة تالية ممتازة.

على موقع PythonLib الكتاب متاح للاطلاع عليه.

توصيات