<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های FazeliDev</title>
        <link>https://virgool.io/feed/@fazelidev</link>
        <description>من یه مهندس نرم افزارم که تلاش دارم چیزهای  که میدونم رو با بقیه به اشتراک بذارم</description>
        <language>fa</language>
        <pubDate>2026-06-16 09:34:15</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/850745/avatar/fSBmbv.png?height=120&amp;width=120</url>
            <title>FazeliDev</title>
            <link>https://virgool.io/@fazelidev</link>
        </image>

                    <item>
                <title>Redis Pub/Sub | راهی برای ارتباط!</title>
                <link>https://virgool.io/@fazelidev/redis-pub-sub-bhwnj8fc8aig</link>
                <description>اگه این متن رو داری میخونی، حتما می‌دونی ردیس (redis) چیه و باهاش آشنایی..اینجا راجع به ردیس نمی‌خوام بنویسم؛ می‌خوام از یه الگوی ارتباطی که ردیس ازش پشتیابی میکنه بنویسم.اسم این الگو پاب سابه!مثالی که خیلیا درمورد نحوه ی کارکرد این الگوی ارتباطی میزنن، شبیه سازوکاری هست که توی تلگرام میبینیم؛ یه کانال، که فقط اون هایی که داخلش عضون میتونن پیام هاشو ببینن..خب، تقریبا همینه توی پاب/ساب ردیس، با این تفاوت که وقتی شروع میکنی به گوش دادن یا به عبارتی،‌ سابسکرایب میکنی، پیام ها رو دریافت میکنی و وقتی ارتباطت قطع بشه یا آنسابسکرایب کنی،‌ دیگه پیامی دریافت نمیکنی..چجوری کار میکنه؟بیا توی تصویر ببنیم چه شکلیه!نمای کلی پاب/سابپابلیشر(Publisher): یه کلاینت یه پیام روی یه کانال میفرسته.سابسکرایبر(Subscriber): یه کلاینت به یک یا چند کانال سابسکرایب میکنهردیس(Redis): ردیس این وسط پیام ها رو از پابلیشر ها میگیره و به همه ی سابسکرایبر های یک کانال ارسالش میکنه.در حالت کلی، Pub/Sub یه الگوی ارتباطه که خیلی سبکه و asynchronous عه! معمولا هم برای برنامه های real time استفاده و پیاده سازی میشه.فوایدمقیاس پذیری: این یه الگوی مقیاس پذیره و چندین پابلیشر و سابسکرایبر میتونن از طریق ردیس با هم در ارتباط باشنسرعت: پیام ها تو این روش خیلی سریع جابجا میشن(ردیس سریعه 😎)سادگی: به راحتی قابل پیاده سازیه!آسینک(Asynchronous): پیام ها بصورت آسینک دریافت و ارسال میشن و کلایت ها رو بلاک نمیکنن!مثال هایی از موارد استفادهنوتیفیکیشن درلحظهاپلیکشین های چتمعماری Event-Driven: پابلیشر ها میتونن یه ایونت به سابسکرایبر ها بفرستن که این میتونه موجب انجام یه اکشن یا عمل بشهمحدودیت های پاب/سابذخیره نشدن: پیام ها توی پاب ساب، ذخیره نمیشن و ردیس صرفا نقش واسط جابجایی رو این بین داره و جایی اونا رو نگه نمیداره!ترتیب نداشتن: تو پاب ساب، تضمینی وجود نداره که پیام ها به همون ترتیبی که فرستاده شدن، دریافت بشن!تصدیق!(acknowledgment): تو پاب ساب، تصدیق پیام نداریم به این معنی که تضمینی وجود نداره که پیام شما بعد از ارسال دریافت بشه!تو این متن کوتاه سعی شد با الگوی پاب ساب یه  آشنایی کلی داشته باشیم.توی نوشته ی بعدی باهم خواهیم دید چطوری میتونیم با استفاده از این الگو، به کاربر نهایی، تو یه معماری میکروسرویس، امکان ارتباط وبسوکت بدیم.ممنون از وقتی که برای خوندن گذاشتید..</description>
                <category>FazeliDev</category>
                <author>FazeliDev</author>
                <pubDate>Thu, 08 Feb 2024 18:34:15 +0330</pubDate>
            </item>
                    <item>
                <title>دیپلوی ربات تلگرام روی Deta با Fast API</title>
                <link>https://virgool.io/@fazelidev/%D8%AF%DB%8C%D9%BE%D9%84%D9%88%DB%8C-%D8%B1%D8%A8%D8%A7%D8%AA-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%B1%D9%88%DB%8C-deta-%D8%A8%D8%A7-fast-api-y4v65gt3ybav</link>
                <description>سلامخب امروز میخایم یه ربات تلگرام خیلی ساده بنویسیم که روی دتا دیپلوی شده باشه و کار کنه..ربات رو با python-telegram-bot مینویسیم..چطوری کار میکنه؟؟با Fast API یه api ساده مینویسیم که ازش به عنوان وبهوکِ رباتمون استفاده کنیم.. بعدش هم لینک apiمون رو به عنوان وبهوکِ ربات ست میکنیم.. به همین راحتی :)))بعد از اون هر پیامی ک به ربات بره، تلگرام برای apiمون میفرسته!!!خب بریم سراغ پیاده سازی:از جایی که در قسمت قبل بودیم، ادامه میدیم..** البته اولش اینو یه نگاهی بندازید!فایل main.py رو ادیت میکنیم(از اول مینویسیمش!):from fastapi import FastAPI, Request
