تبلیغات

فریم ورک چیست؟ – Framework چیست؟ – چارچوب چیست؟!

فریم ورک

Framework (فریم ورک) در لغت به معنای «چارچوب» بوده و در معانی دیگری از جمله «کالبد»، «بدنه» و «استخوان‌بندی» نیز مورد استفاده قرار می‌گیرد.

در برنامه نویسی کامپیوتر، یک فریم ورک را می‌توان مجموعه‌ای از ابزارها، کتابخانه‌ها، قراردادها و بهترین شیوه‌ها تعریف کرد که برای یک یا چند زبان برنامه‌نویسی ایجاد شده و امکان برنامه نویسی را راحت‌تر می‌کند. همانند «دات نت فریم ورک مایکروسافت» که در محیط برنامه‌نویسی «ویژوال استودیو» برای زبان‌های برنامه‌نویسی «سی‌شارپ»، «بیسیک» و حتی «سی‌پلاس‌‍پلاس» در نظر گرفته شده است.

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

باید توجه داشت که الزامی نیست یک فریم‌ورک همیشه در اختیار عموم قرار بگیرد و شما می‌توانید برای خودتان فریم ورک اختصاصی طراحی کرده و به صورت شخصی از آن استفاده نمایید؛ یا در اختیار یک تیم (گروه) خاصی قرار دهید.

یکی از فریمورکهای عمومی، «.NET Framework» است که محصولی از شرکت مایکروسافت بوده و شامل هزاران کتابخانه‌‌‍‌ی کوچک، به همراه قواعد و ابزارهایی برای توسعه‌ی یک نرم‌افزار می‌باشد. و در واقع امکان توسعه را سریع‌تر کرده و نتیجه‌ی بهتری را برای برنامه‌نویس رقم می‌زند. یا فریم ورک « ماشین مجازی جاوا – JVM» که این امکان را می‌دهد تا برنامه‌ی توسعه داده شده در هر سیستم‌عاملی که این فریم ورک را پشتیبانی می‌کند، به طور یکسان عمل کند.

انواع فریم ورک‌ها

در توضیخات بالا، فریم‌ورک‌های ذکر شده مثل «دات نت» یا «JVM»، واسط میان برنامه‌نویس و سیستم‌عامل هستند؛ اما فریم ورک ها در انواع دیگری نیز قابل مشاهده می‌باشند و حتی یک برنامه نویسی می‌تواند یک فریم ورک جدیدی را روی یک فریم ورک دیگری از جمله دات نت تولید کند.

برای نمونه در زبان برنامه‌نویسی PHP، فریم ورک‌های مشهور مختلفی از جمله Symfony، CakePHP، Zend و Laravel وجود دارند؛ که به برنامه‌نویسان کمک می‌کنند بسیاری از کدهای تکراری که در بیشتر برنامه‌ها مورد نیاز هستند را بازنویسی نکرده و دوباره از ابتدا ننویسند. همچنین با تعریف قوانین، سرعت توسعه را افزایش داده و امنیت را بهبود می‌بخشند و کمک می‌کنند تا توسعه‌پذیری کد بهتر شود.

ساختار MVC در فریم ورک‌ها

معمولا فریم ورک‎‌ها مبتنی بر الگوی برنامه نویسی MVC طراحی می شوند (MVC نرم‎افزار را به سه قسمت Model و View و Controller تقسیم می‎کند و واژه‌ای است که در هنگام کار کردن با فریم ورک‌ها مورد استفاده قرار می‌گیرد.)؛ و البته نمی توان گفت مواردی که بر اساس الگوی شی گرای MVC ساخته نشده‌اند فریم ورک نیستند.

درواقع MVC شکلی خاص از ترکیب کدهای برنامه‌نویسی است و در این شکل از برنامه‌نویسی، کدهای برنامه به سه بخش تقسیم می‌شوند. با تقسیم و طبقه بندی کدها، برنامه به صورت سه لایه مجزا از هم در می‌آید. برنامه‌نویسی لایه‌ای مزایای زیادی دارد که در محدوده‌ی این نوشته نمی‌گنجد و تنها به همین نکته بسنده می‌کنیم که در برنامه نویسی MVC، بخش View وظیفه‌ی نمایش اطلاعات به کاربر را بر عهده دارد؛ بخش Controller دریافت اطلاعات از کاربر و پردازش آن را به انجام می‌رساند؛ و بخش Model نیز کار ذخیره و بازیابی اطلاعات را عملی می‌کند.

توجه
عموما پرتال‌ها و سیستم‌های مدیریت محتوایی نظیر جوملا، مامبو، نیوک، وردپرس و … در نهایت تبدیل به یک کتابخانه یا فریم ورک می‌شوند. و با این حساب می‌توان سیستم‌های مدیریت محتوا را نوعی فریم ورک به حساب آورد؛ اما در دنیای برنامه نویسی، واژه‌ی Platform (بستر) انتخاب بهتری برای سیستم‌‌های مدیریت محتوا است؛ چراکه Framework به برنامه نویسان کمک می‌کند تا کارشان را توسعه دهند؛ اما معمولاً این برنامه نویسان هستند که به پلتفرم ها کمک می‌کنند تا توسعه یابند.

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

آیا استفاده از فریم ورک خوب است؟

بله چرا که نه! در اغلب موارد مزایای فریم ورک بر معایت آن ارجعیت دارد! از جمله کاهش زمان توسعه و افزایش قابلیت توسعه پذیری که مزایای بزرگی در هنگام برنامه‌نویسی (از جمله طراحی سایت) به شمار می‌روند. همچنین در مورد فریم ورک‌های تحت سیستم‌عامل، مانند دات نت و JVM، نوشتن یک باره و اجرا روی چندین سیستم‌عامل از نظر اقتصادی بسیار پر اهمیت هستند.

انتخاب بهترین زبان برنامه‌نویسی و انتخاب صحیح فریم ورک مناسب، به دانش و تجربه‌ی زیادی نیاز دارد؛ بنابراین از هرفریم ورک جدیدی که دیدید، بدون تحقیق درمورد مزایا و معایب آن، استفاده نکنید؛ مگر اینکه مطمئن شدید.
تبلیغات
0
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه