آموزش پایتون برای محیط پروداکشن: راهنمای حرفهای آنبوردینگ
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- راهاندازی یک محیط توسعه حرفهای پایتون - Visual Studio Code ،pyenv ،git و تکمیل خودکار
- یادگیری گردش کار حرفهای git با GitHub و CI/CD با GitHub Actions
- شهودیتر کردن ترمینال با ZSH و پلاگینهای آن
- نسخهبندی و پکیجکردن نرمافزار پایتون و انتشار آن برای جامعه برنامهنویسان
- راهاندازی بررسیهای خودکار کیفیت کد (تست، لینتینگ، مستندسازی، بررسی نوع و غیره)
پیشنیازهای دوره
- دانش پایه لینوکس/bash: فرمان ها مانند cp ،mv ،ls ،rm و غیره؛ در دوره منبعی برای کمک به این موضوع وجود دارد؛ همچنین توانایی نصب فرمان های جدید
- یک کامپیوتر که از ترمینال *نیتیو* لینوکس پشتیبانی کند. اگر از MacOS یا لینوکس استفاده میکنید، مشکلی ندارید. اگر از ویندوز 10 یا 11 استفاده میکنید، نحوه نصب WSL 2 را پوشش خواهیم داد (ویدیوهای ابتدایی مربوط به ویندوز را ببینید).
- دانش سینتکس پایتون: حلقهها، توابع، کلاسها و غیره
- راحتی در جستجوی خطاها در گوگل برای رفع مشکلات
توضیحات دوره
این دوره درباره گذر از یک «کدنویس» به یک «مهندس نرمافزار» است. این دوره به طور خاص ابزارهای مورد نیاز برای توسعه و «انتشار» نرمافزار آماده برای محیط پروداکشن با پایتون را پوشش میدهد.
بهعنوان یک مهندس MLOps، نقش مدرس این است که به دانشمندان داده، تحلیلگران و مهندسان تازهکار کمک کنیم تا در به تولید رساندن محصولات خودکفاتر شوند.
این دوره ترکیبی از ابزارهای بنیادی، شیوههای مهندسی و مشاورههای شغلی را پوشش میدهد که باید در فرآیند آنبوردینگ به مهندسان جدید هنگام پیوستن به یک تیم داده شود (اما اغلب راهنمایی دریافت نمیکنند!).
در پایان این دوره، شما باید برای مشارکت در پروژههای نرمافزاری پیچیده در یک محیط تیمی، چه پروژههای متنباز و چه در یک شرکت، احساس اطمینان کنید.
شما خواهید فهمید که پروژههای متنبسته و متنباز چگونه مدیریت میشوند و چگونه پروژه خود را مدیریت کنید.
در این دوره، ما کد بسیار کمی مینویسیم و در عوض بر جنبههای غیرکدنویسی مهندسی نرمافزار تمرکز میکنیم که شما را به عضوی مؤثر در جامعه مهندسی نرمافزار تبدیل میکند.
با این حال، شما باید قبل از شرکت در این دوره، درک کاملی از اصول پایتون (حلقهها، توابع، کلاسها و غیره) داشته باشید.
انتظار میرود یاد بگیرید:
- چگونه یک محیط توسعه حرفهای پایتون راهاندازی کنید؟
- چگونه یک گردش کار حرفهای برای توسعه پایتون با Visual Studio Code با تأکید ویژه بر تکمیل خودکار راهاندازی کنید؟
- چگونه از git ،GitHub، «استراتژیهای برنچینگ» و یکپارچهسازی آنها با VS Code و ترمینال استفاده کنید؟
- چگونه کد تمیز و قابل نگهداری بنویسید و اطمینان حاصل کنید که تمام کدهای مشارکت داده شده در پروژههای شما کیفیت خوبی دارند؟ (تست، لینتینگ، فرمتبندی، بررسی نوع، مستندسازی و غیره)
- چگونه نرمافزار با کیفیت پروداکشن را برای مخاطبان گسترده با پکیجکردن، نسخهبندی، یکپارچهسازی مداوم و تحویل مداوم (pre-commit ،GitHub Actions ،PyPI) منتشر کنید؟
- چگونه تمام موارد فوق را قالببندی (templatize) کنید تا بتوانید پروژههای جدید و با کیفیت بالا را در چند ثانیه ایجاد کنید؟
این دوره برای چه کسانی مناسب است؟
- توسعهدهندگان پایتون در سطح متوسط پایین تا پیشرفته که پیشنیازها را دارند و به نتایج یادگیری علاقهمند هستند.
- دانشمندان داده، تحلیلگران، توسعهدهندگان تازهکار و توسعهدهندگان خودآموخته که میخواهند یک محیط توسعه برای نوشتن نرمافزار «آماده برای پروداکشن» راهاندازی کنند.
آموزش پایتون برای محیط پروداکشن: راهنمای حرفهای آنبوردینگ
-
نصب VS Code 02:02
-
فقط برای کاربران ویندوز: نصب زیرسیستم ویندوز برای لینوکس (WSL2) 06:19
-
فقط برای کاربران ویندوز: یکپارچهسازی VS Code با WSL2 07:40
-
نصب ابزار git CLI 02:50
-
مقدمه 02:56
-
نصب OhMyZSH 03:23
-
ناوبری با استفاده از ZSH و نصب پلاگینهای ZSH 02:42
-
فایل zshrc./~ و تمهای ZSH 03:55
-
فعال سازی/غیرفعال سازی پلاگینهای ZSH؛ اکستنشن All-in-one Markdown؛ پلاگین web-search 10:20
-
تکمیل خودکار Typeahead با zsh-autosuggestions 04:09
-
برجستهسازی سینتکس با zsh-syntax-highlighting 02:13
-
مقدمهای بر نسخهبندی سمنتیک (semver) 14:19
-
نسخهبندی سمنتیک (ادامه) 12:35
-
نسخهبندی سمنتیک None
-
چرا توسعهدهندگان باید بتوانند بین چندین نسخه پایتون switch کنند؟ 05:32
-
نصب و بررسی اجمالی pyenv برای مدیریت چندین نسخه پایتون 14:30
-
تاریخچه تغییرات پایتون؛ مروری بر چگونگی تکامل پایتون 10:25
-
VS Code: طرح بندی و میانبرهای کلیدی 13:17
-
Python/Pylance: بهبود پشتیبانی از ریفکتورینگ و برجستهسازی سینتکس 12:21
-
دیباگ کردن گامبهگام در VS Code 08:08
-
محیطهای مجازی پایتون و متغیر PATH 22:59
-
معرفی git با مقایسه آن با Google Docs 09:55
-
اکستنشن GitLens 04:40
-
رابط خط فرمان git و کامیتها 06:48
-
ایجاد یک کامیت 10:06
-
سفر در زمان و بهترین شیوهها برای ایجاد کامیت ها 13:06
-
دستور git stash 04:32
-
(بخش 1) برنچینگ در git - درک ویژوال 11:57
-
(بخش 2) برنچینگ در git - تمرین عملی در VS Code 07:36
-
ادغام برنچ های git 10:29
-
حل merge conflicts 07:38
-
[اضافی] بازی برنچینگ در git 01:30
-
تگها در git 09:26
-
پیشنمایش ادامه دوره 04:35
-
GitHub چیست؟ 11:02
-
ایجاد کردن repository در GitHub 05:43
-
کلون کردن و ریموتهای git 23:29
-
درخواستهای Pull و بازبینی کد 10:17
-
انجام بازبینی کد با یک درخواست Pull 25:59
-
کد تمیز و چرایی اهمیت آن؟ 12:46
-
راهنماهای استایل پایتون: Google و PEP 8 09:59
-
ریفکتور کردن برای خوانایی بهتر 19:15
-
مقدمهای بر یکپارچهسازی مداوم و بهترین شیوهها برای PR ها 18:14
-
«جهنم PR» و بحث بیشتر درباره یکپارچهسازی مداوم 17:20
-
فرمتبندی خودکار با Black، سیستم تنظیمات VS Code و «جنگهای مقدس» 28:52
-
بخش 1 Pylint - معرفی لینترها 10:09
-
بخش 2 Pylint - یکپارچهسازی با VS Code 11:03
-
بخش 3 Pylint - پیکربندی Pylint با فایل کانفیگ و آرگومانهای CLI 13:47
-
بخش 1 Flake8 - کاربرد و پیشینه 16:48
-
بخش 2 Flake8 - پلاگینهای Flake8 با مثال Darglint 11:10
-
isort: مرتبسازی دستورات ایمپورت 15:31
-
«معیارهای کد» مانند «پیچیدگی سایکلوماتیک» با Radon ،Xenon و McCabe 16:39
-
بخش 1 تایپینگ - type hints، تکمیل خودکار، بررسی تایپ استاتیک در مقابل دینامیک 20:55
-
بخش 2 تایپینگ - Mypy و تایپینگ پایه 07:49
-
بخش 3 تایپینگ - تایپ های ساده و پیچیده 14:22
-
بخش 4 تایپینگ - Union و Optional 05:52
-
بخش 5 تایپینگ - TypedDict ،dataclasses ،NamedTuple، تایپ های خود ارجاع 20:04
-
بخش 6 تایپینگ - تایپ های جنریک 26:57
-
بخش 7 تایپینگ - Type Stubs و افزودن تدریجی تایپ ها به کدهای موجود 17:53
-
Darker: لینت کردن تدریجی پروژههای قدیمی 17:39
-
Ruff: آخرین لینتر پایتون برای همیشه؟ 20:04
-
یک گردش کار یکپارچهسازی مداوم با ابزارهای کیفیت کد 05:33
-
رویکرد اول CI - نوشتن یک اسکریپت که هر ابزار را فراخوانی میکند 12:19
-
هوکهای pre-commit در Git 11:36
-
رویکرد دوم CI - فریمورک pre-commit 16:46
-
جمعبندی هوک pre-commit 18:31
-
بررسی یک فایل کانفیگ پیشرفته pre-commit 18:19
-
اولین «گردش کار» ما در GitHub Actions 07:22
-
GitHub Actions: اجرای یک گردش کار 04:56
-
فیکس کردن مشکل build و استفاده از pre-commit 07:56
-
مجوزهای برنچ، بررسیهای merge و درخواستهای pull 10:38
-
درک قیمتگذاری GitHub Actions 06:23
-
مقدمه بخش - پکیجکردن در پایتون 05:00
-
PYTHONPATH و ایمپورتها در پایتون 08:38
-
هک کردن PYTHONPATH (ادامه) 06:26
-
اولین فایل setup.py ما 10:23
-
مستندات setuptools؛ دستور find_packages 09:49
-
دستور pip install --editable 04:24
-
install_requires و reproducibility 08:31
-
کاستیهای فرمت sdist 08:48
-
فایلهای Wheel 07:44
-
داستان پیدایش pyproject.toml؛ توضیح وابستگیهای Build 11:07
-
فرار از جهنم فایلهای کانفیگ؛ فایل setup.cfg 14:39
-
حذف setup.cfg به لطف PEP 621 08:33
-
حذف setup.py؛ استاندارد PEP 517؛ بکاندهای Build 03:25
-
فایلهای داده - بخش 1؛ مثال کاربردی برای گنجاندن فایلهای داده در یک پکیج 13:54
-
فایلهای داده - بخش 2؛ MANIFEST.in و جایگزینهای مخصوص بکاند ساخت 15:48
-
مدیریت وابستگی؛ گرافهای وابستگی و لاک کردن وابستگیها 07:16
-
گرافهای وابستگی 05:43
-
درختهای محدودیت و «جهنم وابستگی» 10:03
-
ناپایداری درختهای محدودیت در نسخههای مختلف پکیج 12:37
-
وابستگیهای اختیاری یا «extras» 09:20
-
انتخاب وابستگیها با استفاده از شاخص پکیج پایتون Snyk 08:45
-
مقدمه بخش 05:08
-
DevOps و مقایسه Waterfall با Agile 20:23
-
انتشار در PyPI؛ مقایسه Prod PyPI و تست 04:35
-
تولید توکنهای API برای PyPI 05:37
-
اجرای دستور `twine upload` 06:28
-
Task runners - بخش 1 - CMake و Makefile 17:32
-
Task runners - بخش 2 - جایگزینهای CMake (Just ،PyInvoke ،Bash) 09:49
-
Task runners - بخش 3 - Bash به عنوان task runner 14:45
-
انتشار در Test PyPI 16:00
-
انتشار در Prod PyPI؛ چرا باید استقرار را به GitHub Actions منتقل کنیم؟ 07:21
-
مقدمه بخش 02:44
-
چیستی و چرایی «محیطهای تحویل»؟ 12:08
-
گردش کار برای پکیجهای پایتون 11:19
-
راهاندازی trigger listeners برای گردش کار GitHub Actions 07:05
-
Push کردن به Test PyPI از CI؛ بخش 1 مدیریت Context ها و Secret ها 12:58
-
بخش 2 مدیریت Context ها و Secret ها 15:50
-
چند بهبود جزئی در پایپلاین pre-merge 15:10
-
فعال سازی لینتینگ در پایپلاین 04:30
-
نوشتن پایپلاین post-merge 07:28
-
افزودن تگهای git و جلوگیری از انتشارهای داپلیکیت 08:48
-
لاک کردن نیازمندیها 07:43
-
کش کردن وابستگیها 10:38
-
موازیسازی 09:47
-
انتقال آرتیفکتها (فایلها) بین جابها 12:08
-
معرفی تست نرمافزار 07:15
-
مقدمهای بر pytest 02:47
-
راهاندازی pytest (پایه) 07:38
-
جهان موارد تست 06:20
-
موارد تست پارامتری و جهان موارد تست 05:43
-
نشانگرهای Pytest برای نادیده گرفتن تستهای کند؛ ارسال آرگومان به run.sh 18:01
-
پوشش تست بخش 1 - پوشش روی پوشه /src 17:17
-
پوشش تست بخش 2 16:27
-
تست در GitHub Actions، تست کردن فایل Wheel 15:52
-
یکپارچهسازی Pytest با VS Code 08:13
-
بررسی اجمالی پروژه و دمو 10:27
-
معماری پروژه نهایی 06:23
-
نکته جانبی: رشتههای قالببندی شده با Jinja2 04:58
-
معرفی Cookiecutter 09:00
-
شروع پروژه نهایی - ساخت یک قالب ساده Cookiecutter 06:49
-
پاسخنامه وجود دارد! مخزن ارجاع در GitHub 02:48
-
شروع پروژه نهایی: فورک کردن مخزن اولیه 01:57
-
قالببندی پروژه اولیه با Cookiecutter 08:15
-
بررسی فایلهای اولیه پروژه نهایی 16:56
-
کار با یک پروژه تولید شده (نصب وابستگیها، اجرای تستها، لینت و غیره) 05:40
-
فیکس کردن یک مشکل با pre-commit در قالب 08:49
-
چه چیزی را میتوانیم یا باید درباره قالب خود تست کنیم؟ 09:23
-
نوشتن اولین تست قالب ما 12:52
-
عیبیابی black (و سایر اکستنشن ها) در VS Code 01:53
-
معرفی فیکسچرهای Pytest 10:44
-
نوشتن یک فیکسچر Pytest برای تولید یک پروژه 11:41
-
بخش 1 - conftest.py - اکسترکت کردن توابع helper و consts به فایلهای جداگانه 08:39
-
بخش 2 - conftest.py - اکسترکت کردن فیکسچرهای Pytest به فایلهای اختصاصی 04:19
-
نوشتن یک تست برای «make lint» 14:36
-
نوشتن یک تست برای «make test» 06:06
-
موازیسازی تستها با pytest-xdist 11:22
-
اتمام تستها؛ بهبود طرح بندی tests/ dir در پروژه قالب 04:21
-
چالش: فعال سازی CI/CD برای مخزن پروژه دوره 02:34
-
راه حل: فعال سازی CI/CD برای مخزن پروژه دوره 22:23
-
چالش: افزودن پارامتر «package_import_name» به قالب Cookiecutter 02:17
-
راه حل: افزودن پارامتر «package_import_name» به قالب Cookiecutter 09:56
-
نصب GitHub CLI (با git CLI متفاوت است!) 06:12
-
برنامهریزی فرم ایجاد یا بهروزرسانی مخزن 04:10
-
بخش 1 - اسکریپت - create-repo-if-not-exists 08:50
-
بخش 2 اسکریپت - open-pr-with-generated-project 16:29
-
بخش 3 اسکریپت - configure-repo 17:37
-
جمعبندی همه چیز در یک گردش کار GitHub Actions 11:14
-
فیکس کردن مشکل احراز هویت برای GitHub CLI با استفاده از یک توکن شخصی در گردش کار 18:51
-
دموی پروژه نهایی (دوباره، اما این بار پروژه شماست!) 08:25
مشخصات آموزش
آموزش پایتون برای محیط پروداکشن: راهنمای حرفهای آنبوردینگ
- تاریخ به روز رسانی: 1404/06/21
- سطح دوره:مقدماتی
- تعداد درس:161
- مدت زمان :28:03:49
- حجم :12.68GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy