Gopher Academy
3.33K subscribers
917 photos
40 videos
279 files
1.97K links
🕸 Gopher Academy

🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
Forwarded from Software Engineer Labdon
این ریپو واقعاً مثل یه گنج پنهانه که خیلی‌ها به راحتی از کنارش رد می‌شن، بدون اینکه بدونن چه ارزش بزرگی پشتشه. اینجا بیش از ۳۰۰ تا Case Study از بیشتر از ۸۰ تا شرکت پیشرو دنیا جمع‌آوری شده؛ شرکت‌هایی مثل Netflix، Airbnb و Doordash که هر کدوم تجربۀ واقعی‌شون از ML System Design رو به اشتراک گذاشتن.

اما موضوع فقط جمع کردن تجربه‌ها نیست؛ هر کدوم از این Case Studyها یه دریچه‌ست به دنیای واقعی، جایی که می‌شه دید چطور ML توی دل محصول‌ها و فرآیندها به کار گرفته می‌شه تا کیفیت و کارایی رو چند برابر کنه. این یعنی به جای خوندن تئوری‌های خشک، شما با مثال‌های زنده و
قابل لمس سروکار دارین.

لینک ریپو:
https://github.com/Engineer1999/A-Curated-List-of-ML-System-Design-Case-Studies

<Reza Jafari/>
5
Forwarded from AI Labdon
🤖 علاقه‌مند به دنیای هوش مصنوعی هستی؟

🏖 دنبال می‌کنی که چطور AI داره دنیا رو متحول می‌کنه؟

🍻پس جای درستی اومدی!

🎯 در کانال ما هر روز:

🔍 جدیدترین اخبار و دستاوردهای دنیای AI

🧠 تحلیل‌ تخصصی در حوزه یادگیری ماشین، دیپ لرنینگ و مدل‌های زبانی

💼 بررسی کاربردهای هوش مصنوعی در پزشکی، صنعت، آموزش، امنیت و اقتصاد

🛠 معرفی ابزارها، دوره‌ها و منابع یادگیری

📈 بررسی ترندها و آینده‌ فناوری‌های مرتبط با هوش مصنوعی

🍄همه‌ی این‌ها به زبان ساده، خلاصه و قابل فهم برای همه علاقه‌مندان — از مبتدی تا حرفه‌ای!
👇👇👇👇👇👇

https://t.me/ai_labdon
3
🔵 عنوان مقاله
D2: A Declarative Diagramming Tool in Go

🟢 خلاصه مقاله:
ا** D2 یک ابزار ترسیمی دکلراتیو نوشته‌شده با Go است که شبیه Mermaid کار می‌کند: به‌جای رسم دستی، ساختار نمودار را با متن توصیف می‌کنید و خروجی تصویری می‌گیرید. به‌تازگی پشتیبانی از خروجی ASCII اضافه شده است؛ بنابراین می‌توانید نمودارها را در محیط‌های متنی مثل ترمینال، READMEهای ساده، ایمیل و بازبینی کد هم قرار دهید. این رویکرد، نگه‌داری و نسخه‌بندی نمودارها در کنار کد را آسان‌تر و استفاده از آن‌ها را در مکان‌های بیشتری ممکن می‌کند.

🟣لینک مقاله:
https://golangweekly.com/link/173083/web


👑 @gopher_academy
3
🔵 عنوان مقاله
From Python to Go: Why We Rewrote Our Ingest Pipeline

🟢 خلاصه مقاله:
شروع کار در Telemetry Harbor با پایتون به‌خاطر سرعت ساخت و آزمایش آسان بود، اما با رشد ترافیک، محدودیت‌های هم‌زمانی و هزینه‌های مقیاس‌پذیری (به‌ویژه در تاخیرهای پُرنوسان) پدیدار شد. تیم برای مسیر داغ دریافت داده—ورود، اعتبارسنجی، نرمال‌سازی، دسته‌بندی و ارسال—به Go مهاجرت کرد تا از هم‌زمانی سبک‌وزن، کارایی بهتر، مصرف حافظه کمتر و استقرار ساده‌تر بهره ببرد. مهاجرت تدریجی و قابل‌کنترل انجام شد: اجرای موازی، آینه‌کردن ترافیک، حفظ پروتکل‌ها و استفاده از همان صف‌ها، سپس فعال‌سازی تدریجی. نتیجه، افزایش توان عبور، کاهش تاخیرهای انتهایی و کاهش مصرف منابع و پیچیدگی عملیاتی بود. پایتون همچنان برای بخش‌های آزمایشی و کنترل مناسب ماند؛ درس اصلی این است که بر اساس ماهیت کار، ابزار مناسب را انتخاب و با اندازه‌گیری و مهاجرت تدریجی، مسیر داغ را به زبان/پشته بهینه منتقل کنید.

🟣لینک مقاله:
https://golangweekly.com/link/173089/web


👑 @gopher_academy
3
Forwarded from Bardia & Erfan
کوروش بزرگ
🎉85🐳1
Forwarded from AI Labdon
🔥بهترین مدل هوش مصنوعی برای کد نویسی و حال مسائل ریاضی؟!

▪️قطعاً مدل QwQ از شرکت چینی علی‌بابا انتخاب من هست ؛ یک مدل هوش مصنوعی که برای تولید کد و حل مسائل ریاضی بسیار مناسبه ؛ چرا؟! چون ویژگی های زیر رو داره :

