نکاتی برای کار با فریمورک جنگو

Django logo
تصویر یاسر دهقان

یاسر دهقان

فریمورک جنگو یکی از فریمورک های معروف برای توسعه وبسایت می باشد که بر پایه زبان برنامه نویسی پایتون توسعه داده شده است. این فریمورک قابلیت های زیادی را در اختیار توسعه دهندگان قرار می دهد؛ این ویژگی ها به توسعه دهندگان کمک می کند که سریع تر پروژه های خودشان را توسعه بدهند. در این جا می خواهیم به مواردی اشاره کنیم که بهتر است در هنگام توسعه پروژه با فریمورک جنگو در نظر بگیرید.

 

استفاده از VirtualEnv و Docker برای ایزوله سازی

در توسعه پروژه‌های مختلف، استفاده از VirtualEnv به جای Python Global Environment توصیه می‌شود. دلیل این امر، ناتوانی پایتون در نصب چند نسخه متفاوت از یک پکیج است.

به عنوان مثال، فرض کنید شما دو پروژه دارید:

  • پروژه اول: از جنگو 3.2 استفاده می‌کند.
  • پروژه دوم: از جنگو 3 استفاده می‌کند.

در صورت عدم استفاده از VirtualEnv، برای توسعه هر پروژه باید مراحل زیر را انجام دهید:

  1. حذف پکیج‌های جنگو و سایر پکیج‌های مرتبط با پروژه قبلی
  2. نصب پکیج‌های جنگو و سایر پکیج‌های مرتبط با پروژه جدید

این کار می‌تواند زمان‌بر و طاقت‌فرسا باشد و همچنین خطر بروز خطا و ناسازگاری را افزایش می‌دهد.

VirtualEnv با ایجاد یک محیط مجازی و ایزوله، این مشکل را حل می‌کند. در این محیط، می‌توانید برای هر پروژه پکیج‌های مورد نظر آن را بدون تداخل با سایر پروژه‌ها نصب کنید.

علاوه بر VirtualEnv، ابزار Docker نیز برای ایزوله سازی در سطح بالاتر از پکیج‌های پایتون قابل استفاده است. Docker با ایجاد یک محیط مجازی کامل، شامل سیستم‌عامل و کتابخانه‌ها، امکان توسعه پروژه‌ها را در محیطی کاملاً ایزوله و مستقل فراهم می‌کند.

بیشتر بخوانید

Docker چیست؟

 

استفاده از قایل Requirements.txt

در پروژه‌های جنگو، استفاده از پکیج‌های مختلف پایتونی امری رایج است. برای سهولت در اشتراک‌گذاری پروژه‌ها با دیگران، می‌توان فهرستی از پکیج‌های استفاده‌شده را در فایلی با نام requirements.txt قرار داد. این کار مزایای متعددی دارد، از جمله:

  • کاهش زمان نصب و راه‌اندازی: با وجود requirements.txt، دیگر نیازی به جستجوی نام و نسخه پکیج‌ها و نصب آن‌ها به صورت دستی نیست.
  • ایجاد یک محیط قابل تکرار: با نصب پکیج‌ها از طریق requirements.txt، می‌توان اطمینان حاصل کرد که سایر افراد می‌توانند پروژه را با همان تنظیمات و وابستگی‌ها اجرا کنند.
  • مدیریت نسخه: requirements.txt به شما امکان می‌دهد تا نسخه‌های دقیق پکیج‌های مورد استفاده را مشخص کنید و از بروز مشکلات ناشی از ناسازگاری نسخه‌ها جلوگیری کنید.

 

مدل های جامع و ویو های مختصر (fat models, skinny views)

توصیه می‌شود که در هنگام توسعه پروژه در جنگو، مدل‌ها جامع و ویوها مختصر باشند. نوشتن منطق مربوط به مدل‌ها در کلاس مدل ها ، به جای نوشتن آن در ویوها، باعث می‌شود که کدها کمتر تکرار و یک بار نوشته شوند و تست آن ها راحت تر باشد.

مدل‌ها:

بزرگ و جامع: شامل تمام اطلاعات و منطق مرتبط با یک موجودیت خاص در برنامه شما باشند.

مسئولیت واحد: فقط به وظایف مربوط به داده‌ها و منطق مرتبط با آن موجودیت بپردازند.

مستقل: از سایر بخش‌های برنامه، به خصوص ویوها، جدا باشند.

ویوها:

کوچک و متمرکز: وظایف مشخص و محدودی را انجام ‌دهند و بر نحوه نمایش داده‌ها به کاربر تمرکز ‌کنند.

فاقد منطق مدل: از هرگونه منطق مربوط به مدل‌ها جدا باشند.

Django fat models
نمومه مدل های بزرگ جنگو

 

Django Coding Styles

جنگو مجموعه‌ای از قواعد coding style را برای توسعه پروژه‌های جنگو در مستندات خود ارائه می‌دهد. خواندن این مطلب و اطلاع داشتن ار آن مزایای متعددی به همراه دارد.

http://docs.djangoproject.com/en/3.2/internals/contributing/ writing-code/ coding-style<<<

 

Django Apps

در توسعه پروژه‌های جنگو، پرهیز از ساخت appهای حجیم و چندکاره، امری ضروری است. هر app باید به گونه‌ای طراحی شود که فقط یک کار را به انجام برساند. ایده‌آل این است که بتوانید خلاصه‌ای از عملکرد app را در یک جمله بیان کنید. در غیر این صورت، اگر برای توصیف app از کلمه “و” به دفعات استفاده می‌کنید، احتمالاً app شما بیش از حد بزرگ شده و نیاز به تفکیک به بخش‌های کوچکتر دارد.

مزایای تفکیک appها:

  • افزایش خوانایی و وضوح کد: با تفکیک وظایف به appهای مجزا، کد پروژه خواناتر و قابل فهم‌تر خواهد بود.
  • کاهش وابستگی‌ها: appهای کوچک‌تر وابستگی‌های کمتری به یکدیگر دارند، که این امر باعث افزایش پایداری و انعطاف‌پذیری پروژه می‌شود.
  • سهولت در تست و اشکال‌زدایی: تست و اشکال‌زدایی appهای کوچک‌تر آسان‌تر و سریع‌تر انجام می‌شود.
  • قابلیت نگهداری و توسعه: appهای کوچک‌تر به راحتی قابل نگهداری و توسعه هستند.

 

Python and Django Packages

یکی از بزرگترین نقاط قوت زبان برنامه‌نویسی پایتون، وجود جامعه‌ای بزرگ و فعال و همچنین پکیج‌های متنوع و کارآمد است. برنامه‌نویسان پایتون و به‌ویژه توسعه‌دهندگان جنگو، با استفاده از این پکیج‌ها می‌توانند در زمان و انرژی خود صرفه‌جویی کرده و به جای نوشتن کدهای مشابه از قبل نوشته شده، بر روی منطق اصلی پروژه خود تمرکز کنند.

مزایای استفاده از پکیج‌های پایتون در پروژه‌های جنگو:

  • صرفه‌جویی در زمان و انرژی: با استفاده از پکیج‌های آماده، نیازی به نوشتن کدهای مشابه از قبل نوشته شده نیست.
  • افزایش کیفیت کد: پکیج‌های پایتون توسط برنامه‌نویسان حرفه‌ای طراحی و تست شده‌اند و از کیفیت بالایی برخوردارند.
  • کاهش خطاها: استفاده از پکیج‌های تست‌شده، احتمال بروز خطا در کد را کاهش می‌دهد.

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

مطالب مرتبط

آشنایی با فریمورک جنگو

ارسال دیدگاه