codingcogs' logo

معرفی دوره

اگر این صفحه رو میبینی یعنی تصمیم گرفتی که FastAPI رو یاد بگیری! توی این دوره قراره که زیر و بم بک‌اند با FastAPI رو یاد بگیریم وکلی مبانی دیگه هم یاد بگیریم.

پیش نیازها(آپدیت 2025)

این دوره برای نسخه FastAPI 0.115.12 و Python 3.13 تدوین شده و همه نمونه کد های موجود در دوره با محیط و environment داخل Github قابل اجرا هستند. در حال حاضر که داریم این دوره رو از نسخه‌ی 0.96.2 و پایتون 3.11 آپدیت می‌کنیم نسخه‌ی جدید تری از FastAPI وجود نداره ولی اگر هم وجود داشته باشه نباید فرق خاصی با کدهای این دوره تا سال 2030 رو شاهد باشیم.


البته با عرضه ی نسخه ی 1.0.0 FastAPI احتمالا این دوره به یک بروزرسانی اساسی نیاز داشته باشه ولی احتمال این مسئله نسبتا پایینه و حتی معلوم نیست که دقیقا کی این اتفاق ممکنه رخ بده!


برای تکمیل این دوره شما به پیشینه خاصی در توسعه وب نیاز ندارید. این دوره به نحوی تدوین شده که حتی یک توسعه‌دهنده‌ی پایتون کاملا مبتدی بتونه آموزش‌ها رو به راحتی دنبال کنه و یاد بگیره و سرویس‌ها و محصولات خودش رو با FastAPI توسعه بده.

در مورد FastAPI

این فریم ورک یک وِب فریمورک متن‌باز(Open Source) هست که بر پایه زبان پایتون و مبتنی بر استاندارد OpenAPI نوشته شده. FastAPI در مدت کوتاهی (نسبت به Django و Flask) توانست به یکی از ابزار مهم و کاربردی صنعت نرم‌افزار تبدیل شود و کاربردهای پایتون را در سرویس‌های کوچک و سریع گسترش دهد. همچنین با پایه‌گذاری درست مبتنی بر استاندارد OpenAPI توانست بر ابزار دیگر نیز تاثیر بسزایی بگذارد. مثلا برای Django ابزار Django-ninja مبتنی بر ساختار FastAPI عمل می‌کند و باعث افزایش سرعت چند 10 برابری viewهای جنگو می‌شود. یا فریم‌ورک Robyn نیز که با استفاده از هسته‌ای به زبان Rust برای پایتون نوشته شده نیز دقیقا مسیر FastAPI و حتی نامگذاری‌های آن را دنبال می‌کند.

با FastAPI استفاده از پایتون در بک‌اند کمی فراگیرتر شد و این فریم‌ورک بسیار قدرتمند و ارزشمند است.

چرا باید FastAPI را یاد بگیریم؟

فریم‌ورک مجموعه‌ای از ابزارهاست که بسیاری از جزییات و پیاده‌سازی‌های مرسوم یک حوزه را در خود دارد. در اکثر کارهای مختلف در توسعه‌ی نرم‌افزار مبانی ثابتی وجود دارند. مثلا برنامه‌های بک‌اند همه تقریبا مبانی ثابتی دارند و فریم‌ورک‌های مختلف، هرکدام به نوعی این مبانی را در خود پیاده‌سازی کرده‌اند.

علت اهمیت FastAPI فقط یک فریم‌ورک بک‌اند یا Full-Stack بودن نیست. FastAPI بسیار سریع است و می‌تواند با فریم‌ورک‌های مشابه برای زبان‌های Rust و Go و .net نیز به رقابت بپردازد.

از طرفی محدودیت‌ها و ویژگی‌های پایتون می‌توانند در هر کاری به راحتی ایجاد دردسر کنند، اما در این دورهه با تمرکز بر ابزار مناسب (مثل Pydantic) به راحتی این مشکلات را مدیریت و رفع می‌کنیم.

بعد از این دوره کاملا به FastAPI مسلط خواهید شد و با پیچیدگی‌ها و محدودیت‌های پایتون نیز بیشتر آشنا می‌شوید.

درباره‌ی فصل‌ها

فصل‌های 1 و 2

در این 2 فصل مبانی ابتدایی شروع پروژه، Git و مبانی FastAPI را می‌آموزیم.

فصل‌های 3 و 4

یک پروژه‌ی بسیار ساده را با مبانی یادگرفته در فصل‌های 1 و 2 شروع می‌کنیم و مباحث اصلی و پیشرفته‌تر را می ‌آموزیم. پس از پایان این 4 فصل رسما می‌توانید کار با FastAPI را شروع کرده.

فصل‌ 5

پس از آپدیت سوم دوره به نظرم نیاز بود که مفاهیم کلیدی در یک فصل مجزا پس از فصل 4 در دوره قرار بگیرند. در این فصل با مبانی تئوری و عملکرد FastAPI آشنا می‌شوید. از این فصل به بعد روی مفهموم میکروسرویس تمرکز می‌شود و با ابزار، مفاهیم و روش‌های درست بکارگیری FastAPI در ادامه‌ی دوره آشنا خواهید شد. تمرکز دوره از این نقطه به بعد بیشتر معرفی ابزار و روش‌های تئوری مهم است و یادگیری دوره از این نقطه‎ به بعد به منظور بهبود درک شما و افزایش کیفیت آینده‌ی شغلی شما خواهد بود.

فصل‌های 6 تا 10

در این فصل‌ها ابزار، روش‌ها و مفاهیم پیچیده‌تر را شروع کرده و یاد می‌گیریم. کار دقیق با دیتابیس‌ها و ORM ها و ODM ها و OM ها را نیز می‌آموزیم. در این فصل‌ها با دیتابیس‌های PostgreSQL و MongoDB و Redis-Stack آشنا می‌شویم.

همچنین design pattern های مقدماتی ساخت microservice ها را باهم می‌بینیم.

فصل‌های 11 تا 13

در این 3 فصل به مبانی ارتباطی میکروسرویس‌ها، معماری‌های رایج و مبانی کار برنامه به عنوان میکروسرویس می‌پردازیم.

همچنین کاربردهای مختلف ابزار و سرویس‌های مناسب FastAPI را باهم می‌بینیم.

فصل‌های 14 تا 16

در این 3 فصل یک پروژه‌ی 3 بخشی شامل Authentication و Authorization با JWT در یک سرویس، مدیریت خروجی سرویس‌ها با API Composer در یک سرویس و پیاده‌سازی یک سرویس اصلی هوش مصنوعی را می‌آموزیم. هر 3 سرویس مبانی مختلفی از توسعه‌ی میکروسرویس را در خود دارند و در هرکدام، به عنوان راه ارتباطی به جای استفاده از Rest API از WebSocket و gRPC استفاده می‌کنیم.