• سرعت شگفت‌انگیز در نوشتن کد و حل مسائل.
• آموزش بسیار قوی در بازار هوش مصنوعی
• قابلیت درک تا 13000 توکن در متن
• تا حد زیادی هم رایگانه و راحت میتونی استفاده کنی
AI Labdon
🔥بهترین مدل هوش مصنوعی برای کد نویسی و حال مسائل ریاضی؟! ▪️قطعاً مدل QwQ از شرکت چینی علی‌بابا انتخاب من هست ؛ یک مدل هوش مصنوعی که برای تولید کد و حل مسائل ریاضی بسیار مناسبه ؛ چرا؟! چون ویژگی های زیر رو داره : • سرعت شگفت‌انگیز در نوشتن کد و حل مسائل.…
🤔نتیجه جواب ها جالب بود با این مدل جدید علی بابا🤔
↙️اینم سایتش
https://chat.qwen.ai/

البته! در این‌جا چند روش مختلف برای محاسبه‌ی دنباله‌ی فیبوناچی در Go (Golang) آورده شده است:

### روش 1: بازگشتی (Recursive) - ساده ولی ناکارآمد

این روش ساده‌ترین پیاده‌سازی است، اما برای اعداد بزرگ بسیار کند است زیرا محاسبات تکراری زیادی انجام می‌دهد.

package main

import "fmt"

// fibonacciRecursive calculates the nth Fibonacci number recursively.
// Note: This is inefficient for large n due to repeated calculations.
func fibonacciRecursive(n int) int {
if n <= 1 {
return n
}
return fibonacciRecursive(n-1) + fibonacciRecursive(n-2)
}

func main() {
n := 10
fmt.Printf("Fibonacci number %d (Recursive): %d\n", n, fibonacciRecursive(n))
}


### روش 2: حلقه (Iterative) - کارآمد

این روش بسیار کارآمدتر است و پیچیدگی زمانی O(n) و پیچیدگی فضایی O(1) دارد.

package main

import "fmt"

// fibonacciIterative calculates the nth Fibonacci number iteratively.
// This is efficient with O(n) time complexity and O(1) space complexity.
func fibonacciIterative(n int) int {
if n <= 1 {
return n
}
a, b := 0, 1
for i := 2; i <= n; i++ {
a, b = b, a+b
}
return b
}

func main() {
n := 10
fmt.Printf("Fibonacci number %d (Iterative): %d\n", n, fibonacciIterative(n))
}


### روش 3: با استفاده از Memoization - کارآمد و بازگشتی

این روش از یک کَش (cache) برای ذخیره نتایج محاسبات قبلی استفاده می‌کند تا از تکرار محاسبات جلوگیری کند. هم بازگشتی است و هم کارآمد (پیچیدگی زمانی O(n)).

package main

import "fmt"

// fibonacciMemo calculates the nth Fibonacci number using memoization.
// It uses a map to cache previously calculated results for efficiency.
func fibonacciMemo(n int, cache map[int]int) int {
if n <= 1 {
return n
}
if val, found := cache[n]; found {
return val
}
cache[n] = fibonacciMemo(n-1, cache) + fibonacciMemo(n-2, cache)
return cache[n]
}

func main() {
n := 10
cache := make(map[int]int) // Initialize the cache
result := fibonacciMemo(n, cache)
fmt.Printf("Fibonacci number %d (Memoized): %d\n", n, result)
fmt.Printf("Cache contents: %v\n", cache) // Show cached values
}


### روش 4: تولید دنباله به صورت یک برش (Slice)

اگر به جای یافتن عدد n-ام، می‌خواهید چند عدد اول دنباله را داشته باشید:

package main

import "fmt"

// fibonacciSequence generates a slice containing the first n Fibonacci numbers.
func fibonacciSequence(n int) []int {
if n <= 0 {
return []int{}
} else if n == 1 {
return []int{0}
} else if n == 2 {
return []int{0, 1}
}

sequence := make([]int, n)
sequence[0] = 0
sequence[1] = 1

for i := 2; i < n; i++ {
sequence[i] = sequence[i-1] + sequence[i-2]
}
return sequence
}

func main() {
n := 10
sequence := fibonacciSequence(n)
fmt.Printf("First %d Fibonacci numbers: %v\n", n, sequence)
}


هر روش مزایا و معایب خودش را دارد. برای اهداف عمومی، روش حلقه‌ای (Iterative) یا Memoization بهترین انتخاب‌ها هستند.
61👍1
🔵 عنوان مقاله
Introducing gomjml: MJML Email Markup for Go Developers

🟢 خلاصه مقاله:
gomjml راهی برای استفاده از MJML در پروژه‌های Go معرفی می‌کند. MJML چارچوبی است که با تگ‌های سفارشی، نوشتن ایمیل را ساده می‌کند و سپس آن را به HTML واکنش‌گرا و سازگار با کلاینت‌های مختلف ایمیل تبدیل می‌سازد. پیاده‌سازی اصلی MJML در محیط Node است، اما gomjml این فاصله را برای توسعه‌دهندگان Go پر می‌کند تا بتوانند قالب‌های MJML را از درون برنامه‌های Go به HTML قابل اتکا تبدیل کنند، بدون ترک اکوسیستم Go. نتیجه، ارسال ایمیل‌های تراکنشی پایدار و یکدست است، با ادغام ساده در سرویس‌های فعلی و امکان تکیه بر موتور اصلی MJML از طریق یک واسط مناسب در Go.

🟣لینک مقاله:
https://golangweekly.com/link/173090/web


👑 @gopher_academy
1