جنگو , مسئله اینست ...

جنگو یکی از فریمورک های قدرتمند دنیای وب هست که طرفدار های زیادی هم داره اما مثل هر فریمورک و برنامه دیگه ای مزیت ها و معایب خاص خودش رو داره اگه تصمیم گرفتید که از جنگو استفاده کنید بهتره یه مقدار بیشتر فکر کنید و اگر هم تصمیم گرفتید استفاده نکنید بازم بهتره بیشتر فکر کنید... :) دوست دارم تجربه ۲ سال کارم با django و ورود به دنیای وبسایت ها با این فریمورک و خوبی ها و دردسراش رو درموردشون حرف بزنم . دوست دارم اول از بدیاش بگم بهتره تازه واردا سمتش نرن من خودم با جنگو شروع کردم دلیل اول اینکه جنگو با پایتون نوشته شده و پایتون یه زبان همه منظورس و مخصوص وب طراحی نشده در نتیجه برای برخی از کار ها دردسر های زیادی ایجاد میشه. به عنوان مثال آپلود فایل یادمه اون اول ها که داشتم جنگو رو یاد میگرفتم ۱ ماه روی این موضوع گیج بودم که فایل چطوری آپلود میشه بعدا که تو php یه برنامه کوچیک ساختم که به راحتی میشد فایل ها رو آپلود کرد خیلی تعجب کردم !! مگه داریم مگه میشه :Dیا باید وقت شروع کردن مفاهیمی مثل mvc و model ها و template ها یا ده ها مفهوم دیگه رو یاد بگیرن که این باعث زده شدنشون از فریمورک میشه در حالی که اینا اصلا تقصیر جنگو نیست اون ابزار ها دست یه آدم کار بلد یا کسی که قبلا یه وبسایت کوچیک با php زده خیلی کار ها میکنند اما واسه تازه واردا , فقط گیج کننده ان.واسه فریلنسری خوب نیست اره حرف تلخیه مخصوصا تو ایران اما درسته دلیل خوبیم داره پروژهای فریلنسری معمولا اونقدر بزرگ یا پیچیده نیست نیاز به توسعه برنامه های با ایده های جدید و راه حل های متفاوت نداره یا نیاز به مقیاس پذیری در آینده نداره درسته که معمولا سرعت تحویل پروژه براشون مهمه و جنگو هم برای راحتی و سرعت توسعه ساخته شده اما این سرعت رو با اون سرعت مد نظر فریلنسری اشتباه نگیرید جنگو سرعت خیلی زیادی در توسعه برنامه هایی با ویژگی و راه حل های جدید که قبلا وجود نداشتن و در ذهن شما خطور کرده رو داره برای ساختن پروژه های معمولی که قبلا نمونه هاش زیاد هست بهتره از وردپرس یا جومولا یا ... استفاده کنید با اون ها میتونید به نتایج سریعتر و حتی بهتر برسید .همچنین این پروژه ها معمولا بودجه کم یا متوسطی دارن جدا از این که اون وقت و انرژی که جنگو برای ساخت اونها از شما میگیره زیاده هزینه های نگهداری وبسایت های جنگو بیشتر از نمونه های مشابه شه دردسر اصلی تازه موقع آماده شدن برای نمایش عمومی ظاهر میشهنمیتونم از شدت استرسی که موقع انجام یه کانفیگ اشتباه رو nginx انجام دادم و کل سایت پایین اومد بهم وارد شد بگم مسئله جنگو نیست مسئله آماده کردن جنگو برای نشون دادن نبوغ و مهارت شما به دیگرانه یعنی همون کانفیگ های nginx و uWSGI یا Gunicorn و برنامه های دیگه که شما از اونها مجبورید استفاده کنید هست که بعضی وقتا گریه آدم رو در میاره درسته که gunicorn کانفیگاش راحت تر از uwsgi هست ولی واقعا نه اونقدر , این یکی دیگه از دلایلی هست که میگم نباید تازه واردا سمتش برن من با اینکه چند بار با uWSGI و nginx کار کردم هنوزم چیز زیادی در مورد اونها نمیدونم. همچنین بر خلاف جنگو منابع خوب و جالبی در مورد این ابزار ها زیاد نیست حداقل برای uWSGI که همین طوره و خود نویسنده document اصلی اون به این مسیله اعتراض میکنه. اگه بدنتون میخاره برای مسایل تکنیکی و کار کردن با برنامه های لینوکسی یه نگاه به document رسمی uWSGI بندازید :)))خوب دیگه بیخیال بدی هاش بشیم چون یکمی دلم پر بود زیاد نوشتم حالا بریم دنبال خوبیهاش سرعت توسعه بالاس در نتیجه برای استارتاپ ها خوبسرعت یکی از مسیله های مهم استارتاپ هاست اون ها معمولا رو ایده هایی کار میکنند که میخوان به روش خودشون و به شکل جدیدی حل بشه خب بهتون تبریک میگم جنگو واسه شما ساخته شده پایتون یه سینکس خیلی راحت و جالب داره و اگه قبلا تجربه ای داشته باشید به راحتی میتونید یه نمونه اولیه از اونچیزی که تو ذهنتونه بسازید این داستان که اینستاگرام تو ۸ هفته درسته شده ( نسخه اولیش ) واقعا میتونه اتفاق بیفته اگه شما جنگو رو بلد باشد یه جامعه فعال داره واقعا نشده تا الان دنبال کدی بگردم و یا مشکلی با جنگو پیش بیاد که کسی در موردش چیزی نپرسیده یا کد یا اپی براش وجود نداشته باشه جنگو واقعا یه جامعه فعال تو سراسر جهان داره هر چند تو ایران افراد کمی رو دیدم که ازش استفاده کنن (به نسبت بقیه فریمورک ها) ولی در بقیه دنیا افراد خیلی زیادی هستن و دارن باهاش کار میکنن و برنامه های قدرتمندی باهاش درست میکنندوقتی یادگرفتی که کارارو با دیدگاه جنگو پیش ببری تازه کارا راحت میشه اوایل کار زیاد روش کار کرد جنگو رو درک نمیکردم و فکر میکردم بیشتر ابزاری که تو اون استفاده میشن اضافی هستن و میشه بدون اون ها هم کار کرد البته درست فکر میکردم ولی این قسمتش رو یادم رفته بود که اون ابزار ها باعث راحت تر شدن کار ها میشه و دیگه نیاز نیست من چرخ رو دوباره بسازم این فلسفه اصلی جنگو هست که باعث میشه سرعت کار بالا تر بره و همه چیز سریع تر تموم بشهراستش اوایل من جنگو رو انتخاب کردم چون سرعتش نسبتا خوب هست و سرعت توسعش هم زیاده در مورد مورد دوم درست فکر میکردم اما تصورم از مورد اول اشتباه بود ( نه اینکه سرعتش کمه , تصور من اشتباه بود) سرعت برنامه رو پروژه تایین میکنه خیلی از پروژه ها نیازی به یه فریمورک خفن با سرعت فضایی نداره در واقعه هر چقدر به سرعت بیشتر نزدیک بشیم مجبوریم بودجمون رو افزایش بدیم و از سرعت توسعه کم کنیم و حتی سرعت توسعه هم فقط بستگی به فریمورک و زبانی که استفاده میکنید نداره عوامل دیگه ای مثل مهارت برنامه نویس ها و نحوه زمان بندی و تقسیم کار ها و حتی روحیه هم تاثیرات زیادی روی سرعت توسعه داره امیدوارم جالب باشه نظرتون رو دوست دارم بدونم