from telegram import Update, Bot,InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Dispatcher, CommandHandler, CallbackContext, MessageHandler, Filters,CallbackQueryHandler

BotToken = &amp;quot&lt;YOUR-TOKEN-HERE&gt;&amp;quot

def start(update: Update, _: CallbackContext):
    update.message.reply_text(&amp;quothiiii , how you doin!?&amp;quot)


def get_dispatcher():
    bot = Bot(BotToken)
    dispatcher = Dispatcher(bot=bot, update_queue=None, use_context=True)
    dispatcher.add_handler(CommandHandler(&#039;start&#039;, start))
    return dispatcher

dispatcher = get_dispatcher()

app = FastAPI()

@app.post(&amp;quot/webhook&amp;quot)
async def webhook_handler(req: Request):
    data = await req.json()
    update = Update.de_json(data, dispatcher.bot)
    dispatcher.process_update(update)
مطمعن بشید که فایل requirements.txt این شکلیه:fastapi
python-telegram-botکدتون رو دیپلوی کنید..deta deployحتما میدونید چطوری وبهوک ست کنید برای رباتتون، پس لینکِ microی api ی خودتون روی دتا رو به این صورت به عنوان وبهوک ست کنید(توکن و لینک خودتون رو بزارید):curl --header &#039;Content-Type: application/json&#039; --data &#039;{&amp;quoturl&amp;quot: &amp;quothttps://hm6qpo.deta.dev/webhook&amp;quot}&#039; &#039;https://api.telegram.org/bot&lt;YOUR_BOT_TOKEN&gt;/setWebhook&#039;حالا اگه رباتتون استارت کنید باید کار کنه :)تلگرام: @fastapi_ir</description>
                <category>FazeliDev</category>
                <author>FazeliDev</author>
                <pubDate>Sat, 01 May 2021 11:11:48 +0430</pubDate>
            </item>
                    <item>
                <title>ایجاد اولین API روی Deta</title>
                <link>https://virgool.io/@fazelidev/%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%A7%D9%88%D9%84%DB%8C%D9%86-api-%D8%B1%D9%88%DB%8C-deta-lwiyetr9meqv</link>
                <description>سلام..تو این قسمت، یه  API ساده مینویسیم و روی Deta دیپلوی میکنیم..هدف، آشنایی با Deta ست ;)** داکیومنت مربوط به این قسمت یه دایرکتوری بساز به اسم first_api:mkdir first_api &amp;&amp; cd first_apiدو فایل به اسم main.py و  ‍requirements.txt میسازیم:touch  main.py ‍requirements.txtحالا بریم سراغ کد.. فایل main.py رو ادیت میکنیم:from fastapi import FastAPI
app = FastAPI()
@app.get(&#039;/&#039;)
def read_root():
    return {&#039;hello&#039;:&#039;World&#039;}
فایل requirements.txt رو باز کنید و مقدار زیر رو داخلش ذخیره کنید:fastapiخب بریم سراغ دیپلوی کردن!دیپلویاول از همه یه اکانت رایگان توی Deta بساز.با کمک داکیومنت، CLI رو نصب کن..بعد با کامند deta login، لاگین شو!بعد تو مسیری که  main.py و  ‍requirements.txt هست، کامند زیر رو بزن:deta new یه همچین چیزی رو باید ببینی:Successfully created a new micro
{
     &#039;name&#039;: &#039;virgool&#039;,
    &#039;runtime&#039;: &#039;python3.7&#039;,
    &#039;endpoint&#039;: &#039;https://erxzqx.deta.dev&#039;,
    &#039;visor&#039;: &#039;enabled&#039;,
    &#039;http_auth&#039;: &#039;disabled&#039;
}
 Updating dependencies...به همین راحتی  api  رو دیپلوی کردیم !!!!  اگه لینکی ک براتون نشون میده باز کنید میبینید که کار میکنه!اضافه کردن یه کد و دیپلوی مجدد:این کد رو اضافه میکنیم:@app.get(&#039;/fake_txt_process&#039;)
def read_fake_text_process(txt: str):
    data = {}
    data[&#039;title&#039;] = txt.title()
    words = txt.split() # split with  whitespace
    data[&#039;word_count&#039;] = len(words)
    data[&#039;sentence_count&#039;] = txt.count(&#039;.&#039;)
    return dataکامند زیر رو بزن تا مجدد دیپلوی بشه:deta deployتو قسمت بعد یه ربات تلگرام روی  Deta دیپلوی میکنیم..تلگرام :https://t.me/fastapi_irAPI چیه؟</description>
                <category>FazeliDev</category>
                <author>FazeliDev</author>
                <pubDate>Thu, 29 Apr 2021 21:32:39 +0430</pubDate>
            </item>
                    <item>
                <title>شروع کار با Fast API - قسمت دوم(آشنایی با Deta)</title>
                <link>https://virgool.io/@fazelidev/%D8%B4%D8%B1%D9%88%D8%B9-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-fast-api-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-deta-wvw7nx42w6jw</link>
                <description>deta.shنکته: این قسمت آموزش نیست، فقط معرفیه! بعدا  آموزش هم میزارمسلام..از اونجایی که کدِ نوشته شده ی ما اگه روی اینترنت باشه، خیلی حالش بیشتره، یه سرویسی میخوام معرفی کنم که میتونی به رایگان api هایی که میسازی رو اونجا دیپلوی کنی .تو آموزش هام هم از همین سرویس استفاده میکنیمآدرس سایتش:deta.shثبت نام کنیدبر اساس سیستم عامل خودتون،  CLI  ش رو نصب کنیدلینک داکیومنت دتاچطوری کار میکنه؟ما سه بخش اصلی داریم، پروژه، میکرو ها، بیس هاپروژه: شامل یه secret هست و میتونه چندین میکرو و بیس داشته باشه!بیس ها، دیتابیس key/value ی ارایه شده توسط خودِ دتا هست! برای کار باهاش هم یه پکیج پایتون داره.برای آشنایی باهاش حتما داکیومنتش رو بخونید .</description>
                <category>FazeliDev</category>
                <author>FazeliDev</author>
                <pubDate>Wed, 28 Apr 2021 04:38:14 +0430</pubDate>
            </item>
                    <item>
                <title>شروع کار با Fast API</title>
                <link>https://virgool.io/@fazelidev/fa1-uzdbzndmxssl</link>
                <description>قسمت اول:FastAPI چیه؟یه فریمورک پایتونیه که ویژگی های جالبی داره.اینجا راجبش مینویسم، تلگرام هم میزارم.. اخر این پست ادرس ها رو میزارم .. اگه مفید بود دنبال کنید :) FastAPI framework, high performance, easy to learn, fast to code, ready for productionویژگی هاش چیان؟؟سرعت بالایی داره(یکی از سریع ترین هاست!)سرعت دولوپ کردنش بالاستاحتمال باگ توش کمتره!اتومات برات داکیومنت میزنه :))ادیتور ساپورت خیلی خوبی داره..دیتا ولیدیشن سرخود داره!رو شونه های Starlette و Pydantic  ایستاده :)))) و همه ی ویژگی های اونا رو داره!قاعدتا بهترین جا برای یادگیری این فریمورک، داکیومنش هست، پس اونجا منبع اصلی ما خواهد بود!!!از اونجایی که داکیومنت به بهترین شکل توضیح داده، من خیلی رو آموزش FastAPI وقت نمیزارم ولی بجاش کد میزنیم!! تا در عمل ببینیم چطوریه..آدرس تلگرام: https://t.me/fastapi_ir</description>
                <category>FazeliDev</category>
                <author>FazeliDev</author>
                <pubDate>Wed, 28 Apr 2021 03:37:29 +0430</pubDate>
            </item>
            </channel>
</rss>