ساده ولی در مواردی، عذاب آور (نکاتی برای Django)

با توجه به دنیای امروز، تکنولوژی ها روز به روز در حال پیشرفتن. هر روزی که میگذره انتخاب های ما هم برای هر کاری سخت تر میشه. مثلا اگر قبلا میخواستیم برنامه نویسی وب رو یاد بگیریم ، کلا 4 چیز برای یادگیری بیشتر وجود نداشت. HTML, CSS, Javascript و یک زبون هم برای سمت سرور که فقط PHP وجود داشت (طبق اطلاعاتی که من دارم!!)اما الان دیگه خیلی فرق کرده، وقتی یه رو میخوای بالا بیاری، هزاران انتخاب وجود داره. برای بخش فرانت اندش باید از بین چندین و چند فریم ورک موجود برای فرانت اند، یکی رو انتخاب کنی. برای بک اند هم باید از بین چندین و چند انتخاب یکی رو انتخاب کنی و سایت رو با اون بنویسی. هر کدوم از این انتخاب ها یک ویژگی خاص خودشو داره که شما باید بر اساس نیازتون ببینین به کدوم ویژگی نیاز دارید. مثلا اگر برای بالاآوردن یک وبسایت زمان کافی ندارین ولی امنیت و کیفیتش خیلی واستون مهمه، پیشنهاد من جنگو هست. من برای شروع برنامه نویسی بک اندم از جنگو (Django) شروع کردم و میخوام تجربه ای که با اون داشتم رو با شما به اشتراک بزارم. ولی بزارین اول یه تاریخچه خودمونی از جنگو رو براتون بگم:جنگو سال ۲۰۰۳در حین ایجاد یک برنامه برای شرکت Lawrence Journal-World توسط Simon Willison و Adrian Holovaty ساخته شد. اسم جنگو ، از جنگو راینهارت نوازنده گیتار جاز گرفته شده. (که راستش نمیدونم چرا از ایشون این اسم رو گرفتن. اما اگر شما میدونید تو بخش کامنت ها بهم بگین.)جنگو سال ۲۰۰۵ تحت اجازه نامه بی اس دی منتشر شد و در دسترس عموم برنامه نویسان و توسعه دهنده ها قرار گرفت. توی سال ۲۰۰۸ هم بنیاد نرم افزاری Django Software Foundation یا به اختصار DSF برای توسعه جنگو شکل گرفت. این یه تاریخچه خیلی کلی از فریم ورک جنگو هستبزارین به چند تا از دلایل محبوبیت جنگو ی نگاهی بندازیم:فریم ورک جنگو یکی از فریم ورک های زبان پایتون هست که این خودش یکی از بزرگترین دلایل محبوبیت این فریم ورک محسوب میشه. پایتون زبان بسیار ساده و در عین حال قدرتمندی هست که جامعه توسعه دهندگانش به شدت بزرگه و روز به روزم داره به این جامعه اضافه میشه.اگر بخوام به زبون ساده بگم ، جنگو فریم ورکی هست که تقریبا همه چیز توش آمادس. شما فقط باید یادبگیرین از این چیزای ساده چجوری استفاده کنین و کنار هم بچینینشون تا بشه باهاشون کار کرد. واسه همین اکثر استارتاپ ها واسه شروع کارشون ، یکی از بزرگترین انتخاب هاشون جنگو هست. و اینکه جنگو یکی از بهترین انتخاب ها برای پروژه هایی هست که وقت توشون خیلی مهمه و شماهم وقت کمی دارین. چون یکی از چیزایی که شمارو ازش راحت میکنه ، پنل مدیریت هست. پنل مدیریت آماده یکی از ویژگی های بزرگ جنگو هست. ولی همین آماده بودن همه چیز، باعث دردسر ها و گاهی اعصاب خوردکنی های خیلی بدی میشه. میگین چرا؟؟ عرض میکنم خدمتتونجنگو چون همه چیز توش آمادس ، باعث میشه که انعطاف پذیری پایین ترین نسبت به بقیه فریم ورک های بک اند داشته باشه. مثلا پنل مدیریت خود جنگو ، شکل و شمایل خوبی نداره. ولی پدرتون رو در میاره اگر بخواین تغییرش بدین. یجورایی به جایی میرسونتون که کلا بیخیالش بشین. یکی از دلایلی که تیتر این مطلب رو گذاشتم "ساده ولی در مواردی، عذاب آور" واسه همین بود. ولی در عین اینکه عذاب آوره، به شدت فریم ورک لذت بخش و فوق العاده ای هست که باعث میشه شرکت های بزرگ هم به سمت این فریم ورک بیان. جنگو در عین سادگی به شدت قدرتمند، پرسرعت و ایمنه. ویژگی که باعث شده خیلی از سایت ها و وب اپ هایی که ما میشناسیم با این فریم ورک نوشته بشن. دو تا از بزرگترین شرکت هایی که دارن از جنگو استفاده میکنن برای بک اندشون یوتیوب و اسپاتیفای هستن. یوتیوب اوایل با PHP نوشته شده بود. ولی هرچی جلوتر میرفت به تعداد کاربرانش اضافه میشد و کم کم داشت سایتش کم میاورد. تا اینکه اومدن بک اند سایت رو بازنویسی کردن و به جای PHP از جنگو استفاده کردن!!جنگو فریم ورک خیلی خوبیه. اما به اوایل یادگیریش یکم اعصاب خورد کنه و بخاطر همین سختیه انعطاف پذیریش ممکنه خیلی اذیتتون کنه. اگر سایتی دارین که توی بالا آوردنش خیلی عجله دارین ، یا سایتی هست که تعداد بازدید کننده هاش خیلی بالاس و قدرت و سرعت خیلی واستون مهمه ، پیشنهاد میکنم جنگو رو انتخاب کنین. اما اگر هیچکدوم از اینها نیست، بنظرم بقیه گزینه ها مثل استفاده از زبون PHP یا بقیه فریم ورک ها و زبون ها رو روی میز انتخابتون داشته باشین :)