دوره مقدمهای بر Type Hinting و MyPy در پایتون همراه با فلشکارت آموزشی — ارائه روی فلش مموری
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره مقدمهای بر Type Hinting و MyPy در پایتون
موضوع کلی: برنامه نویسی
موضوع میانی: پایتون (Python)
📋 سرفصلهای دوره
- 1. مقدمهای بر برنامهنویسی و مفهوم تایپینگ
- 2. تایپینگ پویا (Dynamic Typing) در پایتون
- 3. مزایا و معایب تایپینگ پویا
- 4. تایپینگ ایستا (Static Typing) چیست؟
- 5. چرا به Type Hinting در پایتون نیاز داریم؟
- 6. معرفی MyPy: یک Static Type Checker برای پایتون
- 7. تفاوت بین Type Hinting و Type Checking
- 8. آمادهسازی محیط توسعه: نصب پایتون و MyPy
- 9. اجرای اولین بررسی نوع با MyPy
- 10. مبانی Type Hinting: انواع داده اولیه (int, str, float, bool)
- 11. راهنمای نوع برای متغیرها
- 12. راهنمای نوع برای آرگومانهای تابع
- 13. راهنمای نوع برای مقدار بازگشتی تابع
- 14. استفاده از `None` در Type Hinting
- 15. نوع خاص `Any`: چه زمانی و چگونه استفاده کنیم
- 16. معرفی ماژول `typing`
- 17. راهنمای نوع برای لیستها: `typing.List`
- 18. راهنمای نوع برای تاپلها: `typing.Tuple`
- 19. راهنمای نوع برای دیکشنریها: `typing.Dict`
- 20. راهنمای نوع برای مجموعهها: `typing.Set`
- 21. استفاده از انواع داخلی به جای `typing` (پایتون 3.9+)
- 22. نوع `Optional`: برای مقادیری که میتوانند `None` باشند
- 23. نوع `Union`: برای مقادیری با چند نوع ممکن
- 24. تفاوت `Union[str, None]` و `Optional[str]`
- 25. عملگر `|` به عنوان جایگزین `Union` (پایتون 3.10+)
- 26. راهنمای نوع برای لیستهای تودرتو
- 27. راهنمای نوع برای دیکشنریهای پیچیده
- 28. استفاده از کلاسها به عنوان راهنمای نوع
- 29. مفهوم Forward References و کاربرد آن
- 30. نصب و اجرای MyPy از طریق خط فرمان
- 31. تحلیل خطاهای رایج MyPy: خطای نوع آرگومان
- 32. تحلیل خطاهای رایج MyPy: خطای نوع مقدار بازگشتی
- 33. فایل پیکربندی `mypy.ini`: مقدمات
- 34. پیکربندی سطح سختگیری (Strict Mode) در MyPy
- 35. چگونه خطاها را با `# type: ignore` نادیده بگیریم
- 36. استفاده از `# type: ignore` با کدهای خطای خاص
- 37. مفهوم Stub Files (`.pyi`) و کاربرد آنها
- 38. پروژه `typeshed`: منبع Stubهای استاندارد
- 39. ایجاد Type Alias با استفاده از `TypeAlias`
- 40. راهنمای نوع در کلاسها: متدها و `self`
- 41. راهنمای نوع برای متدهای کلاس (`@classmethod`) و `cls`
- 42. راهنمای نوع برای متدهای استاتیک (`@staticmethod`)
- 43. راهنمای نوع برای propertyها
- 44. راهنمای نوع و وراثت (Inheritance)
- 45. مقدمهای بر Generics و `TypeVar`
- 46. ایجاد توابع Generic با `TypeVar`
- 47. ایجاد کلاسهای Generic با `TypeVar`
- 48. محدود کردن `TypeVar` (Constrained TypeVars)
- 49. محدود کردن `TypeVar` با Bound
- 50. `Callable`: راهنمای نوع برای توابع و اشیاء قابل فراخوانی
- 51. تعریف امضای دقیق توابع با `Callable`
- 52. `Literal`: محدود کردن مقادیر به چند گزینه خاص
- 53. `Final`: تعریف متغیرها و متدهای غیرقابل تغییر
- 54. `ClassVar`: تعریف متغیرهای سطح کلاس
- 55. `Protocol`: پیادهسازی تایپینگ اردکی (Structural Subtyping)
- 56. تعریف یک Protocol ساده
- 57. استفاده از `@runtime_checkable` برای Protocolها
- 58. `TypedDict`: تعریف ساختار دقیق برای دیکشنریها
- 59. `NamedTuple` و `typing.NamedTuple` برای ساختارهای دادهای
- 60. `NewType`: ایجاد انواع متمایز از انواع موجود
- 61. راهنمای نوع برای ژنراتورها (Generators) با `Generator`
- 62. راهنمای نوع برای Context Manager ها
- 63. راهنمای نوع برای توابع `async` و `await`
- 64. استفاده از `Coroutine` و `Awaitable`
- 65. راهنمای نوع برای دکوراتورها (Decorators)
- 66. مقدمهای بر `ParamSpec` برای دکوراتورها
- 67. استفاده از `Concatenate` به همراه `ParamSpec`
- 68. مفهوم `TypeGuard` برای محدود کردن انواع در زمان اجرا
- 69. پیادهسازی یک `TypeGuard` ساده
- 70. راهنمای نوع برای توابع با تعداد آرگومان متغیر (`*args` و `**kwargs`)
- 71. استفاده از `Unpack` برای `*args` و `**kwargs` (پایتون 3.11+)
- 72. مفهوم Variance: Covariance و Contravariance
- 73. کاربرد `TypeVar` با `covariant=True`
- 74. کاربرد `TypeVar` با `contravariant=True`
- 75. نوع `NoReturn`: برای توابعی که هرگز باز نمیگردند
- 76. نوع `ContextManager` از ماژول `typing`
- 77. راهنمای نوع برای متدهای خاص (مانند `__init__` و `__str__`)
- 78. استفاده از MyPy در ویرایشگرهای کد (مانند VS Code)
- 79. یکپارچهسازی MyPy با ابزارهای CI/CD (مانند GitHub Actions)
- 80. استراتژیهای افزودن Type Hint به پروژههای موجود
- 81. استفاده از ابزار `pytype` برای استنتاج خودکار انواع
- 82. استفاده از ابزار `MonkeyType` برای تولید انواع از تستها
- 83. تأثیر Type Hinting بر عملکرد (Performance) برنامه
- 84. استفاده از Type Hintها برای تولید مستندات خودکار (با Sphinx)
- 85. اشتباهات متداول در استفاده از Type Hinting
- 86. چالشهای کار با کتابخانههایی که Type Hint ندارند
- 87. چگونه برای کتابخانههای شخص ثالث Stub بنویسیم
- 88. راهنمای نوع برای کار با فایلها (`IO` و `TextIO`)
- 89. راهنمای نوع در پروژههای Django
- 90. راهنمای نوع در فریمورک FastAPI
- 91. راهنمای نوع در کار با دیتابیسها و ORMها
- 92. مفهوم Type Narrowing (تحدید نوع)
- 93. راهنمای نوع برای کار با JSON
- 94. بررسی افزونههای MyPy (MyPy Plugins)
- 95. نوشتن یک افزونه ساده برای MyPy
- 96. مقایسه MyPy با ابزارهای دیگر (Pyright, Pyre)
- 97. آینده تایپینگ در پایتون و PEPهای جدید
- 98. جمعبندی مفاهیم کلیدی دوره
- 99. پروژه عملی: بازسازی یک کدبیس بدون نوع به همراه Type Hint
- 100. مرور و تحلیل پروژه عملی
محتویات بسته آموزشی
🌐 سامانه آنلاین فلشکارت؛ مرور هدفمند و هوشمند
اکانت ارائهشده، دسترسی به نسخه تحت وب سامانه فلشکارت ویژه این دوره را فراهم میکند. این سامانه از الگوریتم زمانبندی مرور SM-2 استفاده میکند و بر اساس ارزیابی شما از میزان یادآوری هر کارت، زمان مرورهای بعدی را تنظیم میکند.
به این ترتیب، کارتهای دشوارتر میتوانند زودتر مرور شوند و برای تثبیت مطالب در حافظه، برنامه مرور متناسبتری داشته باشید.
مدتزمان معادل آموزشی بر اساس برآورد این دوره در گواهی درج میشود.
گواهی دوزبانه با استعلام آنلاین
پس از تکمیل فعالیتهای لازم و تأیید درخواست، گواهی پایان دوره به زبان فارسی و انگلیسی صادر میشود. گواهی دارای لینک اختصاصی و QR Code برای بررسی و استعلام آنلاین است.
این گواهی صرفاً بهعنوان گواهی اتمام دوره آموزشی صادر میشود و معادل مدرک دانشگاهی، آکادمیک یا مدرک رسمی مورد تأیید نهادهای دولتی نیست. صدور آن منوط به تکمیل شرایط دوره و تأیید نهایی درخواست است.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.