آموزش جنگو

اینجا خلاصه ای از نکات یادگیری فناوری اطلاعات بصورت کاربردی آموزش داده می شود

فریمورک جنگو چیست؟ بررسی ساختار ، معماری ، مدل ها و مزایای جنگو

جنگو چیستیا بهتر سوال کنیم فریمورک جنگو چیست؟ Django یک فریمورک با معماری MTV میباشد که برای ساخت اپلیکیشن‌های وب مورد استفاده قرار میگیرد. جنگو برنامه‌نویسان وب را قادر میسازد تا کدهای تمیز، کارآمد و قدرتمند بنویسند. علاوه بر اینکه در لیست محبوب‌ترین فریمورک‌های وب جهان حضور دارد، جنگو یکی از پر استفاده‌ترین تکنولوژیها برای توسعه وب میباشد. این فریمورک توسط اینستاگرام، یوتیوب، گوگل و حتی ناسا برای توسعه وبسایتشان بکار رفته است.

ساختار کاری جنگو به چه شکل است؟ معماری MVT

جنگو از معماری سه لایه MVT استفاده میکند که مخفف Model -View – Template میباشد. این معماری نوع تغییر داده شده MVC برای فریمورک جنگو بوده و به آن بسیار شبیه است. هنگامی که سرور جنگو، یک request (درخواست) دریافت میکند، مسیریاب URL آن request را به view مناسب هدایت میکند. سپس لایه view داده را از لایه model دریافت میکند و با استفاده از متدها و فانکشن‌هایی که در آن نوشته میشود، لایه template را پر میکند و آنرا به کاربر ارسال میکند.

معماری MVT در جنگو چیست؟

وقتی که در مورد برنامه‌های کاربردی که از واسط کاربری برخوردارند (برنامه‌های تحت وب یا Desktop) صحبت می‌شود، منظور معماری مدل-نمایش-کنترل‌گر یا MVC است. همانطور که از نام این معماری مشخص است، معماری MVC از سه مؤلفه اصلی یعنی «مدل» (Model)، «نمایش» (View) و «کنترل‌گر» (Controller) تشکیل شده است. معماری MVT، کمی متفاوت‌تر از معماری MVC است؛ در اصل، تفاوت بنیادی میان این دو معماری این است که در مدل MVT، کتابخانه Django مدیریت مؤلفه Controller را بر عهده می‌گیرد (مؤلفه Controller، کد نرم‌افزاری است که تعامل میان مؤلفه‌های Model و View را کنترل می‌کند).

بنابراین، در معماری MVT، از آنجایی که کتابخانه Django مدیریت مؤلفه Controller را برعهده می‌گیرد، مؤلفه Template شکل می‌گیرد. مؤلفه Template، یک فایل HTML است که با «زبان قالب جنگو» (Django Template Language | DTL) ترکیب شده است. دیاگرام زیر، نحوه تعامل مؤلفه‌های مختلف معماری MVT را با یکدیگر، جهت سرویس‌دهی به درخواست کاربر، نشان می‌دهد.

منظور از Model در جنگو چیست و چند مدل داریم؟

در فریمورک جنگو با استفاده از مدل قدرتمند و بسیار مفید ORM، انجام عملیات مختلف با دیتابیس بسیار ساده شده و پروسه توسعه تسریع یافته است. ORM مخفف Object-Relational-Mapping است و بدون آن، توسعه دهنده باید تمامی جداول را خودش ایجاد کند و برای انجام هرگونه عملیات با دیتابیس، کوئری مربوطه را باید خودش بنویسد که گاها این روند میتواند در پروژه‌های بزرگ بسیار پیچیده و کسل کننده باشد.

ORM به شما این امکان را میدهد تا تمامی کوئری‌های دیتابیس را با دستورات ساده پایتون اجرا کنید و همچنین متدهای آماده‌ای در آن برای پیاده‌سازی عملیات crud با دیتابیس تعبیه شدند. در حقیقت، برنامه‌نویس نیازی ندارد تا به تمامی روشهای پیچیده SQL را یکجا مسلط باشد.

