فریم ورک اصلا چی هست؟

اگر با برنامه ‌نویسی نسبتا آشنایی داشته باشید حتما واژه‌ی فریم‌ ورک ( framework ) را بارها شنیده‌ اید و برایتان این سوال پیش آمده باشد که فریم ورک چیست و چه کاری انجام میدهد؟من میلاد فتحی در ادامه این آموزش همراه شما خواهم بود.میخواهیم در این مقاله به بررسی فریم ورک بپردازیم که بدانیم فریم ورک اصلا چی هست، چه کاری انجام میدهد و چه ویژگی هایی دارد.آشنایی با مفهوم Frameworkفریم ورک یا Framework به معنای چارچوب است که برای درک بهتر میتوانید به این مثال توجه کنید: فرض کنید ما یه عکس داریم که میخواهیم درون یک قاب عکس قرار بدهیم و بر زیبایی و کارایی عکس بیفزاییم حال برای اینکار باید طول و عرض این عکس را مطابق با قابی که در نظر گرفته ایم در بیاوریم چرا که اگر طول و عرض عکس از قاب بیشتر باشد یک نامنظمی زشتی ایجاد میشود که زیبایی عکس را از بین میبرد. بنابراین باید از یک چارچوب خاص که همان طول و عرض قاب است پیروی کنیم تا یک نظم و زیبایی بوجود بیاوریم. بنابراین در این جا میتوانیم بگوییم قاب یک فریم ورک است برای زیباتر نشان دادن عکس است.فریم ورک در برنامه نویسیفریم ورک‌‌ ها در واقع چارچوب‌های نرم افزاری هستند که شامل مجموعه ای از قوانین و کتابخانه‌ها هستند و کمک میکنند تا عملیات کدنویسی با نظم بیشتر و به بهترین شکل صورت گیرد؛ دیگر برنامه نویسان مجبور نیستند یک سری کد‌های تکراری را هر بار از اول بنویسند و به جای اینکار میتوانند انرژی و زمان خود را بیشتر به کدنویسی بخش‌های دیگر برنامه‌ای که در حال ایجاد آن هستند اختصاص دهند بنابراین کاملا میتوان متوجه شد که استفاده از فریم ورک سرعت انجام کار را نیز بالاتر میبرد.همانطور که وجود اسکلت در هر ساختمان باعث به وجود آمدن یک ساختار منظم و بهتری میشود فریم ورک‌ها هم همینکار را در ساخت یک برنامه انجام میدهند.چرا باید از فریم ورک استفاده کنیم؟امنیت بیشتروقتی بحث پایگاه داده میشود اولین موضوعی که در ذهن نقش میبندد بحث امنیت است با توجه به اینکه فریم ورک های معروف در زبان های مختلف توسط یک یا چند برنامه نویس قدرتمند ساخته شده و دائم در حال بروزرسانی است پس می توانیم اطمینان داشته باشیم که از قبل آنان به این مباحث پرداخته اند و راه های مقابله را بکار برده‌اند، البته پایگاه داده یک مثال بود جهت درک مسئله وگرنه آنان به شکل های مختلف حملات هکر‌ها آشنا و در تلاش برای ایجاد و تقویت راه های مقابله با هکر ها هستند.افزایش سرعت کدنویسییکی از مزایای استفاده از فریم ورک ها بالا بردن سرعت کدنویسی است چرا که دیگر لازم نیست وقت زیادی رو برای نوشتن کارهای اولیه و تکراری پروژه‌ها هدر بدهید به این دلیل که فریم ورک این کارها را برای شما انجام داده است و شما میتوانید به راحتی از آنها استفاده کنید.خوانا و تمیز بودن کدهابا توجه به اینکه ساختار اصلی اکثر فریم ورک ها بر اساس معماری MVC طراحی شده است و هر عملی با توجه به عملکرد خاص خود در جای مناسب نوشته میشود اینکار موجب تمیز و خوانا شدن کدها میگردد به صورتی که اگر بعد از مدتی برای توسعه کدها برگردید و یا شخص دیگری بخواهد آنرا توسعه بدهد خیلی سریعتر متوجه کدها میشود و کار را شروع میکند.ام وی سی یا MVC مخفف کلمات Model View Controller می باشد که در واقع یک معماری برنامه نویسی است که برنامه را به سه قسمت Model برای ارتباط با پایگاه داده، View رابط کاربری و نمای ظاهری برنامه، چیزی است که کاربر در هنگام تعامل با برنامه ما مشاهده می‌کند و Controller برای پردازش درخواست کاربران و ایجاد پل میان Model و Viewجلوگیری از تکرار و نوشتن بسیاری از توابع لازمیکی از ویژگی های هیجان انگیز فریم ورک ها آماده بودن تعداد زیادی از توابع لازم برای برنامه نویسی است به صورتی که میتوان در جاهای مختلف برنامه از آنها استفاده کرد که همین خود باعث جلوگیری از تکرار کدها (تمیز نگهداشتن کدها) و رعایت قانون DRY میشود و همچنین موجب بالا رفتن سرعت انجام پروژه میگردد.یکی از اساسی ترین قواعد برنامه نویسی قانون DRY است که مخفف جمله Don't Repeat Yourself می باشد و به معنای « دوباره کاری نکن » است، این قانون توسط دو برنامه نویس به نام های Andy Hunt و Dave Thomas ابداع شد که بسیاری از دیزاین پترن ها ریشه در این قانون دارند و باعث میشود اگر یک کار مشخص در قسمت های مختلف برنامه تکرار میگردد بحای اینکه در هر کدام از آن قسمت ها این کد را کپی کنید آنرا در یک کلاس یا تابع قرار دهید و به صورت یکپارچه از آن استفاده کنید که اینکار حتی ویرایش آن در زمات های بعدی را هم راحتتر میکند.معرفی تعدادی از فریم ورک ها در زبان های مختلففریم ورک های زبان برنامه نویسی PHPفریم ورک Laravelفریم ورک Phalconفریم ورک Symphonyفریم ورک Yiiفریم ورک CodeIgniterفریم ورک CakePHPفریم ورک های زبان برنامه نویسی جاوااسکریپتفریم ورک VueJsفریم ورک Reactفریم ورک Angularفریم ورک Emberفریم ورک های زبان برنامه نویسی جاوافریم ورک Springفریم ورک Hibernateفریم ورک Java EEفریم ورک Strutsفریم ورک های زبان برنامه نویسی پایتونفریم ورک Djangoفریم ورک Flaskفریم ورک TurboGearsفریم ورک Web2pyفریم ورک Pyramidنتیجه گیریو در نهایت متوجه شدیم که اگر بخواهیم به سوال فریم ورک چیست جواب بدهیم میتوانیم بگوییم فریم ورک ها یک چارچوب برای برنامه نویسان است که فرآیند برنامه نویسی را سریعتر و لذت بخش تر میکند، سرعت و دقت را بالا میبرد، امنیت برنامه را بیشتر میکند و به جای اتلاف وقت برای انجام کارهای اولیه و پیکربندی پروژه برنامه نویس میتواند بیشتر بر روی کدنویسی برنامه تمرکز کند به این ترتیب بازدهی و راندمان کار را بالاتر میبرد.امیدوارم با این مقاله به جواب سوال های خود رسیده باشید.من میلاد فتحی هستم و این اولین نوشته من در ویرگول بود.