Go — ليس مجرد موضة، بل فعالية
\n\nهل تساءلت يومًا لماذا تختار المزيد من الشركات الناشئة والعمالقة مثل Google وDocker وKubernetes Go (Golang)؟ الأمر لا يتعلق فقط بسرعة الترجمة. Go هي لغة تجعل المعقد بسيطًا. صُممت للأنظمة القابلة للتوسع، والخدمات المصغرة، وأدوات سطر الأوامر. والأهم من ذلك، أن لدى Go مجتمعًا ودودًا بشكل لا يصدق وبحرًا من المشاريع مفتوحة المصدر على GitHub.
\n\nفي هذه المقالة، لن نعدد مئات المستودعات. لقد اخترنا أفضل 10 مستودعات Go التي ستفيدك حقًا في عملك. من أطر الويب القوية إلى الأدوات الملائمة للمطور. ونعم، سنعرض أمثلة على كود Go لتفهم فورًا كيف يعمل.
\n\nأفضل 10 مستودعات Go تستحق أن تقوم بعمل fork
\n\n1. Gin — أسرع إطار ويب
\nالمستودع: gin-gonic/gin
إذا كنت تبحث عن إطار ويب بلغة Go لا يبطئ ولا يثقل بالسحر، فإن Gin هو اختيارك. إنه أسرع بعدة مرات من net/http القياسي ويوفر موجهًا مريحًا مع دعم middleware.
مثال على الكود:
\npackage main\n\nimport "github.com/gin-gonic/gin"\n\nfunc main() {\n r := gin.Default()\n r.GET("/hello", func(c *gin.Context) {\n c.JSON(200, gin.H{\n "message": "مرحبًا، عالم Go!",\n })\n })\n r.Run() // الاستماع على المنفذ 8080\n}\n\nGin مثالي لـ REST API والخدمات المصغرة. بفضل المجتمع النشط، ستجد آلاف الأمثلة والإضافات.
\n\n2. Cobra — أنشئ CLI كالمحترفين
\nالمستودع: spf13/cobra
أي أداة تحترم نفسها بلغة Go يجب أن تحتوي على CLI مريح. Cobra هو المعيار الفعلي لإنشاء واجهات الأوامر. يستخدمه Docker وKubernetes وHugo وغيرهم الكثير.
\n\nمثال على الكود:
\nvar rootCmd = &cobra.Command{\n Use: "myapp",\n Short: "تطبيقي الرائع",\n Run: func(cmd *cobra.Command, args []string) {\n fmt.Println("Hello from myapp!")\n },\n}\n\nfunc main() {\n rootCmd.Execute()\n}\n\nCobra يولد المساعدة تلقائيًا، ويدعم الأوامر الفرعية والعلامات. أداة لا غنى عنها إذا كنت تكتب أدوات بلغة Go.
\n\n3. Go Kit — مجموعة أدوات للخدمات المصغرة
\nالمستودع: go-kit/kit
عندما يتجاوز تطبيقك حدود البنية المتجانسة، يأتي Go Kit للإنقاذ. إنه ليس إطار عمل، بل مجموعة من المكتبات لبناء خدمات مصغرة موثوقة: تسجيل، مقاييس، قاطع الدائرة، اكتشاف الخدمة.
\n\nGo Kit يتبع مبادئ الهندسة المعمارية النظيفة. إذا كنت تريد كتابة كود جاهز للإنتاج، فهذا أمر لا بد منه بين مكتبات Go.
\n\n4. GORM — ORM لمن لا يريد كتابة SQL يدويًا
\nالمستودع: go-gorm/gorm
العمل مع قواعد البيانات في Go يمكن أن يكون موجزًا. GORM هو أشهر ORM يحول العمل مع PostgreSQL وMySQL وSQLite إلى متعة.
\n\nمثال على الكود:
\ntype User struct {\n ID uint\n Name string\n Age int\n}\n\nfunc main() {\n db, _ := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})\n db.AutoMigrate(&User{})\n\n db.Create(&User{Name: "أليكسي", Age: 30})\n}\n\nGORM يدعم الترحيل، الخطافات، التحميل المبكر، وحتى المعاملات. اختيار ممتاز لـ تطبيقات الويب بلغة Go.
\n\n5. Viper — إدارة الإعدادات دون ألم
المستودع: spf13/viper
إعدادات التطبيق هي صداع أبدي. Viper يحلها مرة واحدة وإلى الأبد. يمكنه قراءة JSON وYAML وTOML ومتغيرات البيئة وحتى الإعدادات البعيدة من etcd.
مثال على الكود:
viper.Set