برخلاف سایر فریمورک‌ها، تمامی مدلها در یک فایل به اسم models.py قرار میگیرند و همین مورد میتواند در روند توسعه پروژه‌های بزرگ بسیار مفید و کارآمد باشد. Django از دیتابیس‌های بسیاری پشتیبانی میکند. SQLite برای توسعه و تست کردن بسیار مناسب است چون هنگام نصب Django بصورت پیش فرض نصب میشود و نیازی به نصب برنامه خاصی نیست. برای Production میتوانید از MYSQL و PostgreSQL استفاده کنید و اگر میخواهید از NoSQL ها استفاده کنید، میتوانید از MongoDB با جنگو استفاده کنید.

منظور از Template در جنگو چیست؟

لایه template مشابه لایه view در معماری MVC است و هدف آن نمایش داده‌ و اطلاعات به کاربر بوده و در حقیقت منطق ظاهری برنامه (Display Logic) میباشد. اگر شما با templating در زبان‌ها و فریمورکهای دیگر از جمله لاراول آشنا باشید، تقریبا در جنگو هم به این شکل است. شما از یک سینتکس مشابه HTML استفاده میکنید که بعدا به HTML کامپایل میشود و شامل تمامی داده‌های مربوطه میباشد. البته که فرمت‌های غیر HTML هم وجود دارند، مثلا اگر خواستید میتوانید از سندهای XML یا فایلهای JSON و … استفاده کنید.

منظور از View در جنگو چیست؟

View در جنگو لایه بیزینس از معماری سه لایه MVT است. این لایه شامل فانکشن‌ها و متدهایی میشود که موجب دریافت و پردازش درخواست کاربر و ارسال نتیجه معتبر برای کاربر میشود. این لایه داده را از Model دریافت میکند و به هر کدام از template ها دسترسی به داده خاصی را میدهد.

 

