
جو (جولانج)تستمر في السيطرة على البنية التحتية السحابية في عام 2026. تتم كتابة Docker وKubernetes وTerraform ومعظم الأدوات السحابية الأصلية بلغة Go. إن بساطته وسرعته وتزامنه المدمج يجعله الخيار الأفضل لواجهات برمجة التطبيقات (APIs) وواجهات سطر الأوامر (CLI) والخدمات الصغيرة. هذا الدليل يجعلك منتجًا بسرعة.
📋 Table of Contents
لماذا نذهب في عام 2026؟
- تجميع سريع:يتم تجميع المشاريع الكبيرة في ثوانٍ
- الثنائيات الثابتة:نشر ملف واحد، لا حاجة لوقت تشغيل
- الجوروتين:أكثر من 10,000 مهمة متزامنة بأقل قدر من الذاكرة
- المكتبة القياسية:خادم HTTP، JSON، التشفير، SQL – البطاريات متضمنة
- الوظائف:تتطلب أدوار الواجهة الخلفية وDevOps والسحابة بشكل متزايد Go
تثبيت الذهاب
# Download and install (Linux/macOS)
wget https://go.dev/dl/go1.23.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.23.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc
# Verify
go version # go version go1.23 linux/amd64
مرحبا بالعالم وهيكل المشروع
mkdir myapp && cd myapp
go mod init github.com/yourname/myapp
// main.go
package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
}
go run main.go
go build -o myapp # produces single binary
أنواع الذهاب والمتغيرات
package main
import "fmt"
func main() {
// Short declaration
name := "Alice"
age := 30
pi := 3.14159
// Explicit type
var score int = 100
// Multiple assignment
x, y := 10, 20
fmt.Printf("%s is %d, pi=%.2f, score=%d, sum=%d\n",
name, age, pi, score, x+y)
}
الوظائف ومعالجة الأخطاء
تقوم وظائف Go بإرجاع قيم متعددة. يتم إرجاع الأخطاء كقيم، ولا يتم طرحها. وهذا يجعل معالجة الأخطاء واضحة ومن المستحيل تجاهلها.
package main
import (
"errors"
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}
func main() {
result, err := divide(10, 3)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Printf("Result: %.2f\n", result)
}
Goroutines والقنوات
Goroutines عبارة عن سلاسل رسائل خفيفة الوزن تتم إدارتها بواسطة وقت تشغيل Go. تتواصل القنوات بين goroutines بأمان.
package main
import (
"fmt"
"sync"
)
func worker(id int, wg *sync.WaitGroup) {
defer wg.Done()
fmt.Printf("Worker %d done\n", id)
}
func main() {
var wg sync.WaitGroup
for i := 1; i <= 5; i++ {
wg.Add(1)
go worker(i, &wg)
}
wg.Wait()
fmt.Println("All workers done")
}
خادم HTTP (نت/http)
package main
import (
"encoding/json"
"net/http"
)
type Response struct {
Message string `json:"message"`
Status int `json:"status"`
}
func helloHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(Response{Message: "Hello!", Status: 200})
}
func main() {
http.HandleFunc("/api/hello", helloHandler)
http.ListenAndServe(":8080", nil)
}
الخلاصة
Go هي اللغة الأكثر إنتاجية لتطوير الواجهة الخلفية والسحابة في عام 2026. بناء جملة بسيط وثنائيات سريعة وتزامن ممتاز. ابدأ بالمكتبة القياسية، وأضف جهاز توجيه مثل Chi أو Gin، وستقوم بشحن واجهات برمجة تطبيقات الإنتاج في أيام، وليس أسابيع.
🔗 Share this article
✍️ Leave a Comment