لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش بردن پایتون به تولید: راهنمای نصب حرفه ای
Taking Python to Production: A Professional Onboarding Guide
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
دانشمندان داده، تحلیلگران و توسعه دهندگان مبتدی: انتقال از "کدگذار" به "مهندس نرم افزار" و یادگیری ارسال کد راه اندازی یک محیط توسعه حرفه ای Python - Visual Studio Code، pyenv، git، تکمیل خودکار گردش کار حرفه ای git را با GitHub و CI بیاموزید./CD با GitHub Actions ترمینال را با ZSH و افزونهها بصریتر کنید نسخه و بسته نرمافزار پایتون و انتشار آن برای جامعه راهاندازی کنترلهای خودکار کیفیت کد (تست، لینتینگ، مستندات، بررسی نوع و غیره) پیش نیازها:Basic Linux/bash دانش: cp، mv، ls، rm و غیره؛ <-- منبعی برای کمک به این موضوع وجود دارد. توانایی نصب دستورات کامپیوتری که از ترمینال *بومی* لینوکس پشتیبانی می کند. اگر روی MacOS یا Linux اجرا می کنید، خوب هستید. اگر از ویندوز 10 یا 11 استفاده می کنید، نحوه نصب WSL 2 را توضیح خواهیم داد (به ویدیوهای اولیه ویندوز مراجعه کنید). دانش سینتکس پایتون: حلقهها، توابع، کلاسها و غیره. خطاهای راحت گوگل برای رفع گیر کردن
این یک دوره آموزشی در مورد انتقال از "کدگذار" به "مهندس نرم افزار" است. این به طور خاص ابزارهای مورد نیاز برای توسعه و "ارسال" نرم افزارهای آماده تولید با پایتون را پوشش می دهد.
به عنوان یک مهندس MLOps، نقش من این است که به دانشمندان داده، تحلیلگران و مهندسان جوان کمک کنم تا در تولید محصولات خودکفاتر شوند.
این دوره ترکیبی از ابزارهای اساسی، شیوههای مهندسی، و توصیههای شغلی را پوشش میدهد که مهندسان جدید باید در طول فرآیند ورود به تیم هنگام پیوستن به تیم داده شوند (اما اغلب راهنمایی دریافت نمیکنند!).
در پایان این دوره، باید مطمئن باشید که در پروژههای نرمافزاری پیچیده در یک محیط تیمی، چه منبع باز یا در یک شرکت مشارکت میکنید (یا لطفاً ظرف 30 روز درخواست بازپرداخت کنید!).
خواهید فهمید که چگونه پروژه های متن باز و بسته اجرا می شوند و چگونه پروژه های خود را اجرا کنید.
در دوره، ما کد بسیار کمی می نویسیم و در عوض روی جنبه های غیر کدنویسی مهندسی نرم افزار تمرکز می کنیم که شما را به عضوی موثر در جامعه مهندسی نرم افزار تبدیل می کند.
که گفته شد، قبل از شرکت در این دوره باید درک کاملی از اصول پایتون (حلقهها، توابع، کلاسها و غیره) داشته باشید.
انتظار یادگیری دارید
نحوه راه اندازی یک محیط توسعه حرفه ای پایتون
نحوه راه اندازی یک گردش کار حرفه ای برای توسعه پایتون با کد ویژوال استودیو . تاکید بیشتر بر تکمیل خودکار
نحوه استفاده از git، GitHub، "استراتژی های شاخه بندی" و ادغام آنها با VS Code و ترمینال
چگونه کد تمیز و قابل نگهداری بنویسیم و اطمینان حاصل کنیم که تمام کدهای ارائه شده به پروژه های شما با کیفیت خوب هستند (تست، پرده بندی، قالب بندی، بررسی نوع، مستندات، و غیره)
نحوه انتشار نرمافزار با کیفیت تولید برای مخاطبان گسترده با بستهبندی، نسخهسازی، یکپارچهسازی مداوم و تحویل مداوم (پیشتعهد، GitHub Actions، PyPI)
چگونه تمام نکات بالا را قالب بندی کنیم تا بتوانید پروژه های جدید و با کیفیت بالا را در چند ثانیه ایجاد کنید
قبل از پرداخت هزینه برای این دوره، لطفاً از سخنرانیهای پیشنمایش نمونه بگیرید تا بتوانید متوجه شوید که آیا این دوره برای شما مناسب است یا خیر.
در دوره می بینمت!
- اریک
سرفصل ها و درس ها
معرفی
Introduction
معرفی دوره
Course introduction
مهم! یادداشت های دوره و وب سایت دوره
IMPORTANT! Course Notes and Course Website
دوره کرش لینوکس و ترمینال
Linux and terminal crash course
راه اندازی محیط
Environment Setup
VS Code را نصب کنید
Install VS Code
مطمئن شوید که دستور «کد» را دارید
Make sure you have the `code` command
فقط کاربران مک: Homebrew، Xcode و iTerm2 را نصب کنید
Mac users only: Install Homebrew, Xcode, and iTerm2
فقط کاربران ویندوز: زیرسیستم ویندوز برای لینوکس (WSL2) را نصب کنید
Windows users only: Install the Windows Subsystem for Linux (WSL2)
فقط کاربران ویندوز: کد VS را با WSL2 ادغام کنید
Windows users only: Integrate VS Code with the WSL2
منابع: نصب git
Resources: Installing git
نصب ابزار git CLI
Installing the git CLI tool
بهبود ترمینال با ZSH
Improving the terminal with ZSH
معرفی
Introduction
نصب OhMyZSH
Installing OhMyZSH
پیمایش با استفاده از ZSH و نصب افزونه های ZSH
Navigating using ZSH and installing ZSH plugins
فایل ~/.zshrc و مضامین ZSH
The ~/.zshrc file and ZSH themes
غیرفعال کردن/فعال کردن افزونه های ZSH. افزونه همه در یک Markdown. افزونه جستجوی وب
Disabling/enabling ZSH plugins; All-in-one Markdown extension; web-search plugin
تکمیل خودکار Typeahead با پیشنهادات خودکار zsh
Typeahead auto-completion with zsh-autosuggestions
برجسته سازی نحو با برجسته سازی zsh-syntax
Syntax highlighting with zsh-syntax-highlighting
(قسمت 2) انشعاب git - عملی در VS Code
(Part 2) git branching - hands-on in VS Code
ادغام شاخه های git
Merging git branches
حل تعارضات ادغام
Resolving merge conflicts
[اضافی] بازی انشعاب git
[Extra] git branching game
تگ های git
git tags
خلاصه: گردش کار git محلی
Recap: the local git workflow
بررسی GitHub و Code
GitHub and Code Review
پیش نمایش بقیه دوره
Preview of the rest of the course
GitHub چیست؟
What is GitHub?
ایجاد یک مخزن در GitHub
Creating a repository in GitHub
ریموت های شبیه سازی و git
Cloning and git remotes
درخواستها و بررسی کدها
Pull Requests and Code Review
انجام بازبینی کد با درخواست کشش
Conducting Code Review with a Pull Request
خلاصه: گردش کار git راه دور
Recap: the remote git workflow
یکپارچه سازی پیوسته: کدهای تمیز، فرمت کننده ها، لینترها و ادغام کدهای VS
Continuous Integration: clean code, formatters, linters and VS Code integrations
راهنمای بخش: منابع، پیوندها، تکالیف، یادداشت های خلاصه و غیره.
Section guide: resources, links, assignments, summary notes, etc.
کد پاک و چرایی اهمیت آن
Clean code and why it's important
راهنماهای سبک پایتون: گوگل و PEP 8
Python style guides: Google and PEP 8
Refactoring برای خوانایی بهتر
Refactoring for better readability
مقدمه ای بر ادغام مستمر و بهترین شیوه ها برای روابط عمومی
Introduction to Continuous Integration and best practices for PRs
"جهنم روابط عمومی" و بحث بیشتر در مورد ادغام مداوم
"PR hell" and more discussion of Continuous Integration
فرمت خودکار با سیاه، سیستم تنظیمات VS Code و "جنگ مقدس"
Autoformatting with Black, VS Code's settings system, and "Holy Wars"
Pylint قسمت 1 - معرفی Linters
Pylint Part 1 - Introducing Linters
Pylint قسمت 2 - ادغام با VS Code
Pylint Part 2 - Integrating with VS Code
Pylint قسمت 3 - پیکربندی Pylint با فایل پیکربندی و آرگومان های CLI
Pylint Part 3 - Configuring Pylint w/ a config file and CLI arguments
Flake8 قسمت 1 - استفاده و پس زمینه
Flake8 Part 1 - Usage and background
Flake8 Part 2 - افزونه های Flake8 با Darglint به عنوان مثال
Flake8 Part 2 - Flake8 plugins w/ Darglint as an example
isort: مرتب سازی عبارات واردات
isort: sorting import statements
«متریک های کد» مانند «پیچیدگی سیکلوماتیک» با رادون، زنون و مک کیب
"Code metrics" like "cyclomatic complexity" with Radon, Xenon, and McCabe
تایپ قسمت 1 - نکات تایپ، تکمیل خودکار، بررسی نوع استاتیک در مقابل پویا
Typing Part 1 - type hints, autocompletion, static vs dynamic type checking
تایپ قسمت 2 - تایپ Mypy و ابتدایی
Typing Part 2 - Mypy and basic typing
تایپ قسمت 3 - انواع ساده و پیچیده
Typing Part 3 - Simple and Complex Types
تایپ قسمت 4 - اتحادیه و اختیاری
Typing Part 4 - Union and Optional
تایپ قسمت 5 - TypedDict، کلاس های داده، NamedTuple، انواع خود مرجع
Typing Part 5 - TypedDict, dataclasses, NamedTuple, self-referential types
تایپ قسمت 6 - انواع عمومی
Typing Part 6 - Generic Types
تایپ قسمت 7 - تایپ Stubs و افزودن تدریجی انواع به پایگاه های کد موجود
Typing Part 7 - Type Stubs and incrementally adding types to existing codebases
تیره تر: پروژه های قدیمی به تدریج پرز می شوند
Darker: incrementally lint legacy projects
راف: آخرین لینتر پایتون تا کنون؟
Ruff: the last Python linter ever?
ادغام مستمر - چارچوب قبل از تعهد
Continuous Integration - The pre-commit framework
گردش کار یکپارچه سازی مداوم با ابزارهای کیفیت کد
A Continuous Integration workflow with code quality tools
رویکرد CI 1 - نوشتن یک اسکریپت که هر ابزار را فراخوانی می کند
CI Approach 1 - Writing a script that calls each tool
قلابهای پیشفرض Git
Git pre-commit hooks
رویکرد CI 2 - چارچوب پیش تعهد
CI Approach 2 - The pre-commit framework
جمع آوری قلاب قبل از انجام تعهد
Pre-commit hook roundup
گشت و گذار در یک فایل کانفیگ پیش commit پیشرفته
Tour of an advanced pre-commit config file
اقدامات GitHub
GitHub Actions
اولین "جریان کاری" اکشن های GitHub ما
Our first GitHub Actions "workflow"
GitHub Actions: اجرای یک گردش کار
GitHub Actions: running a workflow
تعمیر ساخت و استفاده از pre-commit
Fixing the build and using pre-commit
مجوزهای شعبه، بررسی های ادغام، و درخواست های کششی
Branch permissions, merge checks, and pull requests
صرفه جویی در هزینه در GitHub Actions
Saving money on GitHub Actions
ارسال مصنوعات (فایل) بین مشاغل
Passing artifacts (files) between jobs
تست نرم افزار و Pytest
Software Testing and Pytest
معرفی تست نرم افزار
Introducing software testing
مقدمه ای برای پایتست
Intro to pytest
راه اندازی pytest (پایه)
Setting up pytest (basic)
کیهان آزمایشی
Test case universe
موارد آزمون پارامتری شده و جهان مورد آزمایش
Parameterized test cases and the test case universe
نشانگرهای Pytest برای رد شدن از تست های آهسته؛ ارسال آرگومان به اجرا.sh
Pytest markers to skip slow tests; passing arguments to run.sh
تست پوشش قسمت 1 - پوشش در پوشه src/
Test coverage part 1 - coverage on src/ folder
پوشش تست قسمت 2
Test coverage part 2
تست در GitHub Actions، تست فایل Wheel
Testing in GitHub Actions, Testing the Wheel file
ادغام کد Pytest در مقابل کد
Pytest VS Code Integration
[هنوز مقاله ای وجود ندارد] پروژه دوره: بسته پیشرفته پایتون و قالب مخزن
[No Articles Yet] Course project: Advanced Python package and repo template
نمای کلی پروژه و نسخه ی نمایشی
Project overview and demo
معماری پروژه نهایی
Architecture of Final Project
کنار: رشته های قالب بندی شده Jinja2
Aside: Jinja2 Templated Strings
معرفی Cookiecutter
Introducing Cookiecutter
شروع پروژه نهایی - ساخت یک قالب بی اهمیت Cookiecutter
Starting the final project - making a trivial Cookiecutter template
یک کلید پاسخ وجود دارد! مخزن مرجع در GitHub
There is an answer key! Reference repo in GitHub
شروع پروژه نهایی: انشعاب مخزن استارت
Starting the final project: forking the starter repo
الگوسازی پروژه شروع با Cookiecutter
Templatizing the starter project with Cookiecutter
گشت و گذار در فایل های شروع پروژه نهایی
Tour of the final project starter files
اجرای پروژه تولید شده (نصب deps، اجرای تست، لینت و غیره)
Operating a generated project (install deps, run tests, lint, etc.)
رفع مشکل پیش commit در قالب
Fixing an issue with pre-commit in the template
چه چیزی را می توانیم/باید در مورد الگوی خود آزمایش کنیم؟
What could/should we test about our template?
نوشتن اولین تست الگوی ما
Writing our first template test
عیب یابی سیاهی (و سایر برنامه های افزودنی) در VS Code
Troubleshooting black (and other extensions) in VS Code
معرفی Pytest Fixtures
Introducing Pytest Fixtures
نوشتن فیکسچر Pytest برای تولید یک پروژه
Writing a Pytest fixture for generating a project
قسمت 1 - conftest.py - توابع کمکی و Const ها را در فایل های جداگانه استخراج کنید
Part 1 - conftest.py - Extract helper functions and consts into separate files
قسمت 2 - conftest.py - استخراج فیکسچرهای Pytest به فایل های اختصاصی
Part 2 - conftest.py - Extracting Pytest fixtures to dedicated files
نوشتن یک تست برای "ساخت پرز"
Writing a test for "make lint"
نوشتن تست برای "تست ساختن"
Writing a test for "make test"
موازی سازی تست ها با pytest-xdist
Parallelizing tests with pytest-xdist
تست های پایانی؛ بهبود طرحبندی تستها/دیر در پروژه الگو
Finishing tests; improving the tests/ dir layout in the template project
چالش: CI/CD را برای مخزن پروژه دوره فعال کنید
Challenge: Enable CI/CD for the course project repository
راه حل: CI/CD را برای مخزن پروژه دوره فعال کنید
Solution: Enable CI/CD for the course project repository
چالش: یک پارامتر "package_import_name" را به الگوی Cookiecutter اضافه کنید
Challenge: add a "package_import_name" parameter to the Cookiecutter template
راه حل: یک پارامتر "package_import_name" را به قالب Cookiecutter اضافه کنید
Solution: add a "package_import_name" parameter to the Cookiecutter template
نصب GitHub CLI (که مشابه git CLI نیست!)
Installing the GitHub CLI (not the same thing as the git CLI!)
برنامه ریزی فرم ایجاد یا به روز رسانی مخزن
Planning the create-or-update-repo form
قسمت 1 - اسکریپت - ایجاد - مخزن - اگر - وجود ندارد
Part 1 - Script - create-repo-if-not-exists
اسکریپت قسمت 2 - open-pr-with-generated-project
Script Part 2 - open-pr-with-generated-project
اسکریپت قسمت 3 - configure-repo
Script Part 3 - configure-repo
همه آن ها را در یک گردش کاری GitHub Actions گرد هم می آورد
Bringing it all together in a GitHub Actions workflow
تصحیح auth برای GitHub CLI با استفاده از یک رمز شخصی در گردش کار
Fixing auth for the GitHub CLI using a personal token in the workflow
نمایش پروژه نهایی (دوباره، به جز این که این بار مال شماست!)
Demo the final project (again, except this time it's yours!)
نمایش نظرات