
Go একটি কারণে 2026 সালের চাকরির পোস্টিংগুলিতে প্রদর্শিত হতে থাকে: এটি একটি একক স্ট্যাটিক বাইনারিতে কম্পাইল করে, দ্রুত শুরু হয় এবং এর কনকারেন্সি মডেলটি সঠিক মাল্টি-থ্রেডেড কোড লেখাকে বেশিরভাগ ভাষার তুলনায় অনেক কম বেদনাদায়ক করে তোলে। আপনি যদি ইতিমধ্যেই পাইথন বা জাভাস্ক্রিপ্ট জানেন এবং এমন একটি ভাষা চান যা C++ এর অনুষ্ঠান ছাড়াই “সিস্টেম” কাজ করার দিকে একটি পদক্ষেপের মতো মনে হয়, তাহলে Go এখনই উপলব্ধ সবচেয়ে ব্যবহারিক অন-র্যাম্প।
📋 Table of Contents
- সূচিপত্র
- যে সরলতা উত্পাদন বন্ধ পরিশোধ. Docker, Kubernetes, Terraform, এবং সবচেয়ে আধুনিক CLI টুলগুলি Go-তে লেখা আছে। আপনি যদি ক্লাউড অবকাঠামো বা ব্যাকএন্ড পরিষেবার কাছাকাছি কোথাও কাজ করেন তবে Go পড়া এখন বাধ্যতামূলক, এবং এটি লেখা একটি শক্তিশালী জীবনবৃত্তান্ত লাইন।
- 📋 কপি
- একটি
- 📋 কপি
- 📋 কপি
- প্যাকেজ নিজেই উত্পাদন-সক্ষম — অনেক বাস্তব পরিষেবা কখনই একটি ওয়েব ফ্রেমওয়ার্ক যোগ করে না:
- 📋 কপি
- সহ একটি CLI টুল , PostgreSQL দ্বারা সমর্থিত একটি ছোট REST API, অথবা একটি Kubernetes অপারেটর ব্যবহার করে
- FAQ
- নির্মাণের জন্য প্রস্তুত?
এই গাইডটি Go ইন্সটল করা, এর মূল সিনট্যাক্স বোঝা, আপনার প্রথম সমসাময়িক প্রোগ্রাম লেখা, এবং একটি ছোট HTTP পরিষেবা তৈরি করে যা আপনি আসলে স্থাপন করতে পারেন।
সূচিপত্র
- 2026 সালে কেন শিখুন Go ইনস্টল করা হচ্ছে
- ভাষার মৌলিক বিষয়
- গঠন ও পদ্ধতি
- গোরুটিন এবং চ্যানেল
- একটি ক্ষুদ্র HTTP সার্ভার তৈরি করা
- টুলিং: যান এফএমটি, যান পশুচিকিত্সক, পরীক্ষা যান
- পরবর্তী কোথায় যেতে হবে
- FAQ
- 2026 সালে কেন শিখুন একটি নির্দিষ্ট সমস্যা সমাধানের জন্য Google-এ Go তৈরি করা হয়েছিল: অনেক প্রকৌশলী সহ বৃহৎ কোডবেসগুলি তৈরি করা ধীর হয়ে যাচ্ছিল এবং যুক্তি দেওয়া কঠিন ছিল৷ ভাষার উত্তর ছিল আমূল সরলতা — একটি ছোট কীওয়ার্ড সেট, কোড ফরম্যাট করার একটি সুস্পষ্ট উপায় এবং একটি স্ট্যান্ডার্ড লাইব্রেরি যা তৃতীয় পক্ষের প্যাকেজ ছাড়াই HTTP, JSON এবং ক্রিপ্টোগ্রাফি কভার করে।
যে সরলতা উত্পাদন বন্ধ পরিশোধ. Docker, Kubernetes, Terraform, এবং সবচেয়ে আধুনিক CLI টুলগুলি Go-তে লেখা আছে। আপনি যদি ক্লাউড অবকাঠামো বা ব্যাকএন্ড পরিষেবার কাছাকাছি কোথাও কাজ করেন তবে Go পড়া এখন বাধ্যতামূলক, এবং এটি লেখা একটি শক্তিশালী জীবনবৃত্তান্ত লাইন।
Go ইনস্টল করা হচ্ছে
আপনার প্ল্যাটফর্মের জন্য অফিসিয়াল Go সাইট থেকে ইনস্টলারটি ডাউনলোড করুন, অথবা একটি প্যাকেজ ম্যানেজার ব্যবহার করুন:
📋 কপি
Go নির্ভরতা ব্যবস্থাপনার জন্য মডিউল ব্যবহার করে। একটি নতুন প্রকল্প ডিরেক্টরি তৈরি করুন এবং এটি শুরু করুন:
# macOS
brew install go
# Ubuntu/Debian
sudo apt install golang-go
# Verify
go version
ভাষার মৌলিক বিষয়
mkdir hello-go && cd hello-go
go mod init example.com/hello-go
একটি
সহ প্যাকেজ৷ ফাংশন:main📋 কপিmain()Go স্থিরভাবে টাইপ করা হয় কিন্তু
package main
import "fmt"
func main() {
message := "Hello, Go"
fmt.Println(message)
}
📋 কপি:=যে
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, fmt.Errorf("cannot divide %v by zero", a)
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("error:", err)
return
}
fmt.Println(result)
}
গঠন ও পদ্ধতিif err != nilগো কোন ক্লাস নেই। পরিবর্তে, স্ট্রাকটগুলি ডেটা ধরে রাখে এবং পদ্ধতিগুলি একটি রিসিভার আর্গুমেন্টের মাধ্যমে প্রকারের সাথে সংযুক্ত করে:
📋 কপি
একটি পয়েন্টার রিসিভার (
type Server struct {
Host string
Port int
}
func (s *Server) Address() string {
return fmt.Sprintf("%s:%d", s.Host, s.Port)
}
func main() {
srv := &Server{Host: "localhost", Port: 8080}
fmt.Println(srv.Address())
}
গো-তে ইন্টারফেসগুলি স্পষ্টভাবে সন্তুষ্ট — না*Serverকীওয়ার্ড সঠিক পদ্ধতি সহ যেকোনো প্রকার স্বয়ংক্রিয়ভাবে একটি ইন্টারফেসকে সন্তুষ্ট করে, যা প্যাকেজগুলিকে ডিকপল করে রাখে:
📋 কপিimplementsগোরুটিন এবং চ্যানেল
type Stringer interface {
String() string
}
func Describe(s Stringer) {
fmt.Println(s.String())
}
📋 কপি
তিনজন শ্রমিক একই থেকে টান
func worker(id int, jobs <-chan int, results chan<- int) {
for j := range jobs {
results <- j * 2
}
}
func main() {
jobs := make(chan int, 5)
results := make(chan int, 5)
for w := 1; w <= 3; w++ {
go worker(w, jobs, results)
}
for j := 1; j <= 5; j++ {
jobs <- j
}
close(jobs)
for a := 1; a <= 5; a++ {
fmt.Println(<-results)
}
}
. কোন মিউটেক্স নেই, ম্যানুয়াল থ্রেড পুল নেই। গো-এর ডকুমেন্টেশন থেকে সরাসরি দর্শনটি হল: “মেমরি ভাগ করে যোগাযোগ করবেন না; পরিবর্তে, যোগাযোগের মাধ্যমে মেমরি ভাগ করুন।”jobsএকটি ক্ষুদ্র HTTP সার্ভার তৈরি করাresultsস্ট্যান্ডার্ড লাইব্রেরির
প্যাকেজ নিজেই উত্পাদন-সক্ষম — অনেক বাস্তব পরিষেবা কখনই একটি ওয়েব ফ্রেমওয়ার্ক যোগ করে না:
📋 কপিnet/httpএটি দিয়ে চালান
package main
import (
"encoding/json"
"log"
"net/http"
)
type HealthResponse struct {
Status string `json:"status"`
}
func healthHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(HealthResponse{Status: "ok"})
}
func main() {
http.HandleFunc("/health", healthHandler)
log.Println("listening on :8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}
. মুষ্টিমেয় রুটের বাইরে যেকোনো কিছুর জন্য, একটি রাউটারের জন্য পৌঁছান যেমনgo run main.goঅথবাhttp://localhost:8080/health, কিন্তু মূল অনুরোধ/প্রতিক্রিয়া মডেল একই থাকে।chiটুলিং: যান এফএমটি, যান পশুচিকিত্সক, পরীক্ষা যানginগো তার টুলিং বক্সে পাঠিয়ে দেয়, যা দলের আর্গুমেন্টের একটি সম্পূর্ণ বিভাগকে সরিয়ে দেয়:
📋 কপি
কারণ
# Auto-format every file to the canonical style
go fmt ./...
# Catch suspicious constructs (unused results, format string mismatches)
go vet ./...
# Run tests with coverage
go test ./... -cover
পরবর্তী কোথায় যেতে হবেgo fmtএকবার বেসিক ক্লিক করলে, বাস্তব কিছু তৈরি করুন:
সহ একটি CLI টুল , PostgreSQL দ্বারা সমর্থিত একটি ছোট REST API, অথবা একটি Kubernetes অপারেটর ব্যবহার করে
. স্ট্যান্ডার্ড লাইব্রেরি সোর্স পড়াও গো-তে অস্বাভাবিকভাবে ফলপ্রসূ – এটি একই স্টাইলে লেখা হয়েছে যা আপনি লিখবেন বলে আশা করা হচ্ছে, যেখানে স্ট্যান্ডার্ড লাইব্রেরি ট্রিকস অ্যাপ্লিকেশন কোড ব্যবহার করে এমন ভাষাগুলির বিপরীতে।cobraআপনি যদি পাইথন থেকে আসছেন এবং অ্যাসিঙ্ক প্যাটার্নের জন্য একটি তুলনা পয়েন্ট চান, আমাদের দেখুনclient-goপাইথন ডেকোরেটর গভীর ডুব
, এবং যদি মরিচা আপনার রাডারে, আমাদেরPython decorators deep dive, and if Rust is also on your radar, our2026 গাইডে মরিচাসিস্টেম-স্তরের কাজের জন্য উভয়ের মধ্যে ট্রেডঅফ কভার করে।
FAQ
পাইথন থেকে আসা শেখা কি কঠিন?
না — গো-তে পাইথনের চেয়ে ছোট সিনট্যাক্স সারফেস থাকে একবার আপনি ডেকোরেটর, কম্প্রিহেনশন এবং একাধিক উত্তরাধিকার বাদ দেন। বেশিরভাগ বিকাশকারী এক সপ্তাহের মধ্যে উত্পাদনশীল।
Go এ APIs তৈরি করার জন্য আমার কি একটি কাঠামো দরকার?
ছোট পরিষেবার জন্য নয়।net/httpবেশিরভাগ প্রকল্পের জন্য রাউটিং, মিডলওয়্যার এবং JSON যথেষ্ট ভালভাবে পরিচালনা করে। জিন বা ইকোর মতো ফ্রেমওয়ার্কগুলি বড় রুট সেটগুলির জন্য সুবিধা যোগ করে।
গো কিভাবে মেমরি ব্যবস্থাপনা পরিচালনা করে?
Go হল আবর্জনা সংগ্রহ করা হয়, কিন্তু এর GC কম লেটেন্সির জন্য ডিজাইন করা হয়েছে, সাব-মিলিসেকেন্ড বিরতির সময়গুলিকে লোডের মধ্যেও সাধারণ করে তোলে — এটি ব্যাকএন্ড পরিষেবার জন্য জনপ্রিয় একটি প্রধান কারণ।
ডাটা কাজের জন্য পাইথন প্রতিস্থাপন করতে পারেন?
সত্যিই নয় — পাইথনের ডেটা সায়েন্স ইকোসিস্টেমের (NumPy, pandas, PyTorch) কোন বাস্তব Go সমতুল্য নেই। পরিবর্তে ব্যাকএন্ড পরিষেবা, CLI, এবং পরিকাঠামো টুলিং-এ এক্সেল করুন।
গোরুটিন এবং ওএস থ্রেডের মধ্যে পার্থক্য কী?
Goroutines Go রানটাইম দ্বারা পরিচালিত হয় এবং অল্প সংখ্যক OS থ্রেডে মাল্টিপ্লেক্স করা হয়। তারা একটি 2KB স্ট্যাক দিয়ে শুরু করে যা প্রয়োজন অনুসারে বৃদ্ধি পায়, তাই 100,000 গোরুটিন তৈরি করা বাস্তবসম্মত — 100,000 OS থ্রেড তৈরি করা নয়।
নির্মাণের জন্য প্রস্তুত?
আজই Go ইন্সটল করুন, go.dev/tour-এ ট্যুরের মাধ্যমে কাজ করুন, তারপর উপরে HTTP সার্ভার তৈরি করুন এবং এটিকে একটি ডাটাবেস সংযোগের মাধ্যমে প্রসারিত করুন। Go শেখার দ্রুততম উপায় হল ছোট কিছু পাঠানো এবং কম্পাইলার ত্রুটিগুলি পড়া – সেগুলি বিখ্যাতভাবে পরিষ্কার।
🔗 Share this article
✍️ Leave a Comment