Go بقلب مفتوح: 10 مستودعات GitHub ستغير شفرتك

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

Go — ليس مجرد موضة، بل فعالية

\n\n

هل تساءلت يومًا لماذا تختار المزيد من الشركات الناشئة والعمالقة مثل Google وDocker وKubernetes Go (Golang)؟ الأمر لا يتعلق فقط بسرعة الترجمة. Go هي لغة تجعل المعقد بسيطًا. صُممت للأنظمة القابلة للتوسع، والخدمات المصغرة، وأدوات سطر الأوامر. والأهم من ذلك، أن لدى Go مجتمعًا ودودًا بشكل لا يصدق وبحرًا من المشاريع مفتوحة المصدر على GitHub.

\n\n

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

\n\n

أفضل 10 مستودعات Go تستحق أن تقوم بعمل fork

\n\n

1. Gin — أسرع إطار ويب

\n

المستودع: gin-gonic/gin

\n

إذا كنت تبحث عن إطار ويب بلغة Go لا يبطئ ولا يثقل بالسحر، فإن Gin هو اختيارك. إنه أسرع بعدة مرات من net/http القياسي ويوفر موجهًا مريحًا مع دعم middleware.

\n\n

مثال على الكود:

\n
package 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\n

Gin مثالي لـ REST API والخدمات المصغرة. بفضل المجتمع النشط، ستجد آلاف الأمثلة والإضافات.

\n\n

2. Cobra — أنشئ CLI كالمحترفين

\n

المستودع: spf13/cobra

\n

أي أداة تحترم نفسها بلغة Go يجب أن تحتوي على CLI مريح. Cobra هو المعيار الفعلي لإنشاء واجهات الأوامر. يستخدمه Docker وKubernetes وHugo وغيرهم الكثير.

\n\n

مثال على الكود:

\n
var 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\n

Cobra يولد المساعدة تلقائيًا، ويدعم الأوامر الفرعية والعلامات. أداة لا غنى عنها إذا كنت تكتب أدوات بلغة Go.

\n\n

3. Go Kit — مجموعة أدوات للخدمات المصغرة

\n

المستودع: go-kit/kit

\n

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

\n\n

Go Kit يتبع مبادئ الهندسة المعمارية النظيفة. إذا كنت تريد كتابة كود جاهز للإنتاج، فهذا أمر لا بد منه بين مكتبات Go.

\n\n

4. GORM — ORM لمن لا يريد كتابة SQL يدويًا

\n

المستودع: go-gorm/gorm

\n

العمل مع قواعد البيانات في Go يمكن أن يكون موجزًا. GORM هو أشهر ORM يحول العمل مع PostgreSQL وMySQL وSQLite إلى متعة.

\n\n

مثال على الكود:

\n
type 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\n

GORM يدعم الترحيل، الخطافات، التحميل المبكر، وحتى المعاملات. اختيار ممتاز لـ تطبيقات الويب بلغة Go.

\n\n

5. Viper — إدارة الإعدادات دون ألم

المستودع: spf13/viper

إعدادات التطبيق هي صداع أبدي. Viper يحلها مرة واحدة وإلى الأبد. يمكنه قراءة JSON وYAML وTOML ومتغيرات البيئة وحتى الإعدادات البعيدة من etcd.

مثال على الكود:

viper.Set                

المدونات

توصيات الكتب