Syntax | سینتکس
3.01K subscribers
410 photos
108 videos
35 files
378 links
Download Telegram
کتاب آزاد زبان برنامه نویسی گو (فارسی)

اگه به زبان برنامه نویسی گولنگ علاقه دارید، یکی از بهترین منابع فارسی این کتاب هستش.
تو فصل های مختلف از مباحث مقدماتی تا پیشرفته گفته شده.
همچنین تو فصل جدید «شبکه بلاکچین» قراره آموزش داده بشه

لینک وب سایت:
https://book.gofarsi.ir/

همچنین گیت هاب حتما ستاره بدید تا حمایت شه:
https://github.com/GoFarsi/book

#Book #Golang

@Syntax_fa
🔥7
🔥یه مقاله تازه و داغ در مورد scale کردن بکند با حداقل منابع روی سرور

خیلی نکات جالب و مهمی رو بهش اشاره میکنه، از جمله اینکه لازمه observability pipeline رو قبل از هر چیزی راه اندازی کنید که بتونید بر اساس داده و اطلاعات تصمیم گیری کنید. این نکته خیلی مهمی هست که ما خیلی وقت ها فراموش می کنیم.
وقتی مشکل performanceی داریم اول باید در مورد مشکل مون داده و اطلاعات جمع آوری کنیم. بعدش بریم سراغ اینکه حالا چطور مشکل رو حل کنیم.

مقاله جذابیه که در مورد موارد مختلفی برای بهینه سازی صحبت میکنه از connection pooling گرفته تا ایندکس دیتابیس و goroutine throttling

Scaling Backend to 1M requests with just 2GB ram ⚡️

https://dev.to/rikenshah/scaling-backend-to-1m-requests-with-just-2gb-ram-4m0c

@gocasts

@Syntax_fa

#backend #golang
7🔥2
Dispatching

تا حالا دیدی تو یه مرکز تماس، اپراتور تماس رو وصل می‌کنه به بخش مناسب؟ مثلاً مشکل فنی داری می‌ری پشتیبانی، پولی باشه می‌ری حسابداری؟ خب اون کاری که اپراتوره می‌کنه رو بهش می‌گن Dispatch

توی برنامه‌نویسی هم همینه:
یه درخواست میاد، سیستم نگاه می‌کنه، می‌فرستدش به جای درست


یه مثال ساده با GO


switch contactType {
case "technical":
technicalSupport()
case "accounting":
accounting()
case "sales":
sales()
}


بسته به اینکه contactType چیه، می‌فرستیمش به تابع مناسب.


انواع Dispatch تو Go


1. Dynamic Dispatch با اینترفیس:
تو زمان اجرا تصمیم می‌گیریم کدوم متد رو صدا بزنیم:


   var s Speaker
s = Dog{} // Woof!
s = Cat{} // Meow!


2. Dispatch از طریق کانال‌ها:
با select منتظریم ببینیم کدوم کانال زودتر پیام می‌ده:


   select {
case msg := <-ch1:
fmt.Println(msg)
case msg := <-ch2:
fmt.Println(msg)
}


3. Static Dispatch با Map یا Switch:


   actions := map[string]func(){
"start": func() { fmt.Println("Starting...") },
}


چرا Dispatch

- نظم می‌ده به کد.
- قابل گسترشه.
- بهینه‌تر می‌شه.

#Golang #Dispatching

@Syntax_fa
👍114❤‍🔥1