Architecture Decision Record

Active theme: Light

← مثال‌های رکورد تصمیم

رکورد تصمیم معماری برای چارچوب Python Django

تاریخ تصمیم: 2021-07-15

وضعیت: پذیرفته‌شده

زمینه

سازمان ما برنامه‌ریزی می‌کند یک برنامهٔ وب برای مدیریت داده‌های مشتریان توسعه دهد. Python را به‌عنوان زبان برنامه‌نویسی انتخاب کرده‌ایم و Django را به‌عنوان چارچوب وب برای توسعهٔ برنامه بررسی می‌کنیم.

تصمیم

تصمیم گرفته‌ایم برای توسعهٔ برنامهٔ وب از چارچوب وب Django استفاده کنیم. Django مجموعهٔ قدرتمندی از ابزارها و ویژگی‌ها برای ساخت سریع و کارآمد برنامه‌های وب فراهم می‌کند.

عوامل

برخی عواملی که بر تصمیم ما اثر گذاشتند:

  1. نگاشت شیءگرا-رابطه‌ای (ORM): Django یک ORM داخلی دارد که به ما اجازه می‌دهد بدون نوشتن پرس‌وجوهای SQL با پایگاه داده تعامل کنیم. این کار توسعهٔ برنامه و نگهداری آن را در بلندمدت آسان‌تر می‌کند.

  2. چارچوب MVC: Django از معماری مدل-نما-کنترلگر (MVC) پیروی می‌کند و جداسازی منطق کسب‌وکار و لایه‌های ارائهٔ برنامه را آسان‌تر می‌کند.

  3. مقیاس‌پذیری: Django به قابلیت‌های مقیاس‌پذیری خود شناخته شده است و آن را برای توسعهٔ برنامه‌های بزرگ‌مقیاس انتخابی عالی می‌کند.

  4. امنیت: Django ویژگی‌های امنیتی داخلی دارد، مانند محافظت در برابر حملات وب رایج مانند اسکریپت‌نویسی بین‌سایتی (XSS) و تزریق SQL.

  5. پشتیبانی جامعه: Django جامعه‌ای بزرگ و فعال دارد که پشتیبانی ارائه می‌دهد و در توسعهٔ چارچوب مشارکت می‌کند.

جایگزین‌های بررسی‌شده

چارچوب‌های وب دیگری مانند Flask و Pyramid را بررسی کردیم. با این حال، دریافتیم که Django چارچوبی بالغ‌تر و جاافتاده‌تر با مجموعهٔ قدرتمند ویژگی‌هاست.

همچنین دربارهٔ توسعهٔ برنامه بدون چارچوب وب و استفاده از کتابخانه‌هایی مانند SQLAlchemy و Flask-RESTful بحث کردیم. با این حال، دریافتیم که Django کارکرد گسترده‌تری ارائه می‌دهد و آن را برای یک برنامهٔ وب کامل انتخاب بهتری می‌کند.

پیامدها

اتخاذ Django پیامدهای زیر را در پی خواهد داشت:

  1. توسعه و نگهداری برنامه به دلیل ابزارها و ویژگی‌های داخلی Django آسان‌تر است.

  2. جداسازی منطق کسب‌وکار و لایهٔ ارائه، که به کدی سازمان‌یافته‌تر و آسان‌تر برای نگهداری منجر می‌شود.

  3. مقیاس‌پذیری و استحکام برنامه.

  4. ویژگی‌های امنیتی داخلی که به محافظت از برنامه در برابر حملات وب رایج کمک می‌کنند.

  5. دسترسی به جامعه‌ای بزرگ و فعال برای پشتیبانی.

می‌دانیم که Django منحنی یادگیری تندتری نسبت به چارچوب‌های دیگر دارد، اما فکر می‌کنیم برای مزایای بلندمدتی که فراهم می‌کند ارزش سرمایه‌گذاری دارد.

نتیجه‌گیری

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