جنگو چیست؟
11 دی 1402
14 دقیقه مطالعه

طبق نظرسنجی سالیانه StackOverFlow، پایتون به عنوان دومین زبان برنامهنویسی محبوب در جهان شناخته میشود. استفاده از این زبان به دلیل همه منظوره بودن آن، در هرجایی امکان پذیر است. اگر قصد توسعه وبسایت با استفاده از پایتون را دارید، باید به فکر استفاده از یک فریمورک قدرتمند برای این کار باشید. فلسک و جنگو، دو مورد از بهترین فریمورکهای پایتون برای توسعه وب هستند. در ادامه در آکادمی سبزلرن به سوالاتی نظیر جنگو چیست؟ چرا باید از جنگو استفاده کنیم؟ و چه شرکتهایی از جنگو استفاده میکنند، پاسخ خواهیم داد.
در قدم اول، بهتر است با مفهوم فریمورک آشنا شویم.
اصولا برنامه نویسها، افراد تنبلی هستند. آنها همیشه به دنبال راههای سریعتر برای توسعه پروژههای خود بوده و هستند. آنها همیشه سعی میکنند ابزارهایی برای کارهای مختلف ایجاد کنند که زمان کمتری از آنها بگیرد. مشخص نیست چه زمانی، چه روزی و در چه شرایطی، کدام برنامه نویس تنبل توانست کدها و ماژولهایی که نوشته بود را به شکل یک افزودنی به زبان برنامهنویسی درآورد و قواعد خاصی برای استفاده از آنها تعیین کند و نام آن را فریمورک بگذارد.
یک فریمورک، در واقع مجموعهای از قواعد، الگوهای طراحی، ماژولها و کتابخانههای کاربردی است که به آنها در توسعه سریعتر پروژهها کمک میکند. برخی از برنامه نویسها، کدهایی که یک بار نوشتهاند را بهصورت ماژول یا کتابخانه نگهداری میکنند. زمانی که تعداد ماژولها و کتابخانههایی با کاربرد مشابه یا نزدیک به یکدیگر زیاد شد، آنها را تبدیل به یک فریمورک کرده و در پروژههای خود، از آنها استفاده میکنند. البته همه اینطور نیستند!
یک فریمورک، امکان توسعه یک پروژه بدون کدنویسی از صفر را میدهد. درون هر فریمورک، کدهای آماده بسیاری در قالب کتابخانه یا ماژول وجود دارد که تنها کافیست برنامه نویس محترم آنها را فراخوانی و شخصی سازی کند. به همین سادگی، بخش قابل توجهی از پروژه بدون نیاز به نوشتن کد جلو میرود.
اکنون که با فریمورکها آشنا شدیم، میتوانیم به معرفی فریمورک جنگو بپردازیم.
حالا به بخش اصلی این مطلب رسیدیم. جنگو (DJango) یک فریمورک در زبان برنامهنویسی پایتون است که در توسعه وب کاربرد دارد. با استفاده از جنگو، میتوانید سایت موردنظر خود را به بهترین صورت پیادهسازی کنید. البته فراموش نکنید این فریمورک، یک فریمورک سمت سرور یا Back-end است و عملا هسته یک برنامه یا سایت با استفاده از از فریمورک ساخته میشود. جنگو سعی کرده به شعار معروف «Don't Repeat Yourself» یا همان «دوباره انجامش نده» عمل کرده و امکانات زیادی برای توسعه سریعتر پروژه و عدم انجام کارهای تکراری فراهم کرده است.
جنگو بهصورت متنباز ارائه شده و کاملا رایگان است. علاوه بر این، یک فریمورک سطح بالا محسوب میشود و کدهای آن، شبیه به زبان انگلیسی هستند. فریمورک Django از معماری MVT برای توسعه برنامهها و اپلیکیشنهای تحت وب استفاده میکند. قابلیت نگهداری کد بالا، مقیاس پذیری و پشتیبانی توسط توسعه دهندگان باتجربه، از جمله دلایلی هستند که توسعه دهندگان تازهکار را به یادگیری Django سوق میدهند.
فریمورک جنگو، در سال 2003 توسط دو توسعهدهنده به نامهای سایمون ویلسون و آدریان هالووتی که در روزنامه Lawrence Journal-World مشغول به کار بودند، ساخته شد. این دو توسعهدهنده، با توجه به مشکلاتی که در استفاده از زبان PHP داشتند، تصمیم به توسعه ابزاری برای توسعه سریعتر پروژههای خود گرفتند و برای این کار، زبان پایتون را انتخاب کردند. فرآیند توسعه فریمورک جنگو در همین سال به پایان رسید و رسما Django متولد شد.
تا سال 2005، جنگو به عنوان یک فریمورک داخلی در روزنامه Lawrence Journal-World مورداستفاده قرار میگرفت؛ تا اینکه این شرکت تصمیم به انتشار عمومی و رایگان این فریمورک گرفت. در این سال، این فریمورک تحت گواهی نرم افزارهای آزاد BSD بهصورت متنباز منتشر شد. در این سال، سایمون ویلسون از توسعه این فریمورک کنارهگیری کرد و شخص دیگری به نام جیکوب کاپلان ماس، جای او را در تیم پر کرد. در همین موقع، توجه برخی از سازمانها و شرکتها به این فریمورک جلب شد و بسیاری از این فریمورک استفاده کردند.
در سال 2008، یک سازمان غیرانتفاعی به نام Django Software Foundation تاسیس شد و مسئولیت توسعه و نگهداری از این فریمورک را برعهده گرفت. روند توسعه و نگهداری Django تا به امروز ادامهدار بوده و این فریمورک را تبدیل به یکی از محبوبترین فریمورکهای توسعه وب در سرتاسر جهان کرده است.
فریمورک Django دارای ویژگیهای متعددی است که امکان پرداخت به همه آنها در یک مقاله وجود ندارد. به همین دلیل، تصمیم گرفتیم برخی از مهمترین ویژگیهای این فریمورک پایتون را معرفی کنیم.
علاوه بر مواردی که در بخش ویژگیهای فریمورک Django گفته شد، موارد دیگری نیز وجود دارند که نمیتوان آنها را به عنوان یک ویژگی درنظر گرفت؛ اما مزیتهایی هستند که با استفاده از این فریمورک، میتوانید از آنها بهرهمند شوید.
هیچ چیز در دنیا بدون ایراد یا نقص نیست و همیشه در هرجایی، یک مشکل وجود دارد. به همین دلیل یک لیست از مشکلات و معایب استفاده از فریمورک جنگو در ادامه آمده است.
خب!
همانطور که قبلتر گفته شد، فریمورک جنگو از معماری MVT استفاده میکند. بهصورت کلی، برنامههایی نظیر برنامههای دسکتاپ و تحت وب که دارای رابط کاربری (User Interface) هستند، از یک مدل معماری نرم افزاری به نام MVC استفاده میکنند. MVC مخفف مدل (Model)، ویو یا نما (View) و کنترلر (Controller) است. در معماری MVT، به جای کنترلر با مفهومی به نام قالب یا Template طرف هستیم. در ادامه، این مفاهیم را به شکل خلاصه تشریح میکنیم.
از آنجایی که فریمورک جنگو، یکی از فریمورکهای پایتون است، یادگیری پایتون قبل از شروع آموزش Django الزامی است. همچنین باید به مباحثی نظیر:
در دنیا، شرکتهای کوچک و بزرگ زیادی وجود دارند که از فریمورک Django برای توسعه پروژههای خود استفاده میکنند.
از نظر درآمد، توسعه دهندگان جنگو در وضعیت بسیار خوبی قرار دارند. در ایران، توسعه دهندگان جنگو بسته به توانایی و تخصص خود، میتوانند بین 15 تا 40 میلیون تومان و بالاتر درآمد داشته باشند. حتی اگر بتوانید تبدیل به یک توسعه دهنده وب فول استک شوید، میتوانید درآمد بسیار بالاتری کسب کنید.
در کشورهای دیگر نیز بازارکار جنگو رو به رشد است و میزان درآمد توسعه دهندگان Django نسبت به بسیاری از حوزهها بیشتر است. در جدول زیر، میتوانید خلاصهای از وضعیت درآمد برنامه نویسان جنگو در سطوح مختلف در کشورهای خارجی که از سایت Glassdoor استخراج شده را مشاهده کنید.

فریمورک چیست؟
اصولا برنامه نویسها، افراد تنبلی هستند. آنها همیشه به دنبال راههای سریعتر برای توسعه پروژههای خود بوده و هستند. آنها همیشه سعی میکنند ابزارهایی برای کارهای مختلف ایجاد کنند که زمان کمتری از آنها بگیرد. مشخص نیست چه زمانی، چه روزی و در چه شرایطی، کدام برنامه نویس تنبل توانست کدها و ماژولهایی که نوشته بود را به شکل یک افزودنی به زبان برنامهنویسی درآورد و قواعد خاصی برای استفاده از آنها تعیین کند و نام آن را فریمورک بگذارد.
یک فریمورک، در واقع مجموعهای از قواعد، الگوهای طراحی، ماژولها و کتابخانههای کاربردی است که به آنها در توسعه سریعتر پروژهها کمک میکند. برخی از برنامه نویسها، کدهایی که یک بار نوشتهاند را بهصورت ماژول یا کتابخانه نگهداری میکنند. زمانی که تعداد ماژولها و کتابخانههایی با کاربرد مشابه یا نزدیک به یکدیگر زیاد شد، آنها را تبدیل به یک فریمورک کرده و در پروژههای خود، از آنها استفاده میکنند. البته همه اینطور نیستند!
یک فریمورک، امکان توسعه یک پروژه بدون کدنویسی از صفر را میدهد. درون هر فریمورک، کدهای آماده بسیاری در قالب کتابخانه یا ماژول وجود دارد که تنها کافیست برنامه نویس محترم آنها را فراخوانی و شخصی سازی کند. به همین سادگی، بخش قابل توجهی از پروژه بدون نیاز به نوشتن کد جلو میرود.
اکنون که با فریمورکها آشنا شدیم، میتوانیم به معرفی فریمورک جنگو بپردازیم.
فریمورک جنگو (Django) چیست؟
حالا به بخش اصلی این مطلب رسیدیم. جنگو (DJango) یک فریمورک در زبان برنامهنویسی پایتون است که در توسعه وب کاربرد دارد. با استفاده از جنگو، میتوانید سایت موردنظر خود را به بهترین صورت پیادهسازی کنید. البته فراموش نکنید این فریمورک، یک فریمورک سمت سرور یا Back-end است و عملا هسته یک برنامه یا سایت با استفاده از از فریمورک ساخته میشود. جنگو سعی کرده به شعار معروف «Don't Repeat Yourself» یا همان «دوباره انجامش نده» عمل کرده و امکانات زیادی برای توسعه سریعتر پروژه و عدم انجام کارهای تکراری فراهم کرده است.
جنگو بهصورت متنباز ارائه شده و کاملا رایگان است. علاوه بر این، یک فریمورک سطح بالا محسوب میشود و کدهای آن، شبیه به زبان انگلیسی هستند. فریمورک Django از معماری MVT برای توسعه برنامهها و اپلیکیشنهای تحت وب استفاده میکند. قابلیت نگهداری کد بالا، مقیاس پذیری و پشتیبانی توسط توسعه دهندگان باتجربه، از جمله دلایلی هستند که توسعه دهندگان تازهکار را به یادگیری Django سوق میدهند.
تاریخچه جنگو
فریمورک جنگو، در سال 2003 توسط دو توسعهدهنده به نامهای سایمون ویلسون و آدریان هالووتی که در روزنامه Lawrence Journal-World مشغول به کار بودند، ساخته شد. این دو توسعهدهنده، با توجه به مشکلاتی که در استفاده از زبان PHP داشتند، تصمیم به توسعه ابزاری برای توسعه سریعتر پروژههای خود گرفتند و برای این کار، زبان پایتون را انتخاب کردند. فرآیند توسعه فریمورک جنگو در همین سال به پایان رسید و رسما Django متولد شد.
تا سال 2005، جنگو به عنوان یک فریمورک داخلی در روزنامه Lawrence Journal-World مورداستفاده قرار میگرفت؛ تا اینکه این شرکت تصمیم به انتشار عمومی و رایگان این فریمورک گرفت. در این سال، این فریمورک تحت گواهی نرم افزارهای آزاد BSD بهصورت متنباز منتشر شد. در این سال، سایمون ویلسون از توسعه این فریمورک کنارهگیری کرد و شخص دیگری به نام جیکوب کاپلان ماس، جای او را در تیم پر کرد. در همین موقع، توجه برخی از سازمانها و شرکتها به این فریمورک جلب شد و بسیاری از این فریمورک استفاده کردند.
در سال 2008، یک سازمان غیرانتفاعی به نام Django Software Foundation تاسیس شد و مسئولیت توسعه و نگهداری از این فریمورک را برعهده گرفت. روند توسعه و نگهداری Django تا به امروز ادامهدار بوده و این فریمورک را تبدیل به یکی از محبوبترین فریمورکهای توسعه وب در سرتاسر جهان کرده است.
ویژگیهای جنگو چیست؟
فریمورک Django دارای ویژگیهای متعددی است که امکان پرداخت به همه آنها در یک مقاله وجود ندارد. به همین دلیل، تصمیم گرفتیم برخی از مهمترین ویژگیهای این فریمورک پایتون را معرفی کنیم.
-
استفاده از معماری MVT
-
امنیت
-
مقیاس پذیری
-
استفاده از ORM
-
سازگاری بالا با SEO
-
مبتنی بر کامپوننت
مزایای فریمورک جنگو
علاوه بر مواردی که در بخش ویژگیهای فریمورک Django گفته شد، موارد دیگری نیز وجود دارند که نمیتوان آنها را به عنوان یک ویژگی درنظر گرفت؛ اما مزیتهایی هستند که با استفاده از این فریمورک، میتوانید از آنها بهرهمند شوید.
-
جامعه بزرگ توسعه دهندگان
-
تنوع کتابخانهها
-
وجود مستندات آموزشی کامل
-
قابل حمل و کراس پلتفرم
-
پشتیبانی گسترده از انواع دیتابیسها
-
روند یادگیری ساده
معایب فریمورک جنگو
هیچ چیز در دنیا بدون ایراد یا نقص نیست و همیشه در هرجایی، یک مشکل وجود دارد. به همین دلیل یک لیست از مشکلات و معایب استفاده از فریمورک جنگو در ادامه آمده است.
- در پروژههای کوچک، ممکن است به مشکلاتی برخرود کنید که به دلیل پیچیدگیهای ناشی از مقیاس پذیری جنگو باشد. در کل، برای پروژههای کوچک، بهتر است از سایر روشها یا فریمورکها استفاده کنید.
- زمانی که بخواهید از میکروسرویسها در یک پروژه استفاده کنید، کار با جنگو کمی سخت میشود. البته این مشکل با استفاده از فریمورکهای دیگر و ادغام آنها با Django برطرف میشود.
- دیگر ایراد این فریمورک، این است که هیچ قاعده خاصی برای توسعه در اختیار برنامه نویس قرار نمیدهد. این مورد به تنهایی میتواند به عنوان یک مزیت درنظر گرفته شود؛ اما در حقیقت دست توسعه دهنده را بیش از حد باز میگذارد و ممکن است باعث سردرگمی او شود.
- برای استفاده از جنگو، باید مهارت و تسلط بالایی به مباحث پایتون و خود فریمورک جنگو داشته باشید. زیرا در بسیاری از موارد، پیچیدگیهایی در پروژه به وجود میآید که کار را برای توسعه دهندگان تازهکار، طاقتفرسا میکند.
- عدم وجود معماریهای دیگر، آخرین مورد از معایب جنگو در این لیست است. غیر از معماری MVT، امکان استفاده از معماری یا الگوی طراحی متفاوتی در فریمورک جنگو وجود ندارد. البته امکان پیادهسازی آنها وجود دارد که بسیار دشوار و زمانبر است.
معماری MVT در Django چیست؟
خب!
همانطور که قبلتر گفته شد، فریمورک جنگو از معماری MVT استفاده میکند. بهصورت کلی، برنامههایی نظیر برنامههای دسکتاپ و تحت وب که دارای رابط کاربری (User Interface) هستند، از یک مدل معماری نرم افزاری به نام MVC استفاده میکنند. MVC مخفف مدل (Model)، ویو یا نما (View) و کنترلر (Controller) است. در معماری MVT، به جای کنترلر با مفهومی به نام قالب یا Template طرف هستیم. در ادامه، این مفاهیم را به شکل خلاصه تشریح میکنیم.
منظور از Model در جنگو چیست؟
مدلها، در واقع بخشهایی از دیتابیس هستند که دادههای برنامه را در قالب یک مدل ذخیره میکنند. این کار به مرتبسازی و دسته بندی دادههای درون دیتابیس کمک میکند. برنامه نویس موظف است مدلها را ایجاد کند و با استفاده از ویو و تمپلیت، مدلها را روی یک URL نگاشته و در جای مناسب، فراخوانی کند.منظور از View در جنگو چیست؟
به زبان ساده، هر چیزی که کاربر در صفحه مشاهده میکند، با استفاده از نما یا View ساخته شده است. وظیفه ویو، دریافت درخواستهای کاربران و پردازش آنها است تا با این کار، بتواند Model مناسب را از دیتابیس فراخوانی و به کاربرد نمایش دهد. علاوه بر این، این مولفه وظیفه پر کردن تمپلیتها برای نمایش نتایج به کاربر را دارد.منظور از Template در Django چیست؟
منظور از قالب یا تمپلیت در جنگو، قالبهای نوشته شده به زبان HTML است که صفحات وب را ایجاد میکند. این بخش از معماری MVT میتواند شامل تگهایی به زبان Django بوده و امکان پیاده کردن فیلتر برای انجام عملیاتهای پیچیده را فراهم میکند.برای یادگیری جنگو، باید چه پیشنیازهایی داشته باشیم؟
از آنجایی که فریمورک جنگو، یکی از فریمورکهای پایتون است، یادگیری پایتون قبل از شروع آموزش Django الزامی است. همچنین باید به مباحثی نظیر:
- ساختار کدها و دادهها در پایتون
- مفاهیم OOP یا برنامهنویسی شیگرا
- مدیریت دیتابیس و دستورات SQL
- و JSON و API Rest
شرکتهایی که از Django استفاده میکنند
در دنیا، شرکتهای کوچک و بزرگ زیادی وجود دارند که از فریمورک Django برای توسعه پروژههای خود استفاده میکنند.
- نتفلیکس
- اینستاگرام
- یوتیوب
- اسپاتیفای
- پلتفرم Disqus
- دراپ باکس (DropBox)
- پینترست
- Udemy
- خبرگزاری واشینگتن پست
- سازمان فضایی ناسا
- شرکت بوئینگ
- Atlassian (سازنده برنامههای مدیریت پروژه و کار تیمی نظیر Trello)
- موزیلا (سازنده مرورگر فایرفاکس)
- سایت نشنال جئوگرافیک
وضعیت بازارکار جنگو چگونه است؟
از نظر درآمد، توسعه دهندگان جنگو در وضعیت بسیار خوبی قرار دارند. در ایران، توسعه دهندگان جنگو بسته به توانایی و تخصص خود، میتوانند بین 15 تا 40 میلیون تومان و بالاتر درآمد داشته باشند. حتی اگر بتوانید تبدیل به یک توسعه دهنده وب فول استک شوید، میتوانید درآمد بسیار بالاتری کسب کنید.
در کشورهای دیگر نیز بازارکار جنگو رو به رشد است و میزان درآمد توسعه دهندگان Django نسبت به بسیاری از حوزهها بیشتر است. در جدول زیر، میتوانید خلاصهای از وضعیت درآمد برنامه نویسان جنگو در سطوح مختلف در کشورهای خارجی که از سایت Glassdoor استخراج شده را مشاهده کنید.
| نام کشور | درآمد توسعه دهندگان جونیور | درآمد توسعه دهندگان سینیور |
| آمریکا | 59,000 دلار در سال | 150,000 دلار در سال |
| کانادا | 80,000 دلار در سال | 120,000 دلار در سال |
| آلمان | 40,000 دلار در سال | 78,000 دلار در سال |
| سوییس | 66,000 دلار در سال | 115,000 دلار در سال |
| انگلیس | 44,000 دلار در سال | 107,000 دلار در سال |
برای یادگیری جنگو از کجا شروع کنم؟
در این مطلب سعی کردیم به زبان ساده، شما را با فریمورک جنگو آشنا کرده و به سوالاتی نظیر جنگو چیست؟ چه ویژگیهایی دارد و کدام شرکتها از آن استفاده میکنند، پاسخ دهیم. در حال حاضر، بسیاری از شرکتها در حال استفاده از فریمورک هستند و موقعیتهای شغلی زیادی برای توسعه دهندگان مسلط به جنگو وجود دارد. اگر به یادگیری این فریمورک علاقمند شدهاید، خبر خوبی برای شما داریم! با توجه به تعدد دورههای آموزش جنگو در سطح اینترنت، یافتن یک دوره خوب کار سختی است. سختتر از آن، این است که بتوانید دورهای با تدریس مناسب و سرفصلهای کامل پیدا کنید! به همین دلیل، در آکادمی سبزلرن تصمیم به انتشار دوره متخصص Django گرفتیم! دورهای که مباحث آن از صفرِ مطلق آغاز شده و در ادامه، مباحث مختلف جنگو را به شما آموزش میدهد. برای تضمین کیفیت دوره، 40 درصد از محتوای دوره به صورت رایگان منتشر شده؛ بنابراین میتوانید از بخش قابل توجهی از دوره استفاده کنید و آن را با دیگر دورههای مطرح آموزش جنگو مقایسه کنید! این دوره شامل پشتیبانی تمام وقت هم هست تا شما یادگیری خودتان را با خیال به سرانجام برسونید پس فرصت را از دست ندهید و هرچه سریعتر، یادگیری خودتان را شروع کنید.
مقالات مرتبط
نظرات
برای ثبت نظر، لطفا وارد حساب کاربری خود شوید.
ورود یا عضویت
miladjani
1402/11/17توضییحات بسیار کامل و عالی بود باتشکر
محمدامین سعیدی رادخواننده
1402/11/18❤️❤️