مزایای استفاده از فریمورک جنگو چیست؟

  1. پشتیبانی از انواع کامپوننت‌ها : همچنین جنگو تقریباً برای هر عملکردی که بخواهید گزینه‌هایی را برای شما فراهم می‌کند (به عنوان مثال چندین پایگاه داده معروف، موتورهای templating و غیره)، همچنین می‌توان در صورت لزوم از سایر مولفه‌های مورد نیاز نیز استفاده کرد.

  2. مقیاس پذیر بودن :جنگو از معماری مبتنی بر مولفه “عدم اشتراک گذاری (shared-nothing)” استفاده می‌کند. بدین معنا که هر قسمت از معماری مستقل از قسمت‌های دیگر است و بنابراین می‌تواند در صورت لزوم جایگزین شده یا تغییر کند.

  3. امنیت : جنگو با ارائه یک فریمورک قدرتمند جهت محافظت خودکار از وب سایت طراحی شده است و به توسعه دهندگان کمک می‌کند تا از بسیاری از اشتباهات معمول امنیتی جلوگیری کنند. به عنوان مثال، جنگو یک روش ایمن برای مدیریت حساب‌های کاربری و رمزهای عبور کاربر، اجتناب از اشتباهات رایج مانند قرار دادن اطلاعات جلسه (Sessions) در کوکی‌ها و در جاهایی که آسیب پذیر میباشد یا ذخیره مستقیم رمزهای عبور به جای هش نمودن آنها و… فراهم می‌کند.همچنین جنگو به طور پیش فرض از بسیاری از آسیب پذیری‌ها نیز محافظت می‌کند، از جمله تزریق SQL، برنامه نویسی بین سایت، جعل درخواست بین سایت و کلیک کردن و… .

  4. امکان گسترش منابع : وجود یک تفکیک واضح بین قسمت‌های مختلف به این معنی است که می‌تواند با افزودن سخت افزار در هر سطح، افزایش سرورهای ذخیره، سرورهای پایگاه داده یا سرورهای برنامه، امکان افزایش تعداد بازدیدکنندگان و در نتیجه افزایش رتبه seo سایت را ایجاد کند. بسیاری از سایت‌های پرترافیک از جنگو استفاده کرده اند تا خواسته‌های آنها را برآورده کند (به عنوان مثال Instagram و Disqus و …).

  5. قابلیت ارتقا و نگهداری :کد جنگو با استفاده از اصول و الگوهای طراحی نوشته می‌شود که ایجاد کد قابل نگهداری ساده برای طولانی مدت و قابل استفاده مجدد را فراهم می‌کند. همچنین جنگو از اصول DRY یا Don’t Repeat Yourself استفاده می‌کند بنابراین هیچ کپی غیرضروری وجود ندارد، و میزان کدنویسی را کاهش می‌دهد. همچنین جنگو از فابلیت MVC نیز پشتیبانی می‌کند.

  6. پنل مدیریت :هنگام نصب برنامه، پنل مدیریت جنگو به طور خودکار نصب می‌شود. این باعث می‌شود که توسعه دهنده نیازی به ایجاد دستی پنل مدیریت نداشته باشد. با استفاده از برنامه‌های شخص ثالث، کنسول مدیریت پیش فرض جنگو می‌تواند بهبود یافته و متناسب با نیازهای پروژه شما سازگار شود. همچنین، این فریمورک به شما این امکان را می‌دهد که رابط کاربری پنل مدیریت پیش فرض را سفارشی کنید.

  7. این فریم ورک توسط افراد زیادی بررسی شده است :Python و Django نسبت به Rails و Node سر و صدای کمتری در دنیای برنامه نویسی دارند اما این بدان معنی نیست که افراد مشهور و نام های بزرگ از آن ها استفاده نمی کنند. Django سیستم راه اندازی سایت های بزرگی مثل Pinterest و اینستاگرام است و حتی فیسبوک از ابزار های آن بهره می برد. Django کار خود را در دنیای نشر آغاز کرده و طبیعتا نشریات معروف مثل واشنگتن پست و Smithonian از Django استفاده می کنند.

  8. مستندات زیادی برای فریم ورک Django موجود است :Django در شروع کار خود بیش از هر پروژه ی Open Source دیگری تحقیقات و مقالات ارائه شده دارد و این آمار در طول زمان بهتر و بیشتر هم شده است. در ابتدای ارائه‌ی این فریم ورک، همین مستندات موجود بود که این برنامه را خاص می‌کرد. بیشتر فریم ورک های دیگر، از یک سیستم الفبایی برای ارائه ماژول ها و ویژگی ها استفاده می کردند. این رویه برای رجوع سریع مناسب است اما در زمانی که شما به دنبال انجام کاری مفید باشید، کمکی به شما نمی کند. کیفیت مستندسازی در Django هم اکنون ویژگی خاصی نیست اما از بهترین ها در دنیای برنامه نویسی است. کیفیت فایل های گزارشی و مستندات برای برنامه نویس ها همیشه یک نگرانی بزرگ بوده است. این نوع از مستندات در Django از جایگاه بالایی برخوردارند.

  9. دسترسی کافی به Packageهای Django وجود دارد :جامعه ی Django، درست مثل جامعه یPython، ابزار ها و Package های زیادی برای کاربران فراهم کرده است. کلمه ی Django را در PyPI تایپ کنید و بیش از ۴۰۰۰ Package موجود برای کاربران در اختیار شما قرار خواهد گرفت. این فریم ورک تقریبا تمامی ویژگی ها و امکاناتی را که شما دنبال آن هستید را در خود جای داده است.

۰ ۰

7 سوال متداول در شروع برنامه نویسی که باید از خودتان بپرسید

۰ ۰

سی شارپ چیست؟ معرفی کامل C# به همراه مزایا ، معایب و کاربردها

سی شارپ چیست؟ زبان C# چه کاربردهایی دارد؟ آیا زبان سی شارپ برای شروع برنامه نویسی مناسب است؟ چه نوع برنامه هایی می توان با زبان سی شارپ نوشت؟ و سوالاتی از این دست در ذهن تمام افرادی که قصد شروع برنامه نویسی را دارند شکل میگیرد. در این مطلب میخواهیم به معرفی زبان سی شارپ بپردازیم و ببینیم که این زبان محبوب و قدرتمند چه قابلیت هایی در اختیار ما قرار میدهد و آیا می توان از این زبان به عنوان نقطه شروعی برای ورود به دنیای برنامه نویسی استفاده کرد؟جامع ترین آموزش برنامه نویسی سی شارپ کدام است ؟ پس با من تا انتهای این مطلب همراه باشید.

سی شارپ چیست

برنامه کامپیوتری چیست؟

قبل از اینکه به سراغ مبحث اصلی، یعنی پاسخ سی شارپ چیست برویم باید کمی با مفاهیم اولیه آشنا شویم؟ در اولین قدم به سوال برنامه کامپیوتری چیست پاسخ می دهیم. شما هر روز با برنامه های کامپیوتری سر و کار دارید. از گوشی های موبایل گرفته تا کامپیوترهای رومیزی و تبلت، همه این ها برای اینکه کاربردی باشند به مفهومی به نام برنامه کامپیوتری وابسته هستند.

سی شارپ چیست

برنامه کامپیوتری بر روی سیستم های کامپیوتری اجرا می شوند و هر کدام کاربردهای خاص خودشان را دارند. برای مثال، سیستم عامل اصلی ترین برنامه کامپیوتری است که شما در زمان روشن کردن یک کامپیوتر با آن مواجه می شوید، مثل سیستم عامل لینوکس، ویندوز، اندروید و ... سایر برنامه های کامپیوتری بر روی بستر سیستم عامل اجرا می شوند، مثل برنامه پخش آهنگ، برنامه ویراستار و ... کامپیوتر ها بدون برنامه کامپیوتری قابل استفاده نیستند، پس برنامه های کامپیوتری نقش مهمی در کامپیوتر ها ایفا می کنند.

برنامه نویس و برنامه نویسی چیست؟

برنامه نویسی به پروسه تولید یک برنامه کامپیوتری گفته می شود. پروسه برنامه نویسی یک پروسه پیچیده است که انجام آن نیاز به تجربه و کسب مهارت های زیادی دارد. برنامه مثال، یک برنامه پخش آهنگ را در نظر بگیرید. این برنامه توسط یک زبان برنامه نویسی تولید می شود و به پروسه تولید این برنامه، برنامه نویسی می گویند.

سی شارپ چیست

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

برای آشنایی بیشتر با مفاهیم اولیه برنامه نویسی مطلب کاملترین آموزش برنامه نویسی به صورت گام به گام را مطالعه کنید. همچنین برای شروع برنامه نویسی مطلب برنامه نویسی را از کجا شروع کنیم را مطالعه کنید تا به سوالات مهم شما در این زمینه پاسخ داده شود.

زبان سی شارپ چیست؟

رسیدیم به سوال اصلی سی شارپ چیست؟ در بخش قبلی با مفهوم برنامه نویس و برنامه نویسی آشنا شدیم و گفتیم که برنامه نویس برای نوشتن برنامه های کامپیوتری نیاز به یک زبان برنامه نویسی دارد. سی شارپ یک زبان برنامه نویسی است که به کمک آن می توان برای تولید انواع مختلفی از برنامه ها را تولید کرد.

برنامه هایی مانند برنامه های موبایل، برنامه های تحت وب، ویندوز و ... زبان سی شارپ ریشه در زبان سی دارد. زبان سی بوسیله دنیس ریچی در سال 1970 معرفی شد و تحولی در دنیای برنامه نویسی ایجاد کرد. امروزه بیشتر زبان های محبوب مانند سی شارپ، جاوا و جاوا اسکریپت ریشه در زبان سی دارند. یعنی دستوراتی که در این زبان ها استفاده می شود شباهت زیادی به زبان سی دارد.برای مطالعه ادامه این مقاله به منبع مراجعه کنید.

۰ ۰