Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
🎢 برنامه‌نویسی Async

شاید زیاد به گوشت خورده باشه: Async Programming، ولی خب، دقیقاً یعنی چی؟ 🤔 بیایید با هم ببینیم چجوری می‌شه باهاش پروژه‌هامونو بهتر و سریع‌تر توسعه بدیم.

حالا Async چیه؟ 🤔
تصور کن یه کافه پر سر و صدا داری؛ مشتری‌ها میان، سفارش می‌دن، می‌شینن و منتظر آماده شدن سفارش می‌مونن. حالا فرض کن فقط یه کارمند داری که باید یکی‌یکی سفارش بگیره و هرکدوم آماده شد، بده دست مشتری. 😴 اما اگه از Async کمک بگیری، این کارمند می‌تونه همه سفارش‌ها رو پشت سر هم بگیره و هربار که یه سفارش آماده شد، همونو تحویل بده. بدون اینکه لازم باشه به مشتری بگه "منتظر بمون"

حالا Async چجوری کار می‌کنه؟
برنامه‌نویسی Async بهت اجازه می‌ده که تسک‌ها رو همزمان اجرا کنی. مثلا موقع درخواست به یه سرور خارجی (API)، می‌تونی به برنامه بگی به جای منتظر موندن، همزمان یه کار دیگه هم انجام بده.

کجا به درد می‌خوره؟
▶️ API Calling:
وقتی داری اطلاعات می‌گیری، منتظر نمی‌مونی، یه تسک دیگه اجرا می‌کنی. 🚀

▶️ File Handling:
خوندن و نوشتن فایل‌های بزرگ بدون توقف کد. 📂

▶️ Web Scraping:
همزمان چندین صفحه رو بررسی می‌کنی.

یه مثال ساده از Async با Python و Js🐍

فرض کن یه فانکشن می‌خوایم بنویسیم که ۲ ثانیه بخوابه و بعد یه متن چاپ کنه. حالا ببین فرق sync و async چیه:

import asyncio

# Sync
def print_sync():
print("Starting Sync...")
time.sleep(2)
print("Done Sync!")

# Async
async def print_async():
print("Starting Async...")
await asyncio.sleep(2)
print("Done Async!")

# اجرا
asyncio.run(print_async())

حالا Js :
// Sync
function printSync() {
console.log("Starting Sync...");
sleep(2000); // این تابع sleep فقط برای شبیه‌سازیه
console.log("Done Sync!");
}

function sleep(ms) {
const start = Date.now();
while (Date.now() - start < ms) {}
}

// Async
async function printAsync() {
console.log("Starting Async...");
await new Promise(resolve => setTimeout(resolve, 2000));
console.log("Done Async!");
}

// اجرا
printAsync();



امید وارم مفید بوده باشه :)

#async #sync #backend


@ninja_learn_ir
Forwarded from Gopher Academy
🔵 عنوان مقاله
Building a Coding Agent in Go from Scratch

🟢 خلاصه مقاله:
این مجموعه سه مطلب عملی برای توسعه‌دهندگان Go را کنار هم می‌گذارد: ساخت یک coding agent از صفر در Go، استفاده از Timing Wheels برای انقضای کارآمد ۱۰ میلیون کلید بدون اسکن‌های O(n)، و مروری دقیق بر sync شامل Mutex، RWMutex، WaitGroup، Once، Cond و Pool. بخش agent بر معماری ماژولار، هماهنگی goroutine و channel، sandbox امن و حلقه بازخورد برای اجرای کد و بهبود تدریجی تأکید دارد. نوشته Bill Kennedy نشان می‌دهد چگونه با سطل‌بندی زمان‌سنج‌ها و حرکت چرخ، سربار و نوسان تأخیر کاهش می‌یابد و حتی در مقیاس بزرگ پایدار می‌ماند. در نهایت، مرور sync توصیه‌های عملی برای انتخاب درست بین primitives و channel، کاهش contention، و ارزیابی با benchmark، pprof و race detector ارائه می‌کند تا سامانه‌های Go هم هوشمند و هم سریع باشند.

#Go #Golang #Concurrency #TimingWheels #sync #SystemsProgramming #GoInternals #Performance

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


👑 @gopher_academy