From: Mohammad <116789737+Mohammad222PR@users.noreply.github.com>
Date: Mon, 21 Jul 2025 09:42:59 +0000 (+0330)
Subject: 🌐 Add Persian translation for `docs/fa/docs/async.md` (#13541)
X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5c74eeba5bd82af096d3d7febec0034cc5f2580d;p=thirdparty%2Ffastapi%2Ffastapi.git
🌐 Add Persian translation for `docs/fa/docs/async.md` (#13541)
* 🌐 Add Persian translation for docs/fa/docs/async.md
* 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
---
diff --git a/docs/fa/docs/async.md b/docs/fa/docs/async.md
new file mode 100644
index 0000000000..e073748620
--- /dev/null
+++ b/docs/fa/docs/async.md
@@ -0,0 +1,444 @@
+# ÙÙ
âØ²Ù
اÙÛ Ù async / await
+
+Ø¬Ø²Ø¦ÛØ§Øª در Ù
ÙØ±Ø¯ سÛÙØªÚ©Ø³ `async def` Ø¨Ø±Ø§Û *ØªÙØ§Ø¨Ø¹ عÙ
ÙÛØ§Øª Ù
Ø³ÛØ±* Ù ÛÙ Ú©Ù
Ù¾ÛØ´âزÙ
ÛÙ٠در Ù
ÙØ±Ø¯ کد ÙØ§ÙÙ
âØ²Ù
Ø§ÙØ ÙÙ
âØ²Ù
اÙÛ Ù Ù
ÙØ§Ø²ÛâØ³Ø§Ø²Û.
+
+## عجÙÙ Ø¯Ø§Ø±ÛØ
+
+TL;DR:
+
+اگ٠از کتابخÙÙÙâÙØ§Û سÙÙ
âØ´Ø®ØµÛ Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÛ Ú©Ù Ø¨ÙØª Ù
Ûâگ٠با `await` صداشÙÙ Ú©ÙÛØ Ù
Ø«Ù:
+
+```Python
+results = await some_library()
+```
+
+اÙÙ ÙÙØªØ *ØªÙØ§Ø¨Ø¹ عÙ
ÙÛØ§Øª Ù
Ø³ÛØ±Øª* ر٠با `async def` تعرÛÙ Ú©ÙØ اÛÙØ¬ÙرÛ:
+
+```Python hl_lines="2"
+@app.get('/')
+async def read_results():
+ results = await some_library()
+ return results
+```
+
+/// note
+
+ÙÙØ· تÙÛ ØªÙØ§Ø¨Ø¹Û ک٠با `async def` ساخت٠شد٠Ù
ÛâØªÙÙÛ Ø§Ø² `await` Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ.
+
+///
+
+---
+
+اگ٠از Û٠کتابخÙÙ٠سÙÙ
âØ´Ø®Øµ Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÛ Ú©Ù Ø¨Ø§ ÛÙ ÚÛØ²Û (Ù
Ø«Ù Ø¯ÛØªØ§Ø¨ÛØ³Ø APIØ Ø³ÛØ³ØªÙ
ÙØ§ÛÙ Ù ØºÛØ±Ù) ارتباط دار٠٠از `await` Ù¾Ø´ØªÛØ¨Ø§ÙÛ ÙÙ
ÛâÚ©ÙÙ (Ú©Ù Ø§ÙØ§Ù Ø¨Ø±Ø§Û Ø¨ÛØ´ØªØ± کتابخÙÙÙâÙØ§Û Ø¯ÛØªØ§Ø¨Ûس اÛÙØ¬ÙرÛÙ)Ø Ø§ÙÙ ÙÙØª *ØªÙØ§Ø¨Ø¹ عÙ
ÙÛØ§Øª Ù
Ø³ÛØ±Øª* Ø±Ù Ø¹Ø§Ø¯ÛØ ÙÙØ· با `def` تعرÛÙ Ú©ÙØ اÛÙØ¬ÙرÛ:
+
+```Python hl_lines="2"
+@app.get('/')
+def results():
+ results = some_library()
+ return results
+```
+
+---
+
+Ø§Ú¯Ù Ø¨Ø±ÙØ§Ù
ÙâØ§Øª (Ø¨Ù ÙØ± دÙÛÙÛ) ÙØ§Ø²Ù
ÙÛØ³Øª با ÚÛØ² دÛÚ¯ÙâØ§Û Ø§Ø±ØªØ¨Ø§Ø· Ø¨Ø±ÙØ±Ø§Ø± Ú©ÙÙ Ù Ù
ÙØªØ¸Ø± Ø¬ÙØ§Ø¨Ø´ بÙ
ÙÙÙØ از `async def` Ø§Ø³ØªÙØ§Ø¯Ù Ú©Ù.
+
+---
+
+اگ٠ÙÙ
ÛâØ¯ÙÙÛ ÚÛکار Ú©ÙÛØ از `def` Ù
عÙ
ÙÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ú©Ù.
+
+---
+
+**ØªÙØ¬Ù**: Ù
ÛâØªÙÙÛ ØªÙÛ *ØªÙØ§Ø¨Ø¹ عÙ
ÙÛØ§Øª Ù
Ø³ÛØ±Øª* ÙØ± ÚÙØ¯Ø± Ú©Ù ÙØ§Ø²Ù
Ø¯Ø§Ø±Û `def` Ù `async def` Ø±Ù ÙØ§Ø·Û Ú©ÙÛ Ù ÙØ± کدÙÙ
ر٠با Ø¨ÙØªØ±Û٠گزÛÙ٠برات تعرÛÙ Ú©ÙÛ. FastAPI Ø®ÙØ¯Ø´ کار درست Ø±Ù Ø¨Ø§ÙØ§Ø´ÙÙ Ø§ÙØ¬Ø§Ù
Ù
ÛâØ¯Ù.
+
+Ø¨Ù ÙØ± ØØ§ÙØ ØªÙÛ ÙØ± کدÙÙ
از Ù
ÙÙØ¹ÛتâÙØ§Û Ø¨Ø§ÙØ§Ø FastAPI ÙÙÙØ² ÙØ§ÙÙ
âØ²Ù
ا٠کار Ù
ÛâÚ©ÙÙ Ù Ø®ÛÙÛ Ø®ÛÙÛ Ø³Ø±ÛØ¹ ÙØ³Øª.
+
+ÙÙÛ Ø¨Ø§ Ø¯ÙØ¨Ø§Ù کرد٠Ù
راØÙ Ø¨Ø§ÙØ§Ø Ù
ÛâØªÙÙÙ ÛÙ Ø³Ø±Û Ø¨ÙÛÙÙâØ³Ø§Ø²Û Ø¹Ù
Ùکرد ÙÙ
بکÙÙ.
+
+## Ø¬Ø²Ø¦ÛØ§Øª ÙÙÛ
+
+ÙØ³Ø®ÙâÙØ§Û Ù
Ø¯Ø±Ù Ù¾Ø§ÛØªÙ٠از **"کد ÙØ§ÙÙ
âØ²Ù
اÙ"** با ÚÛØ²Û Ú©Ù Ø¨ÙØ´ **"Ú©Ø±ÙØªÛÙ"** Ù
ÛâÚ¯Ù Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù
ÛâÚ©ÙÙØ با سÛÙØªÚ©Ø³ **`async` Ù `await`**.
+
+Ø¨ÛØ§Ûد اÛ٠جÙ
Ù٠ر٠تکÙâØªÚ©Ù ØªÙÛ Ø¨Ø®Ø´âÙØ§Û Ø²ÛØ± ببÛÙÛÙ
:
+
+* **کد ÙØ§ÙÙ
âØ²Ù
اÙ**
+* **`async` Ù `await`**
+* **Ú©Ø±ÙØªÛÙâÙØ§**
+
+## کد ÙØ§ÙÙ
âØ²Ù
اÙ
+
+کد ÙØ§ÙÙ
âØ²Ù
Ø§Ù ÛØ¹ÙÛ Ø²Ø¨ÙÙ ð¬ Û٠راÙÛ Ø¯Ø§Ø±Ù Ú©Ù Ø¨Ù Ú©Ø§Ù
Ù¾ÛÙØªØ± / Ø¨Ø±ÙØ§Ù
Ù ð¤ Ø¨Ú¯Ù تÙÛ ÛÙ Ø¬Ø§Û Ú©Ø¯Ø Ø¨Ø§ÛØ¯ Ù
ÙØªØ¸Ø± بÙ
ÙÙ٠تا *ÛÙ ÚÛØ² دÛÚ¯Ù* ÛÙ Ø¬Ø§Û Ø¯Ûگ٠تÙ
ÙÙ
بشÙ. ÙØ±Ø¶ ک٠اÙÙ *ÛÙ ÚÛØ² دÛÚ¯Ù* اسÙ
Ø´ "ÙØ§ÛÙ-آرÙÙ
" ð Ø¨Ø§Ø´Ù.
+
+Ù¾Ø³Ø ØªÙÛ Ø§ÙÙ Ù
Ø¯ØªØ Ú©Ø§Ù
Ù¾ÛÙØªØ± Ù
ÛâØªÙÙ٠بر٠Û٠کار دÛگ٠بکÙÙØ تا ÙÙØªÛ "ÙØ§ÛÙ-آرÙÙ
" ð ØªÙ
ÙÙ
بشÙ.
+
+بعدش کاÙ
Ù¾ÛÙØªØ± / Ø¨Ø±ÙØ§Ù
Ù ð¤ ÙØ± ÙÙØª ÙØ±ØµØªÛ داشت٠باش٠برÙ
ÛâÚ¯Ø±Ø¯ÙØ ÚÙÙ Ø¯ÙØ¨Ø§Ø±Ù Ù
ÙØªØ¸Ø±ÙØ ÛØ§ ÙØ± ÙÙØª ÙÙ
Ù Ú©Ø§Ø±Û Ú©Ù Ø§ÙÙ ÙØØ¸Ù Ø¯Ø§Ø´ØªÙ ØªÙ
ÙÙ
کردÙ. Ù Ù
ÛâØ¨ÛÙÙ Ø¢ÛØ§ کاراÛÛ Ú©Ù Ù
ÙØªØ¸Ø±Ø´ÙÙ Ø¨ÙØ¯Ù تÙ
ÙÙ
Ø´Ø¯Ù ÛØ§ ÙÙØ Ù ÙØ± Ú©Ø§Ø±Û Ú©Ù Ø¨Ø§ÛØ¯ بکÙÙ Ø±Ù Ø§ÙØ¬Ø§Ù
Ù
ÛâØ¯Ù.
+
+Ø¨Ø¹Ø¯Ø Ø§ÙÙ ð¤ Ø§ÙÙÛÙ Ú©Ø§Ø±Û Ú©Ù ØªÙ
ÙÙ
شد٠(Ù
Ø«ÙØ§Ù "ÙØ§ÛÙ-آرÙÙ
" ð Ù
ا) ر٠برÙ
ÛâØ¯Ø§Ø±Ù Ù ÙØ± Ú©Ø§Ø±Û Ú©Ù Ø¨Ø§ÛØ¯ Ø¨Ø§ÙØ§Ø´ بکÙ٠ر٠اداÙ
Ù Ù
ÛâØ¯Ù.
+
+اÛÙ "Ù
ÙØªØ¸Ø± ÛÙ ÚÛØ² دÛÚ¯Ù Ø¨ÙØ¯Ù" Ù
عÙ
ÙÙØ§Ù ب٠عÙ
ÙÛØ§Øª I/O Ø§Ø´Ø§Ø±Ù Ø¯Ø§Ø±Ù Ú©Ù ÙØ³Ø¨ØªØ§Ù "آرÙÙ
" ÙØ³ØªÙ (ÙØ³Ø¨Øª ب٠سرعت Ù¾Ø±Ø¯Ø§Ø²ÙØ¯Ù Ù ØØ§Ùظ٠RAM)Ø Ù
ث٠Ù
ÙØªØ¸Ø± Ù
ÙÙØ¯Ù براÛ:
+
+* دادÙâÙØ§ÛÛ Ú©Ù Ø§Ø² Ú©ÙØ§ÛÙØª از طرÛÙ Ø´Ø¨Ú©Ù ÙØ±Ø³ØªØ§Ø¯Ù Ù
ÛâØ´Ù
+* دادÙâÙØ§ÛÛ Ú©Ù Ø¨Ø±ÙØ§Ù
ÙâØ§Øª ÙØ±Ø³ØªØ§Ø¯Ù تا از طرÛÙ Ø´Ø¨Ú©Ù Ø¨Ù Ú©ÙØ§ÛÙØª برسÙ
+* Ù
ØØªÙØ§Û ÛÙ ÙØ§Û٠تÙÛ Ø¯ÛØ³Ú© Ú©Ù Ø³ÛØ³ØªÙ
بخÙÙØ¯Ø´ Ù Ø¨Ù Ø¨Ø±ÙØ§Ù
ÙâØ§Øª بدÙ
+* Ù
ØØªÙاÛÛ Ú©Ù Ø¨Ø±ÙØ§Ù
ÙâØ§Øª Ø¨Ù Ø³ÛØ³ØªÙ
داد٠تا تÙÛ Ø¯ÛØ³Ú© بÙÙÛØ³Ù
+* Û٠عÙ
ÙÛØ§Øª API از Ø±Ø§Ù Ø¯ÙØ±
+* Û٠عÙ
ÙÛØ§Øª Ø¯ÛØªØ§Ø¨Ûس ک٠تÙ
ÙÙ
بشÙ
+* ÛÙ Ú©ÙØ¦Ø±Û Ø¯ÛØªØ§Ø¨Ûس Ú©Ù ÙØªØ§Ûجش برگردÙ
+* Ù ØºÛØ±Ù.
+
+ÚÙ٠زÙ
ا٠اجرا Ø¨ÛØ´ØªØ± ØµØ±Ù Ø§ÙØªØ¸Ø§Ø± Ø¨Ø±Ø§Û Ø¹Ù
ÙÛØ§Øª I/O Ù
ÛâØ´ÙØ Ø¨ÙØ´ÙÙ Ù
Ûâگ٠عÙ
ÙÛØ§Øª "I/O bound".
+
+Ø¨ÙØ´ "ÙØ§ÙÙ
âØ²Ù
اÙ" Ù
ÛâÚ¯Ù ÚÙ٠کاÙ
Ù¾ÛÙØªØ± / Ø¨Ø±ÙØ§Ù
Ù ÙØ§Ø²Ù
ÙÛØ³Øª با کار آرÙÙ
"ÙÙ
âØ²Ù
اÙ" Ø¨Ø§Ø´ÙØ Ù
ÙØªØ¸Ø± ÙØØ¸Ù Ø¯ÙÛ٠تÙ
ÙÙ
شد٠کار بÙ
ÙÙÙØ در ØØ§ÙÛ Ú©Ù ÙÛÚ Ú©Ø§Ø±Û ÙÙ
ÛâÚ©ÙÙØ تا ÙØªÛØ¬Ù Ø±Ù Ø¨Ú¯ÛØ±Ù ٠کارش ر٠اداÙ
٠بدÙ.
+
+Ø¨Ù Ø¬Ø§Ø´Ø ÚÙÙ ÛÙ Ø³ÛØ³ØªÙ
"ÙØ§ÙÙ
âØ²Ù
اÙ" ÙØ³ØªØ ÙÙØªÛ کار تÙ
ÙÙ
Ø´Ø¯Ø Ù
ÛâØªÙÙÙ ÛÙ Ú©Ù
تÙÛ ØµÙ Ù
ÙØªØ¸Ø± بÙ
ÙÙÙ (ÚÙØ¯ Ù
ÛÚ©Ø±ÙØ«Ø§ÙÛÙ) تا کاÙ
Ù¾ÛÙØªØ± / Ø¨Ø±ÙØ§Ù
Ù ÙØ± Ú©Ø§Ø±Û Ú©Ù Ø±ÙØªÙ بکÙ٠ر٠تÙ
ÙÙ
Ú©ÙÙØ ٠بعد Ø¨Ø±Ú¯Ø±Ø¯Ù ÙØªÛØ¬Ù Ø±Ù Ø¨Ú¯ÛØ±Ù Ù Ø¨Ø§ÙØ§Ø´ کار Ú©ÙÙ.
+
+Ø¨Ø±Ø§Û "ÙÙ
âØ²Ù
اÙ" (Ø¨Ø±Ø®ÙØ§Ù "ÙØ§ÙÙ
âØ²Ù
اÙ") Ù
عÙ
ÙÙØ§Ù از Ø§ØµØ·ÙØ§Ø "ØªØ±ØªÛØ¨Û" ÙÙ
Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÙØ ÚÙ٠کاÙ
Ù¾ÛÙØªØ± / Ø¨Ø±ÙØ§Ù
Ù ÙÙ
Ù Ù
راØÙ Ø±Ù Ø¨Ù ØªØ±ØªÛØ¨ Ø¯ÙØ¨Ø§Ù Ù
ÛâÚ©ÙÙ ÙØ¨Ù از اÛÙک٠بر٠سراغ Û٠کار دÛÚ¯ÙØ ØØªÛ اگ٠اÙÙ Ù
راØÙ شاÙ
Ù Ø§ÙØªØ¸Ø§Ø± باشÙ.
+
+### ÙÙ
âØ²Ù
اÙÛ Ù Ø¨Ø±Ú¯Ø±ÙØ§
+
+اÛÙ Ø§ÛØ¯Ù **ÙØ§ÙÙ
âØ²Ù
اÙ** Ú©Ù Ø¨Ø§ÙØ§ ØªÙØ¶ÛØ Ø¯Ø§Ø¯Ù
گاÙÛ Ø¨ÙØ´ **"ÙÙ
âØ²Ù
اÙÛ"** ÙÙ
Ù
ÛâÚ¯Ù. با **"Ù
ÙØ§Ø²ÛâØ³Ø§Ø²Û"** ÙØ±Ù دارÙ.
+
+**ÙÙ
âØ²Ù
اÙÛ** Ù **Ù
ÙØ§Ø²ÛâØ³Ø§Ø²Û** ÙØ± د٠ب٠"Ø§ØªÙØ§Ù Ø§ÙØªØ§Ø¯Ù ÚÛØ²Ø§Û Ù
ختÙÙ Ú©Ù
âÙØ¨ÛØ´ ÙÙ
زÙ
اÙ" ربط دارÙ.
+
+ÙÙÛ Ø¬Ø²Ø¦ÛØ§Øª بÛÙ *ÙÙ
âØ²Ù
اÙÛ* Ù *Ù
ÙØ§Ø²ÛâØ³Ø§Ø²Û* Ø®ÛÙÛ Ù
ØªÙØ§ÙتÙ.
+
+Ø¨Ø±Ø§Û Ø¯ÛØ¯Ù ÙØ±ÙØ´Ø Ø§Û٠داستا٠در Ù
ÙØ±Ø¯ Ø¨Ø±Ú¯Ø±ÙØ§ Ø±Ù ØªØµÙØ± Ú©Ù:
+
+### Ø¨Ø±Ú¯Ø±ÙØ§Û ÙÙ
âØ²Ù
اÙ
+
+با Ø¹Ø´ÙØª Ù
ÛâØ±Û ÙØ³ØªâÙÙØ¯ Ø¨Ú¯ÛØ±ÛÙØ تÙÛ ØµÙ ÙØ§ÛÙ
ÛØ³ØªÛ در ØØ§ÙÛ Ú©Ù ØµÙØ¯ÙÙØ¯Ø§Ø± Ø³ÙØ§Ø±Ø´ آدÙ
Ø§Û Ø¬ÙÙÛ ØªÙ Ø±Ù Ù
ÛâÚ¯ÛØ±Ù. ð
+
+
+
+بعد ÙÙØ¨Øª ت٠Ù
ÛâØ´ÙØ Ø³ÙØ§Ø±Ø´ د٠تا برگر Ø®ÛÙÛ Ø´ÛÚ© Ø¨Ø±Ø§Û Ø®ÙØ¯Øª Ù Ø¹Ø´ÙØª Ù
ÛâØ¯Û. ðð
+
+
+
+ØµÙØ¯ÙÙØ¯Ø§Ø± ÛÙ ÚÛØ²Û ب٠آشپز تÙÛ Ø¢Ø´Ù¾Ø²Ø®ÙÙÙ Ù
Ûâگ٠تا بدÙÙÙ Ø¨Ø§ÛØ¯ Ø¨Ø±Ú¯Ø±ÙØ§Û ت٠ر٠آÙ
اد٠کÙÙ (گرÚÙ Ø§ÙØ§Ù Ø¯Ø§Ø±Ù Ø¨Ø±Ú¯Ø±ÙØ§Û Ù
Ø´ØªØ±ÛØ§Û ÙØ¨ÙÛ Ø±Ù Ø¯Ø±Ø³Øª Ù
ÛâÚ©ÙÙ).
+
+
+
+Ù¾Ù٠ر٠Ù
ÛâØ¯Û. ð¸
+
+ØµÙØ¯ÙÙØ¯Ø§Ø± Ø´Ù
ار٠ÙÙØ¨ØªØª Ø±Ù Ø¨ÙØª Ù
ÛâØ¯Ù.
+
+
+
+ÙÙØªÛ Ù
ÙØªØ¸Ø±ÛØ Ø¨Ø§ Ø¹Ø´ÙØª Ù
ÛâØ±Û ÛÙ Ù
ÛØ² Ø§ÙØªØ®Ø§Ø¨ Ù
ÛâÚ©ÙÛØ Ù
ÛâØ´ÛÙÛ Ù Ú©ÙÛ Ø¨Ø§ Ø¹Ø´ÙØª ØØ±Ù Ù
ÛâØ²ÙÛ (ÚÙÙ Ø¨Ø±Ú¯Ø±ÙØ§Øª Ø®ÛÙÛ Ø´Ûک٠٠آÙ
Ø§Ø¯Ù Ú©Ø±Ø¯ÙØ´ÙÙ ÛÙ Ú©Ù
Ø·ÙÙ Ù
ÛâÚ©Ø´Ù).
+
+ÙÙØªÛ پشت Ù
ÛØ² با Ø¹Ø´ÙØª ÙØ´Ø³ØªÛØ Ø¯Ø± ØØ§ÙÛ Ú©Ù Ù
ÙØªØ¸Ø± Ø¨Ø±Ú¯Ø±ÙØ§ÛÛØ Ù
ÛâØªÙÙÛ Ø§Ù٠زÙ
Ø§Ù Ø±Ù ØµØ±Ù ØªØØ³Û٠اÛÙ Ú©ÙÛ Ú©Ù Ø¹Ø´ÙØª ÚÙØ¯Ø± Ø¨Ø§ØØ§ÙØ ÙØ§Ø² ٠باÙÙØ´Ù â¨ðâ¨.
+
+
+
+ÙÙØªÛ Ù
ÙØªØ¸Ø±Û ٠با Ø¹Ø´ÙØª ØØ±Ù Ù
ÛâØ²ÙÛØ ÙØ± از گاÙÛ Ø´Ù
ارÙâØ§Û Ú©Ù Ø±Ù Ù¾ÛØ´Ø®ÙÙ ÙØ´Ù٠داد٠Ù
ÛâØ´Ù Ø±Ù ÚÚ© Ù
ÛâÚ©ÙÛ Ú©Ù Ø¨Ø¨ÛÙÛ ÙÙØ¨ØªØª Ø´Ø¯Ù ÛØ§ ÙÙ.
+
+بعد Û٠جاÛÛ Ø¨Ø§ÙØ§Ø®Ø±Ù ÙÙØ¨ØªØª Ù
ÛâØ´Ù. Ù
ÛâØ±Û Ù¾ÛØ´Ø®ÙÙØ Ø¨Ø±Ú¯Ø±ÙØ§Øª ر٠Ù
ÛâÚ¯ÛØ±Û ٠برÙ
ÛâÚ¯Ø±Ø¯Û Ø³Ø± Ù
ÛØ².
+
+
+
+ØªÙ Ù Ø¹Ø´ÙØª Ø¨Ø±Ú¯Ø±ÙØ§ ر٠Ù
ÛâØ®ÙØ±ÛÙ Ù ÛÙ ÙÙØª Ø®ÙØ¨ باÙÙ
دارÛÙ. â¨
+
+
+
+/// info
+
+تصاÙÛØ± ÙØ´ÙÚ¯ از کترÛÙØ§ تاÙ
پسÙÙ. ð¨
+
+///
+
+---
+
+ØªØµÙØ± ک٠ت٠تÙÛ Ø§Û٠داستا٠کاÙ
Ù¾ÛÙØªØ± / Ø¨Ø±ÙØ§Ù
Ù ð¤ ÙØ³ØªÛ.
+
+ÙÙØªÛ تÙÛ ØµÙ ÙØ³ØªÛØ ÙÙØ· بÛÚ©Ø§Ø±Û ð´Ø Ù
ÙØªØ¸Ø± ÙÙØ¨ØªØª ÙØ³ØªÛØ Ú©Ø§Ø± Ø®ÛÙÛ "Ù
ÙÛØ¯Û" ÙÙ
ÛâÚ©ÙÛ. ÙÙÛ ØµÙ Ø³Ø±ÛØ¹ Ù¾ÛØ´ Ù
ÛâØ±Ù ÚÙÙ ØµÙØ¯ÙÙØ¯Ø§Ø± ÙÙØ· Ø³ÙØ§Ø±Ø´ Ù
ÛâÚ¯ÛØ±Ù (Ø¢Ù
ادشÙÙ ÙÙ
ÛâÚ©ÙÙ)Ø Ù¾Ø³ اÛÙ Ø®ÙØ¨Ù.
+
+Ø¨Ø¹Ø¯Ø ÙÙØªÛ ÙÙØ¨ØªØª Ù
ÛâØ´ÙØ کار "Ù
ÙÛØ¯" ÙØ§ÙØ¹Û Ù
ÛâÚ©ÙÛØ Ù
Ù٠ر٠پردازش Ù
ÛâÚ©ÙÛØ تصÙ
ÛÙ
Ù
ÛâÚ¯ÛØ±Û ÚÛ Ù
ÛâØ®ÙØ§ÛØ Ø§ÙØªØ®Ø§Ø¨ Ø¹Ø´ÙØª ر٠Ù
ÛâÚ¯ÛØ±ÛØ Ù¾ÙÙ Ù
ÛâØ¯ÛØ ÚÚ© Ù
ÛâÚ©ÙÛ Ø§Ø³Ú©ÙØ§Ø³ ÛØ§ کارت درست Ø±Ù Ø¯Ø§Ø¯ÛØ ÚÚ© Ù
ÛâÚ©ÙÛ Ø¯Ø±Ø³Øª ØØ³Ø§Ø¨ Ø´Ø¯ÙØ ÚÚ© Ù
ÛâÚ©ÙÛ Ø³ÙØ§Ø±Ø´ Ø¢ÛØªÙ
Ø§Û Ø¯Ø±Ø³Øª Ø±Ù Ø¯Ø§Ø±Ù Ù ØºÛØ±Ù.
+
+ÙÙÛ Ø¨Ø¹Ø¯Ø Ú¯Ø±ÚÙ ÙÙÙØ² Ø¨Ø±Ú¯Ø±ÙØ§Øª Ø±Ù ÙØ¯Ø§Ø±ÛØ Ú©Ø§Ø±Øª با ØµÙØ¯ÙÙØ¯Ø§Ø± "Ù
ÙÙØªØ§Ù Ù
تÙÙÙ" ⸠Ù
ÛâØ´ÙØ ÚÙÙ Ø¨Ø§ÛØ¯ Ù
ÙØªØ¸Ø± بÙ
ÙÙÛ ð ØªØ§ Ø¨Ø±Ú¯Ø±ÙØ§Øª Ø¢Ù
اد٠بشÙ.
+
+ÙÙÛ ÙÙØªÛ از Ù¾ÛØ´Ø®ÙÙ Ø¯ÙØ± Ù
ÛâØ´Û Ù Ø¨Ø§ Ø´Ù
ار٠ÙÙØ¨ØªØª سر Ù
ÛØ² Ù
ÛâØ´ÛÙÛØ Ù
ÛâØªÙÙÛ ØªÙØ¬Ùت Ø±Ù ð Ø¨Ù Ø¹Ø´ÙØª Ø¨Ø¯Û Ù "کار" â¯ ð¤ Ø±Ù اÙ٠بکÙÛ. بعدش Ø¯ÙØ¨Ø§Ø±Ù Ø¯Ø§Ø±Û ÛÙ ÚÛØ² Ø®ÛÙÛ "Ù
ÙÛØ¯" Ø§ÙØ¬Ø§Ù
Ù
ÛâØ¯ÛØ Ù
Ø«Ù ÙØ§Ø³ زد٠با Ø¹Ø´ÙØª ð.
+
+بعد ØµÙØ¯ÙÙØ¯Ø§Ø± ð Ø¨Ø§ گذاشت٠شÙ
ارÙâØ§Øª ر٠ÙÙ
Ø§ÛØ´Ú¯Ø± Ù¾ÛØ´Ø®ÙÙ Ù
ÛâÚ¯Ù "Ù
٠با درست Ú©Ø±Ø¯Ù Ø¨Ø±Ú¯Ø±ÙØ§ تÙ
ÙÙ
کردÙ
"Ø ÙÙÛ ØªÙ Ù
ث٠دÛÙÙÙÙâÙØ§ ÙÙØªÛ Ø´Ù
ارÙâØ§Øª ر٠ÙÙ
Ø§ÛØ´Ú¯Ø± Ù
ÛØ§Ø¯ ÙÙØ±Û ÙÙ
ÛâپرÛ. Ù
ÛâØ¯ÙÙÛ Ú©Ø³Û Ø¨Ø±Ú¯Ø±ÙØ§Øª ر٠ÙÙ
ÛâØ¯Ø²Ø¯Ù ÚÙÙ Ø´Ù
ار٠ÙÙØ¨ØªØª Ø±Ù Ø¯Ø§Ø±ÛØ ٠اÙÙØ§ ÙÙ
Ù
Ø§Ù Ø®ÙØ¯Ø´Ù٠ر٠دارÙ.
+
+پس Ù
ÙØªØ¸Ø± Ù
ÛâÙ
ÙÙÛ ØªØ§ Ø¹Ø´ÙØª Ø¯Ø§Ø³ØªØ§ÙØ´ ر٠تÙ
ÙÙ
Ú©ÙÙ (کار ÙØ¹ÙÛ â¯ / ÙØ¸ÛÙÙâØ§Û Ú©Ù Ø¯Ø§Ø±Ù Ù¾Ø±Ø¯Ø§Ø²Ø´ Ù
ÛâØ´Ù ð¤)Ø Ø¢Ø±ÙÙ
ÙØ¨Ø®Ùد Ù
ÛâØ²ÙÛ Ù Ù
ÛâÚ¯Û Ú©Ù Ù
ÛâØ±Û Ø¨Ø±Ú¯Ø±ÙØ§ Ø±Ù Ø¨ÛØ§Ø±Û â¸.
+
+بعد Ù
ÛâØ±Û Ù¾ÛØ´Ø®ÙÙ ðØ Ø¨Ù کار اÙÙÛÙ Ú©Ù ØØ§Ùا تÙ
ÙÙ
Ø´Ø¯Ù â¯Ø Ø¨Ø±Ú¯Ø±ÙØ§ ر٠Ù
ÛâÚ¯ÛØ±ÛØ ØªØ´Ú©Ø± Ù
ÛâÚ©ÙÛ Ù Ù
ÛâØ¨Ø±Ø´Ù٠سر Ù
ÛØ². اÛÙ Ù
رØÙÙ / ÙØ¸ÛÙ٠تعاÙ
٠با Ù¾ÛØ´Ø®Ù٠ر٠تÙ
ÙÙ
Ù
ÛâÚ©ÙÙ â¹. اÛ٠ب٠ÙÙØ¨Ù Ø®ÙØ¯Ø´ ÛÙ ÙØ¸ÛÙÙ Ø¬Ø¯ÛØ¯Ø "Ø®ÙØ±Ø¯Ù Ø¨Ø±Ú¯Ø±ÙØ§" ð â¯Ø Ù
ÛâØ³Ø§Ø²ÙØ ÙÙÛ Ø§ÙÙ ÙØ¨ÙÛ Ú©Ù "Ú¯Ø±ÙØªÙ Ø¨Ø±Ú¯Ø±ÙØ§" Ø¨ÙØ¯ تÙ
ÙÙ
شد٠â¹.
+
+### Ø¨Ø±Ú¯Ø±ÙØ§Û Ù
ÙØ§Ø²Û
+
+ØØ§Ùا ÙØ±Ø¶ ک٠اÛÙØ§ "Ø¨Ø±Ú¯Ø±ÙØ§Û ÙÙ
âØ²Ù
اÙ" ÙÛØ³ØªÙØ Ø¨ÙÚ©Ù "Ø¨Ø±Ú¯Ø±ÙØ§Û Ù
ÙØ§Ø²Û" ÙØ³ØªÙ.
+
+با Ø¹Ø´ÙØª Ù
ÛâØ±Û ÙØ³ØªâÙÙØ¯ Ù
ÙØ§Ø²Û Ø¨Ú¯ÛØ±Û.
+
+تÙÛ ØµÙ ÙØ§ÛÙ
ÛØ³ØªÛ در ØØ§ÙÛ Ú©Ù ÚÙØ¯ تا (Ù
Ø«ÙØ§Ù 8 تا) ØµÙØ¯ÙÙØ¯Ø§Ø± Ú©Ù ÙÙ
زÙ
ا٠آشپز ÙÙ
ÙØ³ØªÙ Ø³ÙØ§Ø±Ø´ آدÙ
Ø§Û Ø¬ÙÙÛ ØªÙ Ø±Ù Ù
ÛâÚ¯ÛØ±Ù.
+
+ÙÙ
Ù ÙØ¨Ù ت٠Ù
ÙØªØ¸Ø±Ù Ø¨Ø±Ú¯Ø±ÙØ§Ø´Ù٠آÙ
Ø§Ø¯Ù Ø¨Ø´Ù ÙØ¨Ù از اÛÙÚ©Ù Ù¾ÛØ´Ø®Ù٠ر٠ترک Ú©ÙÙØ ÚÙÙ ÙØ± کدÙÙ
از 8 تا ØµÙØ¯ÙÙØ¯Ø§Ø± Ù
ÛâØ±Ù Ù Ø¨Ø±Ú¯Ø± ر٠ÙÙ
ÙÙ Ù
ÙÙØ¹ درست Ù
ÛâÚ©ÙÙ ÙØ¨Ù از اÛÙÚ©Ù Ø³ÙØ§Ø±Ø´ Ø¨Ø¹Ø¯Û Ø±Ù Ø¨Ú¯ÛØ±Ù.
+
+
+
+Ø¨Ø§ÙØ§Ø®Ø±Ù ÙÙØ¨Øª ت٠Ù
ÛâØ´ÙØ Ø³ÙØ§Ø±Ø´ د٠تا برگر Ø®ÛÙÛ Ø´ÛÚ© Ø¨Ø±Ø§Û Ø®ÙØ¯Øª Ù Ø¹Ø´ÙØª Ù
ÛâØ¯Û.
+
+Ù¾Ù٠ر٠Ù
ÛâØ¯Û ð¸.
+
+
+
+ØµÙØ¯ÙÙØ¯Ø§Ø± Ù
ÛâØ±Ù Ø¢Ø´Ù¾Ø²Ø®ÙÙÙ.
+
+Ù
ÙØªØ¸Ø± Ù
ÛâÙ
ÙÙÛØ جÙÙÛ Ù¾ÛØ´Ø®ÙÙ ÙØ§ÛØ³ØªØ§Ø¯Û ðØ Ú©Ù Ú©Ø³Û ÙØ¨Ù از ØªÙ Ø¨Ø±Ú¯Ø±ÙØ§Øª ر٠ÙÚ¯ÛØ±ÙØ ÚÙÙ Ø´Ù
ار٠ÙÙØ¨Øª ÙÛØ³Øª.
+
+
+
+ÚÙÙ ØªÙ Ù Ø¹Ø´ÙØª Ù
شغÙ٠اÛÙ ÙØ³ØªÛÙ Ú©Ù ÙØ°Ø§Ø±ÛÙ Ú©Ø³Û Ø¬ÙÙØªÙÙ Ø¨ÛØ§Ø¯ Ù ÙØ± ÙÙØª Ø¨Ø±Ú¯Ø±ÙØ§ Ø±Ø³ÛØ¯Ù اÙÙØ§ Ø±Ù Ø¨Ú¯ÛØ±ÙØ ÙÙ
ÛâØªÙÙÛ Ø¨Ù Ø¹Ø´ÙØª ØªÙØ¬Ù Ú©ÙÛ. ð
+
+اÛ٠کار "ÙÙ
âØ²Ù
اÙ" ÙØ³ØªØ ت٠با ØµÙØ¯ÙÙØ¯Ø§Ø±/آشپز ð¨âð³ "ÙÙ
âØ²Ù
اÙ" ÙØ³ØªÛ. Ø¨Ø§ÛØ¯ Ù
ÙØªØ¸Ø± بÙ
ÙÙÛ ð ٠درست ÙÙ
ÙÙ ÙØØ¸Ù Ú©Ù ØµÙØ¯ÙÙØ¯Ø§Ø±/آشپز ð¨âð³ Ø¨Ø±Ú¯Ø±Ùا ر٠تÙ
ÙÙ
Ù
ÛâÚ©ÙÙ Ù Ø¨ÙØª Ù
ÛâØ¯Ù Ø§ÙÙØ¬Ø§ Ø¨Ø§Ø´ÛØ ÙگرÙÙ Ù
Ù
Ú©ÙÙ ÛÚ©Û Ø¯Ûگ٠اÙÙØ§ Ø±Ù Ø¨Ú¯ÛØ±Ù.
+
+
+
+بعد ØµÙØ¯ÙÙØ¯Ø§Ø±/آشپزت ð¨âð³ Ø¨Ø§Ùاخر٠بعد از ÛÙ Ù
دت Ø·ÙÙØ§ÙÛ Ø§ÙØªØ¸Ø§Ø± ð Ø¬ÙÙÛ Ù¾ÛØ´Ø®Ù٠با Ø¨Ø±Ú¯Ø±ÙØ§Øª برÙ
ÛâگردÙ.
+
+
+
+Ø¨Ø±Ú¯Ø±ÙØ§Øª ر٠Ù
ÛâÚ¯ÛØ±Û ٠با Ø¹Ø´ÙØª Ù
ÛâØ±Û Ø³Ø± Ù
ÛØ².
+
+ÙÙØ· Ù
ÛâØ®ÙØ±ÛÙØ´ÙÙØ ٠تÙ
ÙÙ
Ù. â¹
+
+
+
+ØØ±Ù Ø²Ø¯Ù ÛØ§ ÙØ§Ø³ Ø²Ø¯Ù Ø²ÛØ§Ø¯ ÙØ¨Ùد ÚÙÙ Ø¨ÛØ´ØªØ± ÙÙØª ØµØ±Ù Ø§ÙØªØ¸Ø§Ø± ð Ø¬ÙÙÛ Ù¾ÛØ´Ø®Ù٠شد. ð
+
+/// info
+
+تصاÙÛØ± ÙØ´ÙÚ¯ از کترÛÙØ§ تاÙ
پسÙÙ. ð¨
+
+///
+
+---
+
+تÙÛ Ø§ÛÙ Ø³ÙØ§Ø±ÛÙÛ Ø¨Ø±Ú¯Ø±ÙØ§Û Ù
ÙØ§Ø²ÛØ ØªÙ Û٠کاÙ
Ù¾ÛÙØªØ± / Ø¨Ø±ÙØ§Ù
Ù ð¤ Ø¨Ø§ د٠تا Ù¾Ø±Ø¯Ø§Ø²ÙØ¯Ù (ØªÙ Ù Ø¹Ø´ÙØª) ÙØ³ØªÛØ ÙØ± د٠Ù
ÙØªØ¸Ø± ð Ù ØªÙØ¬ÙØ´ÙÙ â¯ Ø±Ù Ø¨Ø±Ø§Û Ù
دت Ø·ÙÙØ§ÙÛ "Ø§ÙØªØ¸Ø§Ø± جÙÙÛ Ù¾ÛØ´Ø®ÙÙ" ð گذاشتÙ.
+
+ÙØ³ØªâÙÙØ¯ 8 تا Ù¾Ø±Ø¯Ø§Ø²ÙØ¯Ù (ØµÙØ¯ÙÙØ¯Ø§Ø±/آشپز) دارÙ. در ØØ§ÙÛ Ú©Ù ÙØ³ØªâÙÙØ¯ Ø¨Ø±Ú¯Ø±ÙØ§Û ÙÙ
âØ²Ù
Ø§Ù Ø´Ø§ÛØ¯ ÙÙØ· 2 تا داشت٠(ÛÙ ØµÙØ¯ÙÙØ¯Ø§Ø± Ù Û٠آشپز).
+
+ÙÙÛ Ø¨Ø§ اÛÙ ØØ§ÙØ ØªØ¬Ø±Ø¨Ù ÙÙØ§ÛÛ Ø¨ÙØªØ±ÛÙ ÙÛØ³Øª. ð
+
+---
+
+اÛÙ Ù
عاد٠Ù
ÙØ§Ø²Û Ø¯Ø§Ø³ØªØ§Ù Ø¨Ø±Ú¯Ø±ÙØ§ Ø¨ÙØ¯. ð
+
+Ø¨Ø±Ø§Û ÛÙ Ù
ثا٠"ÙØ§ÙعÛâØªØ±" از Ø²ÙØ¯Ú¯ÛØ Û٠باÙÚ© Ø±Ù ØªØµÙØ± Ú©Ù.
+
+تا ÙÙ
ÛÙ ÚÙØ¯ ÙÙØª Ù¾ÛØ´Ø Ø¨ÛØ´ØªØ± باÙÚ©âÙØ§ ÚÙØ¯ تا ØµÙØ¯ÙÙØ¯Ø§Ø± ð¨âð¼ð¨âð¼ð¨âð¼ð¨âð¼ Ø¯Ø§Ø´ØªÙ Ù Û٠ص٠بزرگ ðððððððð.
+
+ÙÙ
Ù ØµÙØ¯ÙÙØ¯Ø§Ø±Ùا کار ر٠با ÛÙ Ù
Ø´ØªØ±Û Ø¨Ø¹Ø¯ از اÙÙ ÛÚ©Û ð¨âð¼â¯ Ø§ÙØ¬Ø§Ù
Ù
ÛâØ¯Ø§Ø¯Ù.
+
+Ù Ø¨Ø§ÛØ¯ تÙÛ ØµÙ ð Ù
دت Ø²ÛØ§Ø¯Û Ù
ÙØªØ¸Ø± بÙ
ÙÙÛ ÙگرÙÙ ÙÙØ¨ØªØª ر٠از دست Ù
ÛâØ¯Û.
+
+Ø§ØØªÙ
Ø§ÙØ§Ù ÙÙ
ÛâØ®ÙØ§Û Ø¹Ø´ÙØª ð Ø±Ù Ø¨Ø§ Ø®ÙØ¯Øª Ø¨Ø¨Ø±Û Ø¨Ø§ÙÚ© ð¦ Ø¨Ø±Ø§Û Ú©Ø§Ø±Ø§Û Ø±ÙØ²Ù
رÙ.
+
+### ÙØªÛجÙâÚ¯ÛØ±Û Ø¨Ø±Ú¯Ø±ÙØ§
+
+تÙÛ Ø§ÛÙ Ø³ÙØ§Ø±ÛÙÛ "Ø¨Ø±Ú¯Ø±ÙØ§Û ÙØ³ØªâÙÙØ¯ با Ø¹Ø´ÙØª"Ø ÚÙÙ Ú©ÙÛ Ø§ÙØªØ¸Ø§Ø± ð ÙØ³ØªØ Ø®ÛÙÛ Ù
ÙØ·ÙÛâØªØ±Ù Ú©Ù ÛÙ Ø³ÛØ³ØªÙ
ÙÙ
âØ²Ù
ا٠â¸ð⯠داشت٠باشÛ.
+
+اÛÙ Ø¨Ø±Ø§Û Ø¨ÛØ´ØªØ± Ø¨Ø±ÙØ§Ù
ÙâÙØ§Û ÙØ¨ ÙÙ
صد٠Ù
ÛâÚ©ÙÙ.
+
+Ø®ÛÙÛ Ø®ÛÙÛ Ú©Ø§Ø±Ø¨Ø±Ø ÙÙÛ Ø³Ø±ÙØ±Øª Ù
ÙØªØ¸Ø± ð Ø§ØªØµØ§Ù ÙÙâÚÙØ¯Ø§Ù Ø®ÙØ¨Ø´ÙÙ ÙØ³Øª تا Ø¯Ø±Ø®ÙØ§Ø³ØªâÙØ§Ø´ÙÙ Ø±Ù Ø¨ÙØ±Ø³ØªÙ.
+
+٠بعد Ø¯ÙØ¨Ø§Ø±Ù Ù
ÙØªØ¸Ø± ð Ú©Ù Ø¬ÙØ§Ø¨âÙØ§ برگردÙ.
+
+اÛÙ "Ø§ÙØªØ¸Ø§Ø±" ð ØªÙÛ Ù
ÛÚ©Ø±ÙØ«Ø§ÙÛÙâÙØ§ Ø§ÙØ¯Ø§Ø²ÙâÚ¯ÛØ±Û Ù
ÛâØ´ÙØ ÙÙÛ Ø¨Ø§ اÛÙ ØØ§ÙØ Ø¬Ù
عش ک٠بکÙÛ Ø¢Ø®Ø±Ø´ Ú©ÙÛ Ø§ÙØªØ¸Ø§Ø± Ù
ÛâØ´Ù.
+
+Ø¨Ø±Ø§Û ÙÙ
ÛÙ Ø§Ø³ØªÙØ§Ø¯Ù از کد ÙØ§ÙÙ
âØ²Ù
ا٠â¸ðâ¯ Ø¨Ø±Ø§Û APIÙØ§Û ÙØ¨ Ø®ÛÙÛ Ù
ÙØ·ÙÛÙ.
+
+اÛÙ ÙÙØ¹ ÙØ§ÙÙ
âØ²Ù
اÙÛ ÚÛØ²ÛÙ Ú©Ù NodeJS ر٠Ù
ØØ¨Ùب کرد (گرÚÙ NodeJS Ù
ÙØ§Ø²Û ÙÛØ³Øª) Ù ÙÙØ·Ù ÙÙØª Go بÙâØ¹ÙÙØ§Ù Û٠زبÙÙ Ø¨Ø±ÙØ§Ù
ÙâÙÙÛØ³ÛÙ.
+
+Ù ÙÙ
ÙÙ Ø³Ø·Ø Ø¹Ù
ÙÚ©Ø±Ø¯Û ÙØ³Øª ک٠با **FastAPI** Ù
ÛâÚ¯ÛØ±Û.
+
+Ù ÚÙÙ Ù
ÛâØªÙÙÛ ÙÙ
âØ²Ù
اÙÛ Ù Ù
ÙØ§Ø²ÛâØ³Ø§Ø²Û Ø±Ù ÙÙ
زÙ
Ø§Ù Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ عÙ
Ùکرد Ø¨Ø§ÙØ§ØªØ±Û از Ø¨ÛØ´ØªØ± ÙØ±ÛÙ
âÙØ±Ú©âÙØ§Û ØªØ³ØªâØ´Ø¯Ù NodeJS Ù
ÛâÚ¯ÛØ±Û Ù ÙÙ
âØªØ±Ø§Ø² با GoØ Ú©Ù Û٠زبÙ٠کاÙ
پاÛÙâØ´Ø¯Ù ÙØ²Ø¯ÛÚ© ب٠C ÙØ³Øª (ÙÙ
٠اÛÙØ§ Ø¨Ù ÙØ·Ù Starlette).
+
+### Ø¢ÛØ§ ÙÙ
âØ²Ù
اÙÛ Ø§Ø² Ù
ÙØ§Ø²ÛâØ³Ø§Ø²Û Ø¨ÙØªØ±ÙØ
+
+ÙÙ! اÛÙ ÙØªÛج٠داستا٠ÙÛØ³Øª.
+
+ÙÙ
âØ²Ù
اÙÛ Ø¨Ø§ Ù
ÙØ§Ø²ÛâØ³Ø§Ø²Û ÙØ±Ù دارÙ. ٠تÙÛ **Ø³ÙØ§Ø±ÛÙÙØ§Û خاص** Ú©Ù Ú©ÙÛ Ø§ÙØªØ¸Ø§Ø± Ø¯Ø§Ø±Ù Ø¨ÙØªØ±Ù. ب٠ÙÙ
ÛÙ Ø®Ø§Ø·Ø±Ø Ù
عÙ
ÙÙØ§Ù Ø¨Ø±Ø§Û ØªÙØ³Ø¹Ù Ø¨Ø±ÙØ§Ù
ÙâÙØ§Û ÙØ¨ Ø®ÛÙÛ Ø§Ø² Ù
ÙØ§Ø²ÛâØ³Ø§Ø²Û Ø¨ÙØªØ±Ù. ÙÙÛ ÙÙ Ø¨Ø±Ø§Û ÙÙ
ÙâÚÛØ².
+
+Ø¨Ø±Ø§Û Ø§ÛÙÚ©Ù Û٠تعاد٠بذارÛÙ
Ø Ø§ÛÙ Ø¯Ø§Ø³ØªØ§Ù Ú©ÙØªØ§Ù Ø±Ù ØªØµÙØ± Ú©Ù:
+
+> Ø¨Ø§ÛØ¯ ÛÙ Ø®ÙÙ٠بزرگ Ù Ú©Ø«Û٠ر٠تÙ
ÛØ² Ú©ÙÛ.
+
+*Ø¢Ø±ÙØ ک٠داستا٠ÙÙ
ÛÙÙ*.
+
+---
+
+ÙÛÚ Ø§ÙØªØ¸Ø§Ø±Û ð Ø§ÙÙØ¬Ø§ ÙÛØ³ØªØ ÙÙØ· Ú©ÙÛ Ú©Ø§Ø± Ø¨Ø±Ø§Û Ø§ÙØ¬Ø§Ù
داد٠تÙÛ Ø¬Ø§ÙØ§Û Ù
ختÙÙ Ø®ÙÙÙ.
+
+Ù
ÛâØªÙÙÛ Ù
ث٠Ù
Ø«Ø§Ù Ø¨Ø±Ú¯Ø±ÙØ§ ÙÙØ¨Øª Ø¨Ø°Ø§Ø±ÛØ اÙÙ Ù¾Ø°ÛØ±Ø§ÛÛØ بعد آشپزخÙÙÙØ ÙÙÛ ÚÙÙ Ù
ÙØªØ¸Ø± ÚÛØ²Û ÙÛØ³ØªÛ ðØ ÙÙØ· Ø¯Ø§Ø±Û ØªÙ
ÛØ² Ù
ÛâÚ©ÙÛ Ù ØªÙ
ÛØ² Ù
ÛâÚ©ÙÛØ ÙÙØ¨ØªâÙØ§ ÙÛÚ ØªØ£Ø«ÛØ±Û ÙØ¯Ø§Ø±Ù.
+
+با ÙÙØ¨Øª ÛØ§ بدÙÙ ÙÙØ¨Øª (ÙÙ
âØ²Ù
اÙÛ) ÙÙ
ÙÙ ÙØ¯Ø± Ø·ÙÙ Ù
Ûâکش٠تا تÙ
ÙÙ
Ø´ Ú©ÙÛ Ù ÙÙ
ÙÙ Ù
ÙØ¯Ø§Ø± کار ر٠کردÛ.
+
+ÙÙÛ ØªÙÛ Ø§ÛÙ Ù
ÙÙØ¹ÛØªØ Ø§Ú¯Ù Ø¨ØªÙÙÛ Ø§ÙÙ 8 تا ØµÙØ¯ÙÙØ¯Ø§Ø±/آشپز/ØØ§Ùا-تÙ
ÛØ²Ú©Ø§Ø± Ø±Ù Ø¨ÛØ§Ø±ÛØ Ù ÙØ± کدÙÙ
Ø´ÙÙ (بÙâØ¹ÙØ§ÙÙ Ø®ÙØ¯Øª) ÛÙ ÙØ³Ù
ت از Ø®ÙÙ٠ر٠تÙ
ÛØ² Ú©ÙÙØ Ù
ÛâØªÙÙÛ ÙÙ
٠کار ر٠**Ù
ÙØ§Ø²Û** Ø§ÙØ¬Ø§Ù
Ø¨Ø¯ÛØ با Ú©Ù
Ú© اضاÙÛØ Ù Ø®ÛÙÛ Ø²ÙØ¯ØªØ± تÙ
ÙÙ
Ø´ Ú©ÙÛ.
+
+تÙÛ Ø§ÛÙ Ø³ÙØ§Ø±ÛÙØ ÙØ± کدÙÙ
از تÙ
ÛØ²Ú©Ø§Ø±Ùا (از جÙ
ÙÙ Ø®ÙØ¯Øª) ÛÙ Ù¾Ø±Ø¯Ø§Ø²ÙØ¯ÙâØ³Øª ک٠کار Ø®ÙØ¯Ø´ ر٠Ù
ÛâÚ©ÙÙ.
+
+Ù ÚÙÙ Ø¨ÛØ´ØªØ± زÙ
ا٠اجرا صر٠کار ÙØ§ÙØ¹Û Ù
ÛâØ´Ù (Ø¨Ù Ø¬Ø§Û Ø§ÙØªØ¸Ø§Ø±)Ø Ù Ú©Ø§Ø± تÙÛ Ú©Ø§Ù
Ù¾ÛÙØªØ± با CPU Ø§ÙØ¬Ø§Ù
Ù
ÛâØ´ÙØ ب٠اÛÙ Ù
Ø´Ú©ÙØ§Øª Ù
ÛâÚ¯Ù "CPU bound".
+
+---
+
+Ù
ثاÙâÙØ§Û Ø±Ø§ÛØ¬ عÙ
ÙÛØ§Øª CPU bound ÚÛØ²Ø§ÛÛ ÙØ³ØªÙ Ú©Ù ÙÛØ§Ø² ب٠پردازش Ø±ÛØ§Ø¶Û Ù¾ÛÚÛØ¯Ù دارÙ.
+
+Ù
Ø«ÙØ§Ù:
+
+* پردازش **صدا** ÛØ§ **تصÙÛØ±**.
+* **بÛÙØ§ÛÛ Ú©Ø§Ù
Ù¾ÛÙØªØ±Û**: Û٠تصÙÛØ± از Ù
ÛÙÛÙÙâÙØ§ Ù¾Ûکس٠تشکÛÙ Ø´Ø¯ÙØ ÙØ± Ù¾Ûکس٠3 تا Ù
ÙØ¯Ø§Ø± / رÙÚ¯ Ø¯Ø§Ø±ÙØ پردازشش Ù
عÙ
ÙÙØ§Ù ÙÛØ§Ø² دار٠ÚÛØ²Û ر٠ر٠اÙÙ Ù¾ÛکسÙâÙØ§ ÙÙ
زÙ
Ø§Ù ØØ³Ø§Ø¨ Ú©ÙÛ.
+* **ÛØ§Ø¯Ú¯ÛØ±Û Ù
اشÛÙ**: Ù
عÙ
ÙÙØ§Ù Ú©ÙÛ Ø¶Ø±Ø¨ "Ù
Ø§ØªØ±ÛØ³" Ù "بردار" ÙØ§Ø²Ù
دارÙ. Û٠جدÙ٠بزرگ پر از عدد Ø±Ù ØªØµÙØ± Ú©Ù Ú©Ù ÙÙ
ÙâØ´Ù٠ر٠ÙÙ
زÙ
ا٠ضرب Ù
ÛâÚ©ÙÛ.
+* **ÛØ§Ø¯Ú¯ÛØ±Û Ø¹Ù
ÛÙ**: اÛÙ ÛÙ Ø²ÛØ±Ø´Ø§Ø®Ù از ÛØ§Ø¯Ú¯ÛØ±Û Ù
اشÛÙÙØ پس ÙÙ
ÙÙ ÙØ¶Û٠صد٠Ù
ÛâÚ©ÙÙ. ÙÙØ· اÛÙ Ú©Ù Û٠جدÙ٠عدد Ø¨Ø±Ø§Û Ø¶Ø±Ø¨ کرد٠ÙÛØ³ØªØ بÙÚ©Ù ÛÙ Ù
جÙ
ÙØ¹Ù بزرگ از اÙÙØ§ ÙØ³ØªØ ٠تÙÛ Ø®ÛÙÛ Ù
ÙØ§Ø±Ø¯ از ÛÙ Ù¾Ø±Ø¯Ø§Ø²ÙØ¯Ù خاص Ø¨Ø±Ø§Û Ø³Ø§Ø®Øª Ù / ÛØ§ Ø§Ø³ØªÙØ§Ø¯Ù از اÛÙ Ù
دÙâÙØ§ Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÛ.
+
+### ÙÙ
âØ²Ù
اÙÛ + Ù
ÙØ§Ø²ÛâØ³Ø§Ø²Û: ÙØ¨ + ÛØ§Ø¯Ú¯ÛØ±Û Ù
اشÛÙ
+
+با **FastAPI** Ù
ÛâØªÙÙÛ Ø§Ø² ÙÙ
âØ²Ù
اÙÛ Ú©Ù Ø¨Ø±Ø§Û ØªÙØ³Ø¹Ù ÙØ¨ Ø®ÛÙÛ Ø±Ø§ÛØ¬Ù (ÙÙ
ÙÙ Ø¬Ø°Ø§Ø¨ÛØª اصÙÛ NodeJS) Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ.
+
+ÙÙÛ Ù
ÛâØªÙÙÛ Ø§Ø² ÙÙØ§Ûد Ù
ÙØ§Ø²ÛâØ³Ø§Ø²Û Ù ÚÙØ¯Ù¾Ø±Ø¯Ø§Ø²Ø´Û (Ø§Ø¬Ø±Ø§Û ÚÙØ¯ Ù¾Ø±ÙØ³Ù بÙâØµÙØ±Øª Ù
ÙØ§Ø²Û) Ø¨Ø±Ø§Û Ú©Ø§Ø±Ø§Û **CPU bound** Ù
Ø«Ù Ø³ÛØ³ØªÙ
âÙØ§Û ÛØ§Ø¯Ú¯ÛØ±Û Ù
اشÛÙ ÙÙ
Ø¨ÙØ±Ù ببرÛ.
+
+اÛÙØ بÙâØ¹ÙØ§Ù٠اÛÙ ÙØ§ÙØ¹ÛØª Ø³Ø§Ø¯Ù Ú©Ù Ù¾Ø§ÛØªÙ٠زبÙ٠اصÙÛ Ø¨Ø±Ø§Û **عÙÙ
دادÙ**Ø ÛØ§Ø¯Ú¯ÛØ±Û Ù
اشÛ٠٠بÙâØ®ØµÙØµ ÛØ§Ø¯Ú¯ÛØ±Û Ø¹Ù
ÛÙÙØ باعث Ù
ÛâØ´Ù FastAPI ÛÙ Ø§ÙØªØ®Ø§Ø¨ Ø®ÛÙÛ Ø®ÙØ¨ Ø¨Ø±Ø§Û APIÙØ§ Ù Ø¨Ø±ÙØ§Ù
ÙâÙØ§Û ÙØ¨ عÙÙ
داد٠/ ÛØ§Ø¯Ú¯ÛØ±Û Ù
اشÛ٠باش٠(بÛÙ Ø®ÛÙÛ ÚÛØ²Ø§Û دÛÚ¯Ù).
+
+Ø¨Ø±Ø§Û Ø¯ÛØ¯Ù اÛÙÚ©Ù ÚØ·Ùر تÙÛ Ù
ØÛØ· ÙØ§ÙØ¹Û Ø¨Ù Ø§ÛÙ Ù
ÙØ§Ø²ÛâØ³Ø§Ø²Û Ø¨Ø±Ø³ÛØ بخش [Ø§Ø³ØªÙØ±Ø§Ø±](deployment/index.md){.internal-link target=_blank} ر٠ببÛÙ.
+
+## `async` Ù `await`
+
+ÙØ³Ø®ÙâÙØ§Û Ù
Ø¯Ø±Ù Ù¾Ø§ÛØªÙÙ Û٠را٠خÛÙÛ Ø³Ø§Ø¯Ù Ù ÙØ§Ø¨ÙâÙÙÙ
Ø¨Ø±Ø§Û ØªØ¹Ø±Û٠کد ÙØ§ÙÙ
âØ²Ù
ا٠دارÙ. اÛ٠باعث Ù
ÛâØ´Ù Ù
ث٠کد "ØªØ±ØªÛØ¨Û" Ù
عÙ
ÙÙÛ Ø¨Ù ÙØ¸Ø± Ø¨ÛØ§Ø¯ ٠تÙÛ ÙØØ¸ÙâÙØ§Û درست "Ø§ÙØªØ¸Ø§Ø±" ر٠برات Ø§ÙØ¬Ø§Ù
بدÙ.
+
+ÙÙØªÛ Û٠عÙ
ÙÛØ§ØªÛ ÙØ³Øª Ú©Ù ÙØ¨Ù از Ø¯Ø§Ø¯Ù ÙØªÛجÙâÙØ§ ÙÛØ§Ø² Ø¨Ù Ø§ÙØªØ¸Ø§Ø± دار٠٠از اÛÙ ÙØ§Ø¨ÙÛØªâÙØ§Û Ø¬Ø¯ÛØ¯ Ù¾Ø§ÛØªÙÙ Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù
ÛâÚ©ÙÙØ Ù
ÛâØªÙÙÛ Ø§ÛÙØ¬ÙØ±Û Ú©Ø¯ÙÙÛØ³ÛØ´ Ú©ÙÛ:
+
+```Python
+burgers = await get_burgers(2)
+```
+
+Ùکت٠کÙÛØ¯Û اÛÙØ¬Ø§ `await` ÙØ³Øª. Ø¨Ù Ù¾Ø§ÛØªÙÙ Ù
ÛâÚ¯Ù Ú©Ù Ø¨Ø§ÛØ¯ ⸠Ù
ÙØªØ¸Ø± بÙ
ÙÙ٠تا `get_burgers(2)` کارش ð ØªÙ
ÙÙ
Ø¨Ø´Ù ÙØ¨Ù از اÛÙÚ©Ù ÙØªÛجÙâÙØ§ ر٠تÙÛ `burgers` Ø°Ø®ÛØ±Ù Ú©ÙÙ. با اÛÙØ Ù¾Ø§ÛØªÙÙ Ù
ÛâØ¯ÙÙÙ Ú©Ù Ù
ÛâØªÙÙ٠بر٠Û٠کار دÛÚ¯Ù ð ⯠تÙÛ Ø§ÛÙ Ù
دت بکÙÙ (Ù
Ø«Ù Ú¯Ø±ÙØªÙ ÛÙ Ø¯Ø±Ø®ÙØ§Ø³Øª دÛÚ¯Ù).
+
+Ø¨Ø±Ø§Û Ø§ÛÙÚ©Ù `await` کار Ú©ÙÙØ Ø¨Ø§ÛØ¯ تÙÛ Û٠تابع باش٠ک٠از اÛÙ ÙØ§ÙÙ
âØ²Ù
اÙÛ Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ú©ÙÙ. Ø¨Ø±Ø§Û Ø§ÛÙ Ú©Ø§Ø±Ø ÙÙØ· با `async def` تعرÛÙØ´ Ù
ÛâÚ©ÙÛ:
+
+```Python hl_lines="1"
+async def get_burgers(number: int):
+ # ÛÙ Ø³Ø±Û Ú©Ø§Ø± ÙØ§ÙÙ
âØ²Ù
Ø§Ù Ø¨Ø±Ø§Û Ø³Ø§Ø®ØªÙ Ø¨Ø±Ú¯Ø±ÙØ§ Ø§ÙØ¬Ø§Ù
بدÙ
+ return burgers
+```
+
+...Ø¨Ù Ø¬Ø§Û `def`:
+
+```Python hl_lines="2"
+# اÛÙ ÙØ§ÙÙ
âØ²Ù
ا٠ÙÛØ³Øª
+def get_sequential_burgers(number: int):
+ # ÛÙ Ø³Ø±Û Ú©Ø§Ø± ØªØ±ØªÛØ¨Û Ø¨Ø±Ø§Û Ø³Ø§Ø®ØªÙ Ø¨Ø±Ú¯Ø±ÙØ§ Ø§ÙØ¬Ø§Ù
بدÙ
+ return burgers
+```
+
+با `async def`Ø Ù¾Ø§ÛØªÙÙ Ù
ÛâØ¯ÙÙ٠ک٠تÙÛ Ø§Ù٠تابع Ø¨Ø§ÛØ¯ ØÙاسش ب٠عبارتâÙØ§Û `await` Ø¨Ø§Ø´ÙØ Ù Ù
ÛâØªÙÙÙ Ø§Ø¬Ø±Ø§Û Ø§Ù٠تابع ر٠"Ù
ÙÙØªØ§Ù Ù
تÙÙÙ" ⸠کÙ٠٠بر٠Û٠کار دÛÚ¯Ù ð ÙØ¨Ù از برگشت٠بکÙÙ.
+
+ÙÙØªÛ Ù
ÛâØ®ÙØ§Û Û٠تابع `async def` ر٠صدا Ú©ÙÛØ Ø¨Ø§ÛØ¯ "Ù
ÙØªØ¸Ø±Ø´" بÙ
ÙÙÛ. پس اÛ٠کار ÙÙ
ÛâÚ©ÙÙ:
+
+```Python
+# اÛ٠کار ÙÙ
ÛâÚ©ÙÙØ ÚÙÙ get_burgers با async def تعرÛ٠شدÙ
+burgers = get_burgers(2)
+```
+
+---
+
+Ù¾Ø³Ø Ø§Ú¯Ù Ø§Ø² Û٠کتابخÙÙÙ Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÛ Ú©Ù Ø¨ÙØª Ù
ÛâÚ¯Ù Ù
ÛâØªÙÙÛ Ø¨Ø§ `await` صداش Ú©ÙÛØ Ø¨Ø§ÛØ¯ *ØªÙØ§Ø¨Ø¹ عÙ
ÙÛØ§Øª Ù
Ø³ÛØ±Øª* ک٠ازش Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©Ù٠ر٠با `async def` Ø¨Ø³Ø§Ø²ÛØ Ù
Ø«Ù:
+
+```Python hl_lines="2-3"
+@app.get('/burgers')
+async def read_burgers():
+ burgers = await get_burgers(2)
+ return burgers
+```
+
+### Ø¬Ø²Ø¦ÛØ§Øª ÙÙÛâØªØ±
+
+Ø´Ø§ÛØ¯ Ù
ØªÙØ¬Ù Ø´Ø¯Ù Ø¨Ø§Ø´Û Ú©Ù `await` ÙÙØ· تÙÛ ØªÙØ§Ø¨Ø¹Û ک٠با `async def` تعرÛ٠شد٠Ù
ÛâØªÙÙÙ Ø§Ø³ØªÙØ§Ø¯Ù بشÙ.
+
+ÙÙÛ Ø¯Ø± عÛÙ ØØ§ÙØ ØªÙØ§Ø¨Ø¹Û ک٠با `async def` تعرÛÙ Ø´Ø¯Ù Ø¨Ø§ÛØ¯ "Ù
ÙØªØ¸Ø±"Ø´Ù٠بÙ
ÙÙÛ. پس ØªÙØ§Ø¨Ø¹ با `async def` ÙÙØ· تÙÛ ØªÙØ§Ø¨Ø¹Û ک٠با `async def` تعرÛ٠شد٠Ù
ÛâØªÙÙ٠صدا زد٠بشÙ.
+
+ØØ§ÙØ§Ø ÙØ¶ÛÙ Ù
رغ ٠تخÙ
âÙ
رغ ÚÛÙØ ÚØ·Ùر اÙÙÛ٠تابع `async` ر٠صدا Ù
ÛâÚ©ÙÛØ
+
+اگ٠با **FastAPI** کار Ù
ÛâÚ©ÙÛØ ÙØ§Ø²Ù
ÙÛØ³Øª Ùگرا٠اÛÙ Ø¨Ø§Ø´ÛØ ÚÙ٠اÙÙ "اÙÙÛÙ" ØªØ§Ø¨Ø¹Ø *تابع عÙ
ÙÛØ§Øª Ù
Ø³ÛØ±Øª* ÙØ³ØªØ Ù FastAPI Ù
ÛâØ¯ÙÙÙ ÚØ·Ùر کار درست ر٠بکÙÙ.
+
+ÙÙÛ Ø§Ú¯Ù Ø¨Ø®ÙØ§Û بدÙÙ FastAPI از `async` / `await` Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ اÛÙÙ
Ù
Ù
Ú©ÙÙ.
+
+### کد ÙØ§ÙÙ
âØ²Ù
Ø§Ù Ø®ÙØ¯Øª ر٠بÙÙÛØ³
+
+Starlette (Ù **FastAPI**) بر پاÛÙ AnyIO ÙØ³ØªÙØ Ú©Ù Ø¨Ø§Ø¹Ø« Ù
ÛâØ´Ù Ø¨Ø§ کتابخÙÙÙ Ø§Ø³ØªØ§ÙØ¯Ø§Ø±Ø¯ Ù¾Ø§ÛØªÙÙ asyncio Ù Trio سازگار باشÙ.
+
+بÙâØ®ØµÙØµØ Ù
ÛâØªÙÙÛ Ù
ستÙÛÙ
ا٠از AnyIO Ø¨Ø±Ø§Û Ù
ÙØ§Ø±Ø¯ Ø§Ø³ØªÙØ§Ø¯Ù Ù¾ÛØ´Ø±Ùت٠ÙÙ
âØ²Ù
اÙÛ Ú©Ù ÙÛØ§Ø² ب٠اÙÚ¯ÙÙØ§Û Ù¾ÛÚÛØ¯ÙâØªØ± تÙÛ Ú©Ø¯ Ø®ÙØ¯Øª Ø¯Ø§Ø±Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ.
+
+Ù ØØªÛ اگ٠از FastAPI Ø§Ø³ØªÙØ§Ø¯Ù ÙÚ©ÙÛØ Ù
ÛâØªÙÙÛ Ø¨Ø±ÙØ§Ù
ÙâÙØ§Û ÙØ§ÙÙ
âØ²Ù
Ø§Ù Ø®ÙØ¯Øª ر٠با AnyIO بÙÙÛØ³Û تا Ø®ÛÙÛ Ø³Ø§Ø²Ú¯Ø§Ø± باش٠٠ÙÙØ§Ûدش Ø±Ù Ø¨Ú¯ÛØ±Û (Ù
ث٠*ÙÙ
âØ²Ù
اÙÛ Ø³Ø§Ø®ØªØ§Ø±ÛØ§ÙتÙ*).
+
+Ù
Ù Û٠کتابخÙÙ٠دÛگ٠رÙÛ AnyIO ساختÙ
Ø ÛÙ ÙØ§ÛÙ ÙØ§Ø²Ú© Ø±ÙØ´Ø تا ÛÙ Ú©Ù
annotationÙØ§Û ÙÙØ¹ Ø±Ù Ø¨ÙØªØ± Ú©ÙÙ
Ù **تکÙ
ÛÙ Ø®ÙØ¯Ú©Ø§Ø±** Ø¨ÙØªØ±Ø **Ø®Ø·Ø§ÙØ§Û درÙÙâØ®Ø·Û** Ù ØºÛØ±Ù Ø¨Ú¯ÛØ±Ù
. ÛÙ Ù
ÙØ¯Ù
٠٠آÙ
ÙØ²Ø´ ساد٠ÙÙ
Ø¯Ø§Ø±Ù Ú©Ù Ø¨ÙØª Ú©Ù
Ú© Ù
ÛâÚ©ÙÙ **بÙÙÙ
Û** Ù **کد ÙØ§ÙÙ
âØ²Ù
Ø§Ù Ø®ÙØ¯Øª ر٠بÙÙÛØ³Û**: Asyncer. Ø§Ú¯Ù Ø¨Ø®ÙØ§Û **کد ÙØ§ÙÙ
âØ²Ù
ا٠ر٠با کد Ù
عÙ
ÙÙÛ** (Ø¨ÙØ§Ú©âÚ©ÙÙØ¯Ù/ÙÙ
âØ²Ù
اÙ) ØªØ±Ú©ÛØ¨ Ú©ÙÛ Ø®ÛÙÛ Ø¨ÙâØ¯Ø±Ø¯Øª Ù
ÛâØ®ÙØ±Ù.
+
+### Ø´Ú©ÙâÙØ§Û دÛگ٠کد ÙØ§ÙÙ
âØ²Ù
اÙ
+
+اÛ٠سبک Ø§Ø³ØªÙØ§Ø¯Ù از `async` Ù `await` تÙÛ Ø²Ø¨ÙÙ ÙØ³Ø¨ØªØ§Ù Ø¬Ø¯ÛØ¯Ù.
+
+ÙÙÛ Ú©Ø§Ø± با کد ÙØ§ÙÙ
âØ²Ù
ا٠ر٠خÛÙÛ Ø³Ø§Ø¯ÙâØªØ± Ù
ÛâÚ©ÙÙ.
+
+ÙÙ
Û٠سÛÙØªÚ©Ø³ (ÛØ§ ØªÙØ±Ûبا٠ÛکساÙ) Ø§Ø®ÛØ±Ø§Ù تÙÛ ÙØ³Ø®ÙâÙØ§Û Ù
Ø¯Ø±Ù Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت (تÙÛ Ù
Ø±ÙØ±Ú¯Ø± Ù NodeJS) ÙÙ
اضاÙ٠شدÙ.
+
+ÙÙÛ ÙØ¨Ù از اÙÙØ Ù
Ø¯ÛØ±Ûت کد ÙØ§ÙÙ
âØ²Ù
ا٠خÛÙÛ Ù¾ÛÚÛØ¯ÙâØªØ± Ù Ø³Ø®ØªâØªØ± Ø¨ÙØ¯.
+
+تÙÛ ÙØ³Ø®ÙâÙØ§Û ÙØ¨ÙÛ Ù¾Ø§ÛØªÙÙØ Ù
ÛâØªÙÙØ³ØªÛ از ÙØ®âÙØ§ ÛØ§ Gevent Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ. ÙÙÛ Ú©Ø¯ Ø®ÛÙÛ Ù¾ÛÚÛØ¯ÙâØªØ± Ù
ÛâØ´Ù Ø¨Ø±Ø§Û ÙÙÙ
ÛØ¯ÙØ Ø¯ÛØ¨Ø§Ú¯ کرد٠٠Ùکر Ú©Ø±Ø¯Ù Ø¨ÙØ´.
+
+تÙÛ ÙØ³Ø®ÙâÙØ§Û ÙØ¨ÙÛ NodeJS / Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت Ù
Ø±ÙØ±Ú¯Ø±Ø از "کاÙâØ¨Ú©âÙØ§" Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâکردÛ. Ú©Ù Ù
ÛâØ±Ø³ÛØ¯ Ø¨Ù Ø¬ÙØ§Ù کاÙâØ¨Ú©âÙØ§.
+
+## Ú©Ø±ÙØªÛÙâÙØ§
+
+**Ú©Ø±ÙØªÛÙ** ÙÙØ· ÛÙ Ø§ØµØ·ÙØ§Ø Ø®ÛÙÛ Ø´ÛÚ© Ø¨Ø±Ø§Û ÚÛØ²ÛÙ Ú©Ù Û٠تابع `async def` برÙ
ÛâگردÙÙÙ. Ù¾Ø§ÛØªÙÙ Ù
ÛâØ¯ÙÙ٠ک٠اÛÙ ÛÙ ÚÛØ²Û Ù
ث٠تابع ÙØ³ØªØ Ù
ÛâØªÙÙÙ Ø´Ø±ÙØ¹ بش٠٠Û٠جاÛÛ ØªÙ
ÙÙ
Ø¨Ø´ÙØ ÙÙÛ Ù
Ù
Ú©ÙÙ Ø¯Ø§Ø®ÙØ´ ÙÙ
Ù
ÙÙÙ â¸ Ø¨Ø´ÙØ ÙØ± ÙÙØª ÛÙ `await` ØªÙØ´ باشÙ.
+
+ÙÙÛ ÙÙ
٠اÛÙ ÙØ§Ø¨ÙÛØª Ø§Ø³ØªÙØ§Ø¯Ù از کد ÙØ§ÙÙ
âØ²Ù
ا٠با `async` Ù `await` Ø®ÛÙÛ ÙÙØªØ§ Ø®ÙØ§ØµÙ Ù
ÛâØ´Ù Ø¨Ù Ø§Ø³ØªÙØ§Ø¯Ù از "Ú©Ø±ÙØªÛÙâÙØ§". اÛÙ ÙØ§Ø¨Ù Ù
ÙØ§Ûس٠با ÙÛÚÚ¯Û Ø§ØµÙÛ GoØ ÛØ¹ÙÛ "GoroutineÙØ§" ÙØ³Øª.
+
+## ÙØªÛجÙâÚ¯ÛØ±Û
+
+Ø¨ÛØ§Ûد ÙÙ
Ù٠جÙ
Ù٠از Ø¨Ø§ÙØ§ ر٠ببÛÙÛÙ
:
+
+> ÙØ³Ø®ÙâÙØ§Û Ù
Ø¯Ø±Ù Ù¾Ø§ÛØªÙ٠از **"کد ÙØ§ÙÙ
âØ²Ù
اÙ"** با ÚÛØ²Û Ú©Ù Ø¨ÙØ´ **"Ú©Ø±ÙØªÛÙ"** Ù
ÛâÚ¯Ù Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù
ÛâÚ©ÙÙØ با سÛÙØªÚ©Ø³ **`async` Ù `await`**.
+
+ØØ§Ùا Ø¨Ø§ÛØ¯ Ø¨ÛØ´ØªØ± برات Ù
عÙÛ Ø¨Ø¯Ù. â¨
+
+ÙÙ
٠اÛÙØ§ ÚÛØ²Û٠ک٠ب٠FastAPI (از طرÛÙ Starlette) ÙØ¯Ø±Øª Ù
ÛâØ¯Ù Ù Ø¨Ø§Ø¹Ø« Ù
ÛâØ´Ù Ø¹Ù
Ùکرد ÚØ´Ù
Ú¯ÛØ±Û داشت٠باشÙ.
+
+## Ø¬Ø²Ø¦ÛØ§Øª Ø®ÛÙÛ ÙÙÛ
+
+/// warning
+
+Ø§ØØªÙ
Ø§ÙØ§Ù Ù
ÛâØªÙÙÛ Ø§ÛÙ٠رد Ú©ÙÛ.
+
+اÛÙØ§ Ø¬Ø²Ø¦ÛØ§Øª Ø®ÛÙÛ ÙÙÛ Ø§Ø² ÙØÙ٠کار **FastAPI** Ø²ÛØ± Ù¾ÙØ³ØªÙâØ³Øª.
+
+اگ٠ÛÙ Ú©Ù
Ø¯Ø§ÙØ´ ÙÙÛ (Ú©Ø±ÙØªÛÙâÙØ§Ø ÙØ®âÙØ§Ø Ø¨ÙØ§Ú© Ú©Ø±Ø¯Ù Ù ØºÛØ±Ù) Ø¯Ø§Ø±Û Ù Ú©ÙØ¬Ú©Ø§ÙÛ Ú©Ù FastAPI ÚØ·Ùر `async def` ر٠در Ù
ÙØ§Ø¨Ù `def` Ù
عÙ
ÙÙÛ Ù
Ø¯ÛØ±Ûت Ù
ÛâÚ©ÙÙØ اداÙ
٠بدÙ.
+
+///
+
+### ØªÙØ§Ø¨Ø¹ عÙ
ÙÛØ§Øª Ù
Ø³ÛØ±
+
+ÙÙØªÛ ÛÙ *تابع عÙ
ÙÛØ§Øª Ù
Ø³ÛØ±* ر٠با `def` Ù
عÙ
ÙÙÛ Ø¨Ù Ø¬Ø§Û `async def` تعرÛÙ Ù
ÛâÚ©ÙÛØ تÙÛ Û٠استخر ÙØ® Ø®Ø§Ø±Ø¬Û Ø§Ø¬Ø±Ø§ Ù
ÛâØ´Ù Ú©Ù Ø¨Ø¹Ø¯Ø´ Ù
ÙØªØ¸Ø±Ø´ Ù
ÛâÙ
ÙÙÙØ Ø¨Ù Ø¬Ø§Û Ø§ÛÙÚ©Ù Ù
ستÙÛÙ
صداش Ú©ÙÙ (ÚÙÙ Ø³Ø±ÙØ± Ø±Ù Ø¨ÙØ§Ú© Ù
ÛâÚ©ÙÙ).
+
+اگ٠از ÛÙ ÙØ±ÛÙ
âÙØ±Ú© ÙØ§ÙÙ
âØ²Ù
ا٠دÛÚ¯Ù Ù
ÛØ§Û Ú©Ù Ø¨Ù Ø±ÙØ´ Ø¨Ø§ÙØ§ کار ÙÙ
ÛâÚ©Ù٠٠عادت Ø¯Ø§Ø±Û *ØªÙØ§Ø¨Ø¹ عÙ
ÙÛØ§Øª Ù
Ø³ÛØ±* ساد٠ÙÙØ· Ù
ØØ§Ø³Ø¨Ø§ØªÛ ر٠با `def` Ù
عÙ
ÙÙÛ Ø¨Ø±Ø§Û ÛÙ Ø³ÙØ¯ Ú©ÙÚÛÚ© عÙ
Ùکرد (ØØ¯Ùد 100 ÙØ§ÙÙØ«Ø§ÙÛÙ) تعرÛÙ Ú©ÙÛØ ØªÙØ¬Ù ک٠ک٠تÙÛ **FastAPI** اثرش کاÙ
ÙØ§Ù برعکسÙ. تÙÛ Ø§ÛÙ Ù
ÙØ§Ø±Ø¯Ø Ø¨ÙØªØ±Ù از `async def` Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ Ù
گ٠اÛÙÚ©Ù *ØªÙØ§Ø¨Ø¹ عÙ
ÙÛØ§Øª Ù
Ø³ÛØ±Øª* Ú©Ø¯Û Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´Ù Ú©Ù Ø¹Ù
ÙÛØ§Øª I/O Ø¨ÙØ§Ú©âÚ©ÙÙØ¯Ù Ø§ÙØ¬Ø§Ù
بدÙ.
+
+با اÛÙ ØØ§ÙØ ØªÙÛ ÙØ± د٠Ù
ÙÙØ¹ÛØªØ Ø§ØØªÙ
Ø§ÙØ´ Ø²ÛØ§Ø¯Ù Ú©Ù **FastAPI** ÙÙÙØ² [Ø³Ø±ÛØ¹âتر](index.md#performance){.internal-link target=_blank} از ÙØ±ÛÙ
âÙØ±Ú© ÙØ¨ÙÛâØ§Øª باش٠(ÛØ§ ØØ¯Ø§ÙÙ ÙØ§Ø¨Ù Ù
ÙØ§ÛØ³Ù Ø¨Ø§ÙØ§Ø´).
+
+### ÙØ§Ø¨Ø³ØªÚ¯ÛâÙØ§
+
+ÙÙ
ÛÙ Ø¨Ø±Ø§Û [ÙØ§Ø¨Ø³ØªÚ¯ÛâÙØ§](tutorial/dependencies/index.md){.internal-link target=_blank} ÙÙ
صد٠Ù
ÛâÚ©ÙÙ. اگ٠ÛÙ ÙØ§Ø¨Ø³ØªÚ¯Û Û٠تابع `def` Ù
عÙ
ÙÙÛ Ø¨Ù Ø¬Ø§Û `async def` Ø¨Ø§Ø´ÙØ تÙÛ Ø§Ø³ØªØ®Ø± ÙØ® Ø®Ø§Ø±Ø¬Û Ø§Ø¬Ø±Ø§ Ù
ÛâØ´Ù.
+
+### Ø²ÛØ±ÙابستگÛâÙØ§
+
+Ù
ÛâØªÙÙÛ ÚÙØ¯ تا ÙØ§Ø¨Ø³ØªÚ¯Û Ù [Ø²ÛØ±ÙابستگÛ](tutorial/dependencies/sub-dependencies.md){.internal-link target=_blank} Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´Û Ú©Ù ÙÙ
دÛگ٠ر٠ÙÛØ§Ø² دار٠(بÙâØ¹ÙÙØ§Ù پاراÙ
ØªØ±ÙØ§Û تعرÛ٠تابع)Ø Ø¨Ø¹Ø¶ÛâÙØ§Ø´ÙÙ Ù
Ù
Ú©Ù٠با `async def` ساخت٠بش٠٠بعضÛâÙØ§ با `def` Ù
عÙ
ÙÙÛ. بازÙ
کار Ù
ÛâÚ©ÙÙØ ٠اÙÙØ§ÛÛ Ú©Ù Ø¨Ø§ `def` Ù
عÙ
ÙÙÛ Ø³Ø§Ø®ØªÙ Ø´Ø¯Ù ØªÙÛ ÛÙ ÙØ® Ø®Ø§Ø±Ø¬Û (از استخر ÙØ®) صدا زد٠Ù
ÛâØ´Ù Ø¨Ù Ø¬Ø§Û Ø§ÛÙÚ©Ù "Ù
ÙØªØ¸Ø±Ø´ÙÙ" بÙ
ÙÙÙ.
+
+### ØªÙØ§Ø¨Ø¹ Ú©Ø§Ø±Ø¨Ø±Ø¯Û Ø¯ÛÚ¯Ù
+
+ÙØ± تابع Ú©Ø§Ø±Ø¨Ø±Ø¯Û Ø¯ÛÚ¯ÙâØ§Û Ú©Ù Ù
ستÙÛÙ
Ø®ÙØ¯Øª صداش Ù
ÛâÚ©ÙÛ Ù
ÛâØªÙÙ٠با `def` Ù
عÙ
ÙÙÛ ÛØ§ `async def` ساخت٠بش٠٠FastAPI Ø±Ù ÙØÙÙ ØµØ¯Ø§Ø²Ø¯ÙØ´ ØªØ£Ø«ÛØ± ÙÙ
ÛâØ°Ø§Ø±Ù.
+
+اÛÙ Ø¨Ø±Ø®ÙØ§Ù ØªÙØ§Ø¨Ø¹Û ÙØ³Øª Ú©Ù FastAPI برات صداشÙÙ Ù
ÛâÚ©ÙÙ: *ØªÙØ§Ø¨Ø¹ عÙ
ÙÛØ§Øª Ù
Ø³ÛØ±* Ù ÙØ§Ø¨Ø³ØªÚ¯ÛâÙØ§.
+
+اگ٠تابع Ú©Ø§Ø±Ø¨Ø±Ø¯ÛØª Û٠تابع Ù
عÙ
ÙÙÛ Ø¨Ø§ `def` Ø¨Ø§Ø´ÙØ Ù
ستÙÛÙ
صداش Ù
ÛâÚ©ÙÙ (ÙÙ
ÙÙâØ·ÙØ± ک٠تÙÛ Ú©Ø¯Øª ÙÙØ´ØªÛ)Ø Ù٠تÙÛ Ø§Ø³ØªØ®Ø± ÙØ®Ø اگ٠تابع با `async def` Ø³Ø§Ø®ØªÙ Ø´Ø¯Ù Ø¨Ø§Ø´ÙØ Ø¨Ø§ÛØ¯ ÙÙØªÛ تÙÛ Ú©Ø¯Øª صداش Ù
ÛâÚ©ÙÛ `await`Ø´ Ú©ÙÛ.
+
+---
+
+Ø¯ÙØ¨Ø§Ø±ÙØ Ø§ÛÙØ§ Ø¬Ø²Ø¦ÛØ§Øª Ø®ÛÙÛ ÙÙÛ ÙØ³ØªÙ Ú©Ù Ø§ØØªÙ
Ø§ÙØ§Ù Ø§Ú¯Ù Ø¯ÙØ¨Ø§ÙØ´Ù٠اÙÙ
Ø¯Ù Ø¨Ø§Ø´Û Ø¨Ø±Ø§Øª Ù
ÙÛØ¯ باشÙ.
+
+ÙگرÙÙØ با راÙÙÙ
اÛÛâÙØ§Û بخش Ø¨Ø§ÙØ§ Ø¨Ø§ÛØ¯ Ø®ÙØ¨ باشÛ: عجÙÙ Ø¯Ø§Ø±ÛØ.