نوشته شده توسط مهندس کلانتری
آدرس کوتاه: https://sitedar.com/?p=55
جنگو زمانی به بازار آمد که Rails با اولین موج حضور خود به سرعت پیش می رفت و جنگو پاسخی از سوی پایتون در آن زمان بود، و از آن روز به بعد توجه زیادی را به خود جلب کرده است. تا جایی که امروز یکی از مزیت ها یادگیری پایتون توانایی یافتن در استفاده از جنگو می باشد. خوب چطور امروز استارتاپ ها موضوع داغی هستند؟ چون هیچ وقت مثل امروز برنامه نویسی و توسعه برنامه های کاربردی تحت وب به این آسانی نبوده است. جنگو یکی از همین تکنولوژی ها است که به علت سادگی و توانایی هایش در بین توسعه دهندگان وب بسیار شهرت و محبوبیت یافته است و یکی از فریم ورک های مطرح برای طراحی سایت می باشد.
جنگو یک فریم ورک سطح بالا وب است که توسعه سریع و عملی برای یک طراحی تمیز را تشویق می کند. یک فریم ورک وب حاوی تمام ابزارها و مؤلفه هایی است که یک برنامه کاربردی به آن نیاز دارد. هدف در اینجا این است که به توسعه دهنده وب اجازه دهیم بجای پیاده سازی قسمت های تکراری در هر پروژه به روی قسمت های جدید و خاص هر پروژه تمرکز کند. و در حقیقت جنگو تقریبا یکی از کامل ترین فریم ها در این حوزه است. جنگو بسیار از کارهای خسته کننده در توسعه وب را بر عهده می گیرد و به ما اجازه می دهد که بر روی اپلیکیشن وب بیشتر تمرکز داشته بدون آنکه نیاز به اختراع دوباره چرخ داشته باشیم. به علاوه فریم ورک جنگو به شما اجازه می دهد دامنه و کلاس های کد را مدل کنید و بدون آنکه بدانید از ORM بهره ببرید. پس بیایید در این مقاله از دارکوب با دقت بیشتری به جنگو نگاه کنیم.
لیست مطالب
فریم ورک شما را در توسعه محصولی هماهنگ با قوانین کسب و کار و علایق کاربر کمک می کند. فریم ورک می تواند به شما در داشتن کد هایی که به راحتی به روز رسانی یا نگهداری می شوند کمک کند. و این باعث صرفه جویی زمان زیادی در توسعه پروژه می شود. در واقع اصول ساده فریم ورک این است که: دوباره چرخ را اختراع نکنیم، زمان خود را صرف کارهای پیش پا افتاده نکنیم و درک بهتری از قوانین کسب و کار را در برنامه کاربردی داشته باشیم.
انتخاب فریم ورک مناسب طول عمر برنامه شما را تضمین می کند و همچنین اطمینان می دهد که توسعه دهنده می تواند در آینده به راحتی به ارتقاء برنامه بپردازد، اصلاحات، تغییرات، تغییر پایگاه داده ها و غیره. در اینجا یک مرور کلی از مزایای اصلی استفاده از یک فریم ورک داریم:
امنیت: یک فریم ورک که مورد استفاده تعداد زیادی از مردم قرار می گیرد، دارای پیامدهای امنیتی بزرگی است. به طور معمول، یک جامعه بزرگ از توسعه دهندگان وجود دارد، برخی به بررسی حفره های امنیتی و رفع آنها اقدام می کنند و مسائل امنیتی به سرعت شناسایی و پاکسازی خواهند شد.
کارایی: کل پروسه توسعه برنامه و نرم افزار به راحتی آب خوردن می شود وقتی که شما دیگر نیازی به نوشتن کد برای همه چیز ندارید. توابع از قبل ساخته شده است که می تواند زمان و تلاش زیادی را ذخیره کند. یک بار در ساعت ها کار صدها خط کدها نوشته شده است و حالا استفاده از آن کار ساده ای است.
پشتیبانی: همانطور که قبلا ذکر شد، فریم ورک دارای پشتیبانی عالی جامعه community آن است. اگر شما اشتباه کنید، می توان آن را به راحتی پاک کرد. مستندات این فریم ورک ها نیز بسیار مفید است، و یافتن راه را حتی برای مبتدیان آسان می کند.
هزینه: تعدادی از فریم ورک های محبوب رایگان هستند، زیرا آنها متن باز هستند، و از آنجایی که کار توسعه دهنده را آسان تر می کند، کل پروژه در چارچوب زمانی خود پایان می یابد و منجر به رضایت مشتری می شود.
معمولا می شنوید که جنگو یکی از اولین فریم ورک هایی است که به یک آسیب پذیری پاسخ داده است. تیم هسته توسعه جنگو معمولا به سایر فریم ورک ها برای ارائه پچ اصطلاحی اطلاع می دهد. حرف های زیادی درباره پایداری جنگو گفته می شود. در حالی که کسی ادعا نمی کند که تمامی باگ ها کوچک جنگو حل شده است اما بیشتر آن ها رفع شده اند. امروز نیز بیشتر ریلیز های آن بر امکانات بیشتر و به روز توجه دارد.
جامعه جنگو مانند پایتون در بسیاری بسته ها و ابزارها بر استفاده جهانی مشارکت دارد. مثلا جنگو را در PyPI تایپ کنید، آنگاه به بیش از 4000 بسته قابل استفاده در اختیار شما قرار می دهد و تقریبا هر چه بخواهید این فریم ورک در اختیار شما قرار می دهد.
پایتون و جنگو نسبت به Rail و Node بی سر و صدا تر هستند، که هر دو توسط کاربران بزرگ آنها تبلیغ می شوند. البته به این معنا نیست که نام های بزرگ از جنگو استفاده نمی کنند. بسیار از وب سایت های بزرگ و قدرتمند مانند اینستاگرام، فیسبوک، پرینتست در پشت صحنه از جنگو استفاده می کنند. و از آنجایی که جنگو پیشینه انتشاری دارد عجیب نیست که توسط وب سایت هایی مانند واشنگتن پست و مجله اسمیت سونیان استفاده شود.
جنگو از همان ابتدا با مستنداتی بهتر از استاندارد و معمول برای پروژه های متن باز پا به دنیا گذاشت و در طی زمان نیز بهتر شد. در اولین حضور خود مستندات خوبش باعث شده که از سایرین جدا شود. بیشتر فریم ورک ها در آن زمان از لیست های الفبایی ماجول ها، متد ها و خصوصیت ها استفاده نمی کردند. اما به استفاده سایر فریم ورک ها و توسعه بهتر مستندات دیگر این ویژگی به راحتی به چشم نمی خورد. اما هنوز هم جنگو یکی از بهترین مستندات را داشته و بخوبی نیز نگهداری می شود.
همیشه گفته می شود که جامعه (Community) پایتون یکی از بهترین جنبه های استفاده از آن است و این نکته برای جنگو هم صادق است. جنگو توسط Django Software Foundation یا DSF مدیریت می شود. هر Event در جنگو دارای یک Code of Conduct است. در حقیقت DSF اعلامیه ایی از تنوع انتشار داده است، و به طور رسمی برای اهداف این جامعه تلاش می کند. در میان سایر جامعه های موجود، IRC و لیست ایمیل ها اغلب نا خوشایند بوده یا مسموم می باشند. البته همیشه سیب های خرابی در هر جا وجود دارد اما در جنگو بلافاصله این مسئله مدیریت می شود.
توسعه دهندگان وب و سئو همیشه به طور کامل با هم موافق نیستند. کار های بهینه سازی برای موتورهای جستجو و طراحی بعضا با هم تداخل هدف دارند. اما در جنگو این موضوع برای شما کمتر مسئله ساز است. مهم تر از همه جنگوی پایتون از URL های قابل خواندن توسط انسان پشتیبانی می کند. که این نه تنها به سئو و موتورهای جستجو با استفاده از کلمات کلیدی در URL کمک می تواند بلکه از دید کاربر نیز بسیار مطلوب است. پس تیم سئو بسیار از توسعه دهندگان خشنود خواهند بود که دیگر URL یک سری عدد و کاراکتر بی معنی نیست بلکه خود حاوی محتوای با معنا می باشد.
خوشبختانه جنگو در مقیاس پذیری خوب است و به شما اجازه می دهد که کار را نه تنها با آن آغاز کنید بلکه اندازه کافی برای بزرگ شدن مقیاس پذیر است. جنگو ذاتا یک سری کامپوننت به هم متصل شده و آماده استفاده بطور پیش فرض است. در حالیکه این کامپوننت ها از هم جدا نشده اند به یکدیگر نیز وابسته نیستند. آن ها قابل جداسازی و جایگزینی برای زمانی هستند که شما نیاز به راه حلی اختصاصی تر دارید.
جنگو به طور پیش فرض از بسیاری از اشتباهات امنیتی متداول در مقایسه با PHP جلوگیری می کند. برای مثال جنگو کد های سایت را با تولید داینامیک صفحات وب در تمپلیت ها و ارسال اطلاعات به مرورگر اینترنتی از مشاهده شدن مستقیم در اینترنت مخفی یا استتار می کند.
لاراول به عنوان فریم ورک PHP برای برنامه ویسان حرفه ایی شناخته می شود. یک فریم ورک رایگان و متن باز است جایی که برنامه های کاربری در الگوی MVC ساخته می شوند. معماری Model-View-Controller همه چیز برای راه اندازی یک برنامه کاربردی خوب را دارد. این فریم ورک شما را در ساخت انواع مختلف وب سایت از CMS گرفته تا سایت های شبکه های اجتماعی و اخبار کمک می کند.
جنگو یک فریم ورک متن باز برای توسعه برنامه های کاربردی تحت وب با استفاده از پایتون است. این فریم ورک با کتابخانه ها، الگو ها و API مجهز شده است. هر گونه افزونه مورد نیاز جنگو نیز به راحتی توسط پلاگین ها در دسترس است. و بر مبنای فلسفه DRY یعنی عدم تکرار کار های توسعه داده شده است.
لاراول نیز همچنین یک فریم ورک متن باز رایگان برای برنامه نویسان حرفه ایی با یک syntax زیباست. هدف اصلی لاراول توسعه سریع و آسان برنامه با بهترین کد هاست. همچنین کارهایی مانند اعتبار سنجی، مسیر یابی، session و caching را بسیار آسان تر کرده است. بنابراین لاراول برای توسعه برنامه های کاربردی تحت وب بزرگ و پیچیده مناسب می باشد. از ویژگی های مهم لاراول expressive migration system و inversion of control containerو unit testing بخوبی یکپارچه شده است.
جنگو توسط برنامه نویسانی که Model View Template را دنبال می کنند در مقابل پیشنهاد می شود. اما لاراول برنامه نویسی OOP و MVC را دنبال می کند.
جنگو مانند پایتون بسیار ساده است، خواندن کد ها آسان بوده و فریم ورک نیز کار تازه کاران را ساده تر کرده است. اما لاراول ذاتی عمل می کند و از برنامه نویسی مدرن PHP، دیتابیس، Eloquent ORM Composer، بسته ها، REST و غیره را به شما آموزش خواهد داد. منابع یادگیری آن فراوان است و شما همیشه در حال یادگیری خواهید بود.
برنامه های وب باید بتواند امنیت خود را در محیط نا امن و پر تهدید اینترنت حفظ کنند. هکر ها و ربات های برنامه نویسی شده همیشه به دنبال آسیب زدن و یافتن حفره های امنیتی جدید هستند. در جنگ و نیز امنیت بسیار مورد توجه قرار گرفته و به توسعه دهندگان کمک می کند که از انجام اشتباهات متداول خودداری کنند. برای مثال SQL injection, cross-site scripting, cross-site request forgery و clickjacking.
امن سازی برنامه ها معمولا از طریق salted hashed passwords انجام می گیرد. لاراول معمولا مکانیزم هایی برای محافظت کاربران و جلوگیری از حملات XSS، SQL injection، مداخله گران میانی و کوکی های امن و غیره دارد. بنابراین امنیت در جنگو در سطحی بالاتر نسبت به لاراول انجام می شود.
در جنگو Routing می تواند اندکی دشوار باشد از آنجایی که ساختار درونی برای ایجاد API را ندارد. بنابراین شما باید اینکار را خود انجام دهید یا از Django REST framework استفاده کنید.
جنگو داری تعدادی مزایایی مانند login_required, require_POST و has_permission. یک برنامه مدیریتی وجود دارد که به شما کمک می کند تا به صورت خودکار یک سایت را ایجاد، مشاهده و تغییر یا حذف کنید. این موجب صرفه جویی در زمان در طول توسعه می شود.
فرریم ورک جنگو view class های پایه مناسب برای طیف وسیعی از برنامه ها را فراهم می کند. همچنین دارای سیستم caching برای کمک به ذخیره صفحات پویای شما است و شما نیاز به محاسبه آن در زمان نیاز ندارید. این می تواند خروجی یک نمایه خاص، بخشی از قالب یا یک کل سایت باشد.
این فریم ورک باعث می شود تا مکانیزم های برنامه ای برای اعلام، ارائه و اعتبار فرم ها در برابر مجموعه ای از قوانین فراهم می کنند. پشتیبانی middleware برای عملیات مشروط GET وجود دارد. جنگو دارای سیستم احراز هویت توسعه پذیر و رابط کاربری اداری پویا است.
Routing در لاراول بسیار ساده است و یک راه ساده برای ایجاد یک API وجود دارد. لاراول به object-relational mapper که به نام ORM شناخته می شود بسیار مفتخر است. اینها سطح بالایی از انتزاعی را در پایگاههای اطلاعاتی برای کمک به توسعه دهندگان به جای گذاشتن کد پایتون برای ایجاد، خواندن، اصلاح و حذف داده ها و طرح ها در پایگاه داده به کار می گیرند.
سایت لاراول می تواند چندین بار سریعتر پشتیبانی in-house را فراهم کند. لاراول از تعدادی backend cache پشتیبانی می کند، از جمله Redis وMemcached . همچنین پشتیبانی از SASL، گزینه ها و اتصالات مداوم را فراهم می کند.
مقایسه جنگو و لاراول تا حد زیادی مقایسه پایتون و PHP است و انتخاب شما بسته به نیاز های پروژه می تواند تغییر کند. هدف جنگو رساندن سریع ایده ها به مرحله تولید است و همچنین مسائل امنیتی را به طور اتوماتیک بر عهده می گیرد.
از سوی دیگر لاراول راه را به تازه کاران نیز نشان می دهد بخصوص در Routing. شما می توانید به راحتی برنامه های بزرگ را ساخته و تست نمایید. و مشکلات برنامه نویسان برای ساخت برنامه های مقیاس پذیر و امن با امکانات جدید از نسخه لاراول 5 به بعد رفع گردیده است.
اگر شما می خواهید برای انجام پروژه ایی از بین لاراول و جنگو یکی را انتخاب کنید لازم است به لیست جزئیات آن سری بزنید. مطمئنا با افزایش روز افزون این دو فریم ورک هر دو توانایی پاسخ گویی به نیاز های پروژه شما را خواهند داشت.