فریم ورک چیست؟

هر کتابخانه‌ای که تهیه و تنظیم شده باشد تا از تکرار در برنامه نویسی جلوگیری کند و کار برنامه نویس را ساده کند فریم ورک نامیده می‌شود. اما فریم ورک چیزی بیش از یک کتابخانه است. به عنوان مثال یک شرکت مانند سونی را در نظر بگیرید؛ آیا سونی هربار برای ساخت یک تلویزیون به تکنولوژی مشابه همه کیت‌ها و مدار‌ها را دوباره طراحی می‌کند!؟ آیا از نظر زمان و هزینه اقتصادی باعث ضرر این شرکت نخواهد شد؟ طبیعتاً سونی همه اطلاعات را در جایی نگه داشته و تنها تغییراتی در آن اعمال می‌کند و خروجی یک محصول جدید را در نتیجه خواهد داشت.

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

فریم ورک چیست ؟
در نگاه اول فریم ورک به هر کتابخانه ای گفته می شود که نوشته شده باشد. اما فریم ورک چیزی بیش از یک کتابخانه است. به عنوان مثال یک شرکت سازنده خودرو در نظر بگیرید. آیا این شرکت ها هر بار برای ساختن خودرو جدید تمام نقشه ها را از از اول طراحی می کنند ؟ مطمئنا جواب منفی هست. فریم ورک ها در برنامه نویسی چنین معنی دارند. اصولا فریم ورک ها بر اساس ساختار برنامه نویسی شی گرایی تحت عنوان Model , View , Controller به اختصار MVC ساخته می شوند. اما نمی توان گفت کتابخانه هایی که بر اساس شی گرایی ساخته نشده اند فریم ورک نیستند. عموما پرتال ها و سیستم های مدیریت محتوا مثل جوملا ، مامبو ، نیوک ، وردپرس و … در نهایت تبدیل به یک کتابخانه یا فریم ورک می شوند.
چرا باید از فریم ورک استفاده کنیم ؟
هیچ اجباری برای اینکه از فریم ورک استفاده کنید وجود نداره. اگر شما یک پرتال خوب رو بدون استفاده از فریم ورک بسازید می تونه خودش یک فریم ورک یا کتابخانه خوب باشه اما دلیل بر ضعف شما در برنامه نویسی نیست. برنامه نویس ها معمولا دلایل بسیار زیادی برای استفاده یا عدم استفاده از فریم ورک دارند و معمولا بیشتر برای اثبات اینکه استفاده از فریم ورک صحیح است به مثال ” چرخ را نباید دو بار اختراع کرد ” روی می آورند که این هم غلط است. دلیلی برای اختراع دوباره چرخ وجود نداره مگر اینکه چرخ جدید چرخی بهتر از چرخ قدیم باشه. کلا می خواستم بگم که هیچ وقت از اینکه از فریم فرک استفاده نمی کنید احساس پشیمونی نکنید.
چه زمانی باید شروع به نوشتن فریم ورک کرد ؟
متاسفانه یکی از ضعف های برنامه نویس های ما این هست که به محض یادگیری زبان PHP شروع به نوشتن یک فریم ورک می کنند. البته جوان هستند و جویای نام اما ساخت یک فریم ورک از صفر وقتی شما تجربه کافی ندارید در نهایت باعث می شود که پروژه شما منحل یا بدون استفاده کننده تبدیل شود. این مورد رو من زیاد دیدم متاسفانه. زمانی می تونید به ساختن یک فریم ورک روی بی آورید که شما مهارت و دانش کافی رو داشته باشید و هیچ کدام از فریم ورک های موجود توان برآورده کردن نیاز های شما را ندارد. در این زمان به نظر من شما می تونید شروع به ساخت یک فریم ورک کنید اما همیشه این رو باید به یاد داشته باشید که بروز رسانی و گرفتن باگ ها به عهده شماست.
کدام فریم ورک را انتخاب کنیم ؟
من با فریم ورک های Codeigniter , Cakephp , ZendFramework , Symfony آشنایی دارم. عموما برنامه نویس ها از CodeIgniter و Cakephp استفاده می کنند در ایران. به نظر من اگر شما یک پروژه خیلی ساده و کوچک دارید Codeigniter انتخاب خوبی خواهد. چرا که از سرعت بالا و سادگی بالایی برخوردار است. Cakephp فریم ورک قوی با ساختار مناسب برای کار های حرفه ای می تونه باشه . اما خب من ضعف هایی در Cakephp دیدم ولی یکی از بهترین قسمت های این فریم ورک لایه Model و ORM هست و در این مورد می توان گفت بسیار خوب عمل کرده اند طوری که کار با دیتابیس برای برنامه نویس بسیار راحت شده. ZendFramework یکی از بهترین فریم ورک هاست . بخاطر اینکه مثل یک کتابخانه معمولی در کنار پروژه شما قرار می گیرد و شما قادر هستید که از تمامی قسمت ها هر طور که مایل هستید استفاده کنید و یا تغییرات لازم را بدهید. دقیقا مانند یک کتابخانه قوی و مستحکم. در نهایت به نظر بنده symfony قدرت مطلق فقط و فقط برای پروژه های حرفه ای و عظیم ساخته شده . البته این گفته تا نسخه ۱٫۴ درسته و در نسخه ۲ و تغییراتی که داده شده سرعت اینقدر بالا هست که شما در پروژه های کوچک هم می توانید به سادگی از این فریم ورک استفاده کنید. نهایتا انتخاب فریم ورک باید خیلی دقیق باشه . معمولا برنامه نویس ها نمی تونن با چندین فریم ورک هم زمان کار کنند. پس سعی کنید فریم ورکی را انتخاب کنید که بتونید همیشه استفاده کنید و کمتر دچار مشکل بشوید.
آیا فریم ورک سرعت اسکریپت را پایین می آورد ؟
بله. چون فریم ورک ها از کلاس های زیادی استفاده می کنند معمولا این مشکل وجود دارد که مقدار حافظه بیشتری مورد استفاده قرار می گیرد. اما سرعت آنچنان لامس نخواهد بود که شما بتوانید تشخیص دهید فلان اسکریپت از فریم ورک استفاده کرده یا خیر. همه چیز بستگی به ساختار فریم ورک دارد و نحوه فراخوانی کلاس ها و استفاده از Cache تاثیر بسیار بالایی در سرعت نرم افزار خواهد داشت.

دیدگاه‌ها

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

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

Time limit is exhausted. Please reload the CAPTCHA.