خانه / درس ۱۰ مقدماتی: مدیریت پروژه و تست کد در پایتون درس ۱۰ مقدماتی: مدیریت پروژه و تست کد در پایتون 📅 ۱۴۰۴/۰۸/۱۸ ✍️ سجاد ⌛ 5 دقیقه مطالعه 👁️ 16 پایتون | Python مقدماتی 🗨️ 🤍 1 📤 0% ‹ بستن لیست دروس بازکردن لیست دروس پایتون | Python مقدماتی ▾ تا حالا شده بخوای کدت رو تمیز، مرتب و قابلاعتماد نگه داری؟ 🛠️ مدیریت پروژه و تست کد بهت کمک میکنه برنامههات رو حرفهای سازماندهی کنی و مطمئن بشی درست کار میکنن. تو این درس، من بهت یاد میدم چطور پروژههات رو ساختاردهی کنی، با pytest کدت رو تست کنی و وابستگیها رو با pip مدیریت کنی. برای مثال، تو میتونی یه تابع رو تست کنی تا مطمئن بشی همیشه جواب درست میده. بنابراین، اگر درسهای ۱ تا ۹ (متغیرها، شرطها، حلقهها، دادهساختارها، توابع، فایلها، ماژولها، شیءگرایی و APIها) رو یاد گرفتی، حالا آمادهای که کدت رو به سطح حرفهای برسونی! 🚀 با مثالهای واقعی، جداول مقایسه، ۱۲ تمرین و یه پروژه جذاب، این درس بهت کمک میکنه پروژههای قوی بسازی. بریم شروع کنیم! 🎉 مدیریت پروژه چیه و چرا مهمه؟ 🗂️ مدیریت پروژه یعنی سازماندهی فایلها، ماژولها و وابستگیها تا کدت خوانا و قابلنگهداری باشه. برای مثال، تو میتونی فایلهای کدت رو توی پوشههای مرتب نگه داری. علاوه بر این، مدیریت پروژه این مزایا رو داره: نظم: تو کدت رو راحتتر پیدا میکنی و تغییر میدی. همکاری: بقیه راحتتر با کدت کار میکنن. مقیاسپذیری: پروژههای بزرگ رو بهتر مدیریت میکنی. به همین دلیل، مدیریت پروژه برای برنامهنویسان ضروریه. بیا یه ساختار نمونه ببینیم: کپی project/ ├── main.py ├── utils/ │ ├── __init__.py │ ├── helpers.py ├── tests/ │ ├── __init__.py │ ├── test_helpers.py ├── requirements.txt بنابراین، تو با این ساختار کدت رو مرتب نگه میداری. تست کد با pytest 🧪 ماژول pytest به تو کمک میکنه کدت رو تست کنی تا مطمئن بشی درست کار میکنه. برای مثال، بیا یه تابع ساده رو تست کنیم: کپی # helpers.py def add(a, b): return a + b # test_helpers.py def test_add(): assert add(2, 3) == 5 assert add(-1, 1) == 0 تو میتونی با دستور pytest تستها رو اجرا کنی: کپیpytest tests/test_helpers.py به علاوه، pytest خطاها رو نشون میده تا بتونی اصلاحشون کنی. 💡 نکته: اول pip install pytest رو اجرا کن. مدیریت وابستگیها با pip 📦 تو میتونی با pip کتابخانهها (مثل requests) رو نصب کنی و وابستگیها رو توی requirements.txt ذخیره کنی. برای مثال: کپی # requirements.txt requests==2.31.0 pytest==7.4.0 تو میتونی با این دستور وابستگیها رو نصب کنی: کپیpip install -r requirements.txt علاوه بر این، تو میتونی وابستگیها رو با pip freeze > requirements.txt ذخیره کنی. ترکیب با درسهای قبلی: تست و پایگاه داده 🔄 برای مثال، تو میتونی یه کلاس پایگاه داده (درس ۸) رو تست کنی: کپی # db.py import sqlite3 class StudentDB: def __init__(self, db_name): self.conn = sqlite3.connect(db_name) self.cursor = self.conn.cursor() self.cursor.execute("CREATE TABLE IF NOT EXISTS students (name TEXT, grade REAL)") def add_student(self, name, grade): self.cursor.execute("INSERT INTO students (name, grade) VALUES (?, ?)", (name, grade)) self.conn.commit() # test_db.py from db import StudentDB def test_add_student(): db = StudentDB(":memory:") db.add_student("علی", 15.5) db.cursor.execute("SELECT * FROM students") assert db.cursor.fetchone() == ("علی", 15.5) بنابراین، تو با تست درسهای قبلی (مثل پایگاه داده) رو قویتر میکنی. مثالهای عملی: دنیای واقعی 💡 برای مثال، بیا چند برنامه کاربردی بسازیم: ۱. تست تابع ریاضی: کپی # math_utils.py def square(num): return num * num # test_math_utils.py def test_square(): assert square(3) == 9 assert square(-2) == 4 ۲. مدیریت پروژه با API: کپی # main.py import requests def fetch_data(): response = requests.get("https://jsonplaceholder.typicode.com/posts/1") return response.json()['title'] # test_main.py def test_fetch_data(): assert isinstance(fetch_data(), str) ۳. ذخیره ساختار پروژه: کپی # setup_project.py import os def create_project_structure(): os.makedirs("project/tests", exist_ok=True) with open("project/requirements.txt", "w") as f: f.write("requests==2.31.0\npytest==7.4.0") create_project_structure() به همین دلیل، این مثالها درسهای قبلی (مثل ماژولها و API) رو با مدیریت پروژه ترکیب میکنن. کدها رو توی lesson10_examples.py ذخیره کن. خطاهای رایج و راهحلها ⚠️ به طور کلی، این خطاها تو مدیریت پروژه و تست شایعن: خطا علت راهحل ModuleNotFoundError کتابخانه نصب نشده تو باید pip install نام_کتابخانه رو اجرا کنی AssertionError تست ناموفق تو باید کد یا تست رو با print بررسی کنی FileNotFoundError مسیر فایل اشتباهه تو باید مسیر رو با os.getcwd() چک کنی برای مثال: کپی # test_example.py def test_wrong(): assert 1 + 1 == 3 # خطا: AssertionError # حل: assert 1 + 1 == 2 تمرینها: مهارتت رو تست کن! 📝 برای تسلط، این ۱۲ تمرین رو حل کن: یه تابع بنویس و با pytest تستش کن. یه ساختار پروژه با پوشههای tests و utils بساز. یه فایل requirements.txt با چند کتابخانه بساز. یه کلاس پایگاه داده بنویس و تستش کن. یه تابع API بنویس و خروجیش رو تست کن. یه برنامه بنویس که خطای تست رو مدیریت کنه. یه تابع ریاضی بنویس و با چند تست بررسیش کن. یه پروژه با حداقل ۳ فایل پایتون بساز. یه کلاس بنویس که یه لیست رو مدیریت کنه و تستش کن. یه برنامه بنویس که وابستگیها رو نصب کنه. یه تابع بنویس که یه فایل رو بخونه و تستش کن. یه پروژه بنویس که API و پایگاه داده رو ترکیب کنه و تستش کن. 💡 نکته: هر تمرین رو توی فایل جدا (ex1.py، ex2.py) ذخیره کن. پروژه کوچک: سیستم تست کتابخانه 📚 برای مثال، بیا یه سیستم برای تست توابع کتابخانه بسازیم: یه تابع و تستش. ذخیره نتایج تست در فایل. نمایش نتایج. کپی # library.py def multiply(a, b): return a * b # test_library.py from library import multiply def test_multiply(): assert multiply(2, 3) == 6 assert multiply(-1, 5) == -5 # main.py import os def run_tests(): result = os.system("pytest test_library.py") with open("test_results.txt", "a") as f: f.write(f"نتیجه تست: {'موفق' if result == 0 else 'ناموفق'}\n") run_tests() 💡 تست کن: تستها رو اجرا کن و فایل test_results.txt رو چک کن. سؤالات متداول (FAQ) ❓ به طور کلی، این سؤالات برای مبتدیها رایجه: چرا باید تست بنویسم؟ چون تو رو مطمئن میکنه کدت درست کار میکنه. pytest چطور نصب میشه؟ تو باید pip install pytest رو اجرا کنی. چطور پروژه رو مرتب نگه دارم؟ تو باید از پوشهها و requirements.txt استفاده کنی. چطور خطای تست رو رفع کنم؟ تو باید خروجی pytest رو بررسی کنی. جمعبندی و قدم بعدی ⏭️ تبریک! 🚀 تو این درس یاد گرفتی چطور پروژههات رو مدیریت کنی و کدت رو تست کنی. بنابراین، حالا میتونی برنامههای حرفهای و قابلاعتماد بسازی. علاوه بر این، این درس تو رو برای سطح متوسط آماده کرد. درس بعدی (الگوریتمها و ساختارهای داده) بهت مفاهیم پیشرفتهتر رو یاد میده. در نهایت، تمرینها رو توی PythonLessons ذخیره کن و اگه دوست داشتی، توی GitHub آپلود کن تا پیشرفتت رو نشون بدی! 😎 کوییز مرتبط برای سنجش مهارت📝 کوییز درسهای ۶ تا ۱۰: مرور مفاهیم پیشرفته پایتون برای مبتدیهاسلام دوستان! 😄 بعد از یادگیری درسهای ۶ تا ۱۰ آموزش پایتون در sajjadasadi.ir، وقتشه با این کوییز ۳۰ سواله مهارتهاتون رو محک بزنید! 🚀 این کوییز شامل سوالات چهارگزینهای و جای خالی از ماژولها، شیءگرایی، پایگاه داده، APIها و تست کده. آمادهاید؟ بریم شروع کنیم! 🎉 برای شرکت در آزمون وارد شویدبرای دسترسی به این آزمون و مشاهده نتایج، باید وارد حساب کاربری خود شوید.ورود به سایت ← درس قبلی: درس ۹ مقدماتی: کار با APIها در پایتون برچسبها: pip پایتونpytestpytest پایتونpythonpython project managementبرنامهنویسی مبتدیپایتونتست کدمدیریت پروژه پایتون ارسال نظر جدید لغو پاسخ ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم.
تا حالا شده بخوای کدت رو تمیز، مرتب و قابلاعتماد نگه داری؟ 🛠️ مدیریت پروژه و تست کد بهت کمک میکنه برنامههات رو حرفهای سازماندهی کنی و مطمئن بشی درست کار میکنن. تو این درس، من بهت یاد میدم چطور پروژههات رو ساختاردهی کنی، با pytest کدت رو تست کنی و وابستگیها رو با pip مدیریت کنی. برای مثال، تو میتونی یه تابع رو تست کنی تا مطمئن بشی همیشه جواب درست میده. بنابراین، اگر درسهای ۱ تا ۹ (متغیرها، شرطها، حلقهها، دادهساختارها، توابع، فایلها، ماژولها، شیءگرایی و APIها) رو یاد گرفتی، حالا آمادهای که کدت رو به سطح حرفهای برسونی! 🚀 با مثالهای واقعی، جداول مقایسه، ۱۲ تمرین و یه پروژه جذاب، این درس بهت کمک میکنه پروژههای قوی بسازی. بریم شروع کنیم! 🎉 مدیریت پروژه چیه و چرا مهمه؟ 🗂️ مدیریت پروژه یعنی سازماندهی فایلها، ماژولها و وابستگیها تا کدت خوانا و قابلنگهداری باشه. برای مثال، تو میتونی فایلهای کدت رو توی پوشههای مرتب نگه داری. علاوه بر این، مدیریت پروژه این مزایا رو داره: نظم: تو کدت رو راحتتر پیدا میکنی و تغییر میدی. همکاری: بقیه راحتتر با کدت کار میکنن. مقیاسپذیری: پروژههای بزرگ رو بهتر مدیریت میکنی. به همین دلیل، مدیریت پروژه برای برنامهنویسان ضروریه. بیا یه ساختار نمونه ببینیم: کپی project/ ├── main.py ├── utils/ │ ├── __init__.py │ ├── helpers.py ├── tests/ │ ├── __init__.py │ ├── test_helpers.py ├── requirements.txt بنابراین، تو با این ساختار کدت رو مرتب نگه میداری. تست کد با pytest 🧪 ماژول pytest به تو کمک میکنه کدت رو تست کنی تا مطمئن بشی درست کار میکنه. برای مثال، بیا یه تابع ساده رو تست کنیم: کپی # helpers.py def add(a, b): return a + b # test_helpers.py def test_add(): assert add(2, 3) == 5 assert add(-1, 1) == 0 تو میتونی با دستور pytest تستها رو اجرا کنی: کپیpytest tests/test_helpers.py به علاوه، pytest خطاها رو نشون میده تا بتونی اصلاحشون کنی. 💡 نکته: اول pip install pytest رو اجرا کن. مدیریت وابستگیها با pip 📦 تو میتونی با pip کتابخانهها (مثل requests) رو نصب کنی و وابستگیها رو توی requirements.txt ذخیره کنی. برای مثال: کپی # requirements.txt requests==2.31.0 pytest==7.4.0 تو میتونی با این دستور وابستگیها رو نصب کنی: کپیpip install -r requirements.txt علاوه بر این، تو میتونی وابستگیها رو با pip freeze > requirements.txt ذخیره کنی. ترکیب با درسهای قبلی: تست و پایگاه داده 🔄 برای مثال، تو میتونی یه کلاس پایگاه داده (درس ۸) رو تست کنی: کپی # db.py import sqlite3 class StudentDB: def __init__(self, db_name): self.conn = sqlite3.connect(db_name) self.cursor = self.conn.cursor() self.cursor.execute("CREATE TABLE IF NOT EXISTS students (name TEXT, grade REAL)") def add_student(self, name, grade): self.cursor.execute("INSERT INTO students (name, grade) VALUES (?, ?)", (name, grade)) self.conn.commit() # test_db.py from db import StudentDB def test_add_student(): db = StudentDB(":memory:") db.add_student("علی", 15.5) db.cursor.execute("SELECT * FROM students") assert db.cursor.fetchone() == ("علی", 15.5) بنابراین، تو با تست درسهای قبلی (مثل پایگاه داده) رو قویتر میکنی. مثالهای عملی: دنیای واقعی 💡 برای مثال، بیا چند برنامه کاربردی بسازیم: ۱. تست تابع ریاضی: کپی # math_utils.py def square(num): return num * num # test_math_utils.py def test_square(): assert square(3) == 9 assert square(-2) == 4 ۲. مدیریت پروژه با API: کپی # main.py import requests def fetch_data(): response = requests.get("https://jsonplaceholder.typicode.com/posts/1") return response.json()['title'] # test_main.py def test_fetch_data(): assert isinstance(fetch_data(), str) ۳. ذخیره ساختار پروژه: کپی # setup_project.py import os def create_project_structure(): os.makedirs("project/tests", exist_ok=True) with open("project/requirements.txt", "w") as f: f.write("requests==2.31.0\npytest==7.4.0") create_project_structure() به همین دلیل، این مثالها درسهای قبلی (مثل ماژولها و API) رو با مدیریت پروژه ترکیب میکنن. کدها رو توی lesson10_examples.py ذخیره کن. خطاهای رایج و راهحلها ⚠️ به طور کلی، این خطاها تو مدیریت پروژه و تست شایعن: خطا علت راهحل ModuleNotFoundError کتابخانه نصب نشده تو باید pip install نام_کتابخانه رو اجرا کنی AssertionError تست ناموفق تو باید کد یا تست رو با print بررسی کنی FileNotFoundError مسیر فایل اشتباهه تو باید مسیر رو با os.getcwd() چک کنی برای مثال: کپی # test_example.py def test_wrong(): assert 1 + 1 == 3 # خطا: AssertionError # حل: assert 1 + 1 == 2 تمرینها: مهارتت رو تست کن! 📝 برای تسلط، این ۱۲ تمرین رو حل کن: یه تابع بنویس و با pytest تستش کن. یه ساختار پروژه با پوشههای tests و utils بساز. یه فایل requirements.txt با چند کتابخانه بساز. یه کلاس پایگاه داده بنویس و تستش کن. یه تابع API بنویس و خروجیش رو تست کن. یه برنامه بنویس که خطای تست رو مدیریت کنه. یه تابع ریاضی بنویس و با چند تست بررسیش کن. یه پروژه با حداقل ۳ فایل پایتون بساز. یه کلاس بنویس که یه لیست رو مدیریت کنه و تستش کن. یه برنامه بنویس که وابستگیها رو نصب کنه. یه تابع بنویس که یه فایل رو بخونه و تستش کن. یه پروژه بنویس که API و پایگاه داده رو ترکیب کنه و تستش کن. 💡 نکته: هر تمرین رو توی فایل جدا (ex1.py، ex2.py) ذخیره کن. پروژه کوچک: سیستم تست کتابخانه 📚 برای مثال، بیا یه سیستم برای تست توابع کتابخانه بسازیم: یه تابع و تستش. ذخیره نتایج تست در فایل. نمایش نتایج. کپی # library.py def multiply(a, b): return a * b # test_library.py from library import multiply def test_multiply(): assert multiply(2, 3) == 6 assert multiply(-1, 5) == -5 # main.py import os def run_tests(): result = os.system("pytest test_library.py") with open("test_results.txt", "a") as f: f.write(f"نتیجه تست: {'موفق' if result == 0 else 'ناموفق'}\n") run_tests() 💡 تست کن: تستها رو اجرا کن و فایل test_results.txt رو چک کن. سؤالات متداول (FAQ) ❓ به طور کلی، این سؤالات برای مبتدیها رایجه: چرا باید تست بنویسم؟ چون تو رو مطمئن میکنه کدت درست کار میکنه. pytest چطور نصب میشه؟ تو باید pip install pytest رو اجرا کنی. چطور پروژه رو مرتب نگه دارم؟ تو باید از پوشهها و requirements.txt استفاده کنی. چطور خطای تست رو رفع کنم؟ تو باید خروجی pytest رو بررسی کنی. جمعبندی و قدم بعدی ⏭️ تبریک! 🚀 تو این درس یاد گرفتی چطور پروژههات رو مدیریت کنی و کدت رو تست کنی. بنابراین، حالا میتونی برنامههای حرفهای و قابلاعتماد بسازی. علاوه بر این، این درس تو رو برای سطح متوسط آماده کرد. درس بعدی (الگوریتمها و ساختارهای داده) بهت مفاهیم پیشرفتهتر رو یاد میده. در نهایت، تمرینها رو توی PythonLessons ذخیره کن و اگه دوست داشتی، توی GitHub آپلود کن تا پیشرفتت رو نشون بدی! 😎 کوییز مرتبط برای سنجش مهارت📝 کوییز درسهای ۶ تا ۱۰: مرور مفاهیم پیشرفته پایتون برای مبتدیهاسلام دوستان! 😄 بعد از یادگیری درسهای ۶ تا ۱۰ آموزش پایتون در sajjadasadi.ir، وقتشه با این کوییز ۳۰ سواله مهارتهاتون رو محک بزنید! 🚀 این کوییز شامل سوالات چهارگزینهای و جای خالی از ماژولها، شیءگرایی، پایگاه داده، APIها و تست کده. آمادهاید؟ بریم شروع کنیم! 🎉 برای شرکت در آزمون وارد شویدبرای دسترسی به این آزمون و مشاهده نتایج، باید وارد حساب کاربری خود شوید.ورود به سایت ← درس قبلی: درس ۹ مقدماتی: کار با APIها در پایتون برچسبها: pip پایتونpytestpytest پایتونpythonpython project managementبرنامهنویسی مبتدیپایتونتست کدمدیریت پروژه پایتون