framework چیست؟
فریمورک (framework) واژهای آشنا و کاربردی در دنیای برنامهنویسی است. احتمالاً در برنامهنویسی نامش زیاد به گوشتان خورده است. در این مقاله از سوین هاست به سوال فریم ورک چیست؟ پاسخ میدهیم و به بررسی مزایا و معایب استفاده از آن میپردازیم.
فریم ورک چیست؟
فریمورک یک چهارچوب نرمافزاری است که توسعه دهنده (developer) آن را فراخوانی کرده و از آن استفاده میکند.
یک اسکلت ساختمان را در نظر بگیرید. اسکلتبندی کمک میکند که ساختمان در یک نظم مشخص و چهارچوب تعیین شده ساخته شود. فریمورکها هم دقیقاً همین نقش را دارند. آنها باعث میشوند که برنامهنویس در یک چهارچوب مشخص بهصورت منظم کدنویسی کند.
همچنین با فراخوانی این چهارچوب دیگر نیازی نیست هربار تمام کدهای موردنیاز و رایج را بنویسید. فقط کافی است روی کارکرد خود پروژه تمرکز کنید. در واقع فریمورکها، کدهای رایجی هستند که در هر پروژه مورد نیاز است. زمانی که به پروژه اضافه میشوند از چندباره نویسی بخشی از کدها هم جلوگیری میشود.
چرا باید از فریمورک استفاده کنیم؟
حالا که متوجه شدیم فریم ورک چیست؟ باید به دلایل استفاده از آن بپردازیم. مهمترین دلایلی که میتوان برای استفاده از آن نام برد عبارتانداز:
- کدها ایمنتر میشوند
- از دوباره نویسی جلوگیری میشود
- باگهای کدنویسی کاهش پیدا میکند
- تست و اشکالزدایی آسانتر میشود
- زمان لازم برای توسعه پروژه کاهش مییابد
انواع framework
حال که پاسخ سوال فریمورک چیست؟ را دریافت کردهاید بهتر است انواع آن را هم بشناسید.
به دلیل وابسته بودن ماهیت فریمورکها به زبانهای برنامهنویسی، میتوان گفت آنها را با توجه به زبانهای برنامهنویسی دستهبندی میکنند. میدانید که زبانهای برنامهنویسی در دو گروه front-end و back-end طبقه بندی میشوند.
فریمورکهای front-end برای طراحی ظاهر پروژه و سمت کاربر استفاده میشوند
برای مثال بوتاسترپ یک فریمورک رایگان و معروف برای CSS است که کمک میکند طراحی ریسپانسیو صفحات سایت به سادگی انجام پذیرد.
فریمورکهای back-endبرای کدنویسی سمت سرور به کمک توسعهدهنده میآیند. مثل فریمورک Laravel در زبان php.
فریم ورک های زبان برنامه نویسی Ruby
- Ruby on Rails
- Lotus
- Rack
- Sinatra
- Padrino
- Cuba
- Scorched
- Grape
فریم ورک های زبان برنامه نویسی Python
- Django
- Flask
- TurboGears
- Web2py
- Pyramid
- Bottle
ساختار MVC در فریمورک
عبارت MVC یا Model View Controller واژهای است که در هنگام کار کردن با فریم ورکها مورد استفاده قرار میگیرد. این عبارت شکلی خاص از ترکیب کدهای برنامهنویسی است. در این شکل از برنامهنویسی کدهای برنامه به سه بخش تقسیم میشوند. با تقسیم و طبقه بندی کدها، برنامه به صورت سه لایه مجزا از هم در میآید. در برنامه نویسی MVC بخش View وظیفهی نمایش اطلاعات به کاربر را بر عهده دارد. بخش Controller دریافت اطلاعات از کاربر و پردازش آن را به انجام میرساند. و بخش Model کار ذخیره و بازیابی اطلاعات را عملی میکند. اغلب فریمورکهای برنامهنویسی شامل ابزاری به نام ORM برای بهبود روش ارتباط با پایگاه داده هستند.
مزایا و معایب استفاده از فریمورک چیست؟
استفاده از framework هم مانند هر تکنولوژی دیگر معایب و مزایای مخصوص به خود را دارد که در ادامه به مهمترین آنها میپردازیم.
مزایای استفاده از framework
- کاهش زمان انجام پروژه: همانطور که گفته شد استفاده از فریمورک موجب صرفه جویی در زمان میشود.
- استفاده از توابع موجود: میتوان از توابع و متدهای موجود در فریمورکها استفاده کرد در حالی که نوشتن این توابع ممکن است روزها از ما وقت بگیرند.
- کاهش هزینههای اجرای پروژه: با توجه به دو علت قبل، میتوان دریافت که با کمک فریمورک هزینههای ساخت نرمافزار یا طراحی وبسایت کاهش مییابد.
- استاندارد شدن کدها: با استفاده از توابع و متدهای موجود در فریمورک می توان خاطرجمع بود که از کدهای استاندارد و نرمال استفاده کردهایم. زیرا فریمورکها توسط برنامهنویسهای بزرگ در سطح جهان نوشته شدهاند.
معایب استفاده از framework
- عدم درک عمق مفاهیم کدها: زمانی که از فریمورک استفاده میکنید، قطعاً جزییات کدهای توابع مورد استفاده، از دید شما دور میمانند. زمانی که شما صفر تا صد پروژه را خودتان کدنویسی کنید، با چالشهای بیشتری روبهرو خواهید بود که هرکدام برای شما درسی جدید محسوب میشود.
- تحمیل کدهای اضافی: در هر پروژه فقط بخشی از قابلیتها و کدهای فریمورک برای شما مورد استفاده قرار میگیرد. در واقع شما کدهایی که استفاده نمیکنید هم به پروژه خود اضافه کردهاید.
- احتیاج به صرف زمان جهت یادگیری: برای استفاده از هر فریمورک باید زمانی جهت یادگیری آن بگذارید تا بتوانید به بهترین نحو از آن استفاده کنید یا آن را شخصی سازی کنید.
انتخاب فریم ورک مناسب
انتخاب فریم ورک مناسب کار سختی است. چون هر وب سایتی نیازمند مشخصات و عناصر خاص خودش است و در حال حاضر بیشتر فریم ورک ها کارکرد مناسبی دارند و تفاوت چندانی بین آن ها نیست .با در نظر گرفتن سرعت بارگذاری و سهولت استفاده، راحتی فهم عملکرد آن، گزینه های ارائه شده، سازگاری با سیستم مورد استفاده، ارائه پشتیبانی بلند مدت بهتر، راحت تر می توان در مورد انتخاب فریم ورک تصمیم گرفت. الزاما استفاده از فریم ورک در طراحی سایت توصیه نمی شود. در واقع توسعه دهنده وب سایت است که نهایتا باید تصمیم بگیرد برای پیش برد کار و پیاده سازی طرح وب سایت از چه راه حل هایی استفاده کند.
نتیجه:
فریمورکها مجموعهای از کدها و کتابخانهها هستند که موجب میشوند سرعت کدنویسی افزایش یابد و کدها در چهارچوبی مشخص نوشته شوند. مزایای استفاده از آن به گونهای است که میتوان از معایب آن چشم پوشی کرد. در کل استفاده از فریمورک در برنامهنویسی بسیار رایج است و موجب میشود چرخ را از ابتدا اختراع نکنید!!
۴ پاسخ
باسلام
من برنامه نویس php هستم میخوام یه فریمورک شروع کنم شما کدومو توصیه میکنید؟ لاراول یا زند یا ….
بابت راهنماییتون ممنون
سلام وقت بخیر مونای عزیز
بستگی به نیاز شما داره. ولی خب اگر بخوایم بازار کارو در نظر بگیریم لاراول یکی از بهترین فریم ورک هاست برای یادگیری.
موفق باشید.
سلام بعد از طراحی سایت با ورد پرس آیا حتما نیار به فریم ورک هست ؟
سلام پارسای عزیز
استفاده از فریم ورک اجباری نیست.