فریم ورک یا چهارچوب نرم افزاری بستری را برای برنامه نویسان فراهم میکند که استفاده از کدهای از پیش ساخته شده را امکانپذیر میکند. در واقع میتوان گفت هدف اصلی فریم ورکها، راحتی کار برنامه نویسان و اجتناب از نوشتن کدهای تکراری است.
به طور تخصصی تر، فریم ورک برنامه نویسی مجموعه ای از کتابخانهها، استانداردها، دیزاین پترنها و قوانین کدنویسی است که در بستر یک چارچوب یا ساختار نرم افزاری در اختیار برنامه نویسان قرار میگیرد تا کدنویسی، راحتر، امن تر و قانونمندتر گردد. برای انواع زبانهای برنامه نویسی فریم ورکهای متعددی توسط برنامه نویسان ارشد و سرشناسی توسعه داده شده است.
توسعه دهندگان و برنامه نویسان با دانش های متفاوت از فریم ورکها بهعنوان بستری استاندارد برای طراحی و توسعه برنامه های کاربردی خود استفاده میکنند. در فریم ورکها بسیاری از کدها و دستورات بهصورت از پیش نوشته شده مورد استفاده قرار میگیرند که این دستورات، کدها توسط اساتید این حوزه طراحی، برنامه نویسی، تست و رفع باگ شده است. بنابراین استفاده از فریم ورک و استفاده از این کدهای از پیش نوشته شده، میتوانند اپلیکیشنهایی با سرعت، امنیت و کیفیت بسار بالاتری توسعه دهند.
فریم ورک های توسعه وب
بسیاری از فریم ورک های تخصصی برای توسعه وب با زبان پی اچ پی نوشته شده اند که برای مثال می توان فریم ورکهای laravel, CodeIgniter ,Symfony ,Zend ,Phalcon CakePHP و Yii را به عنوان محبوب ترین فریم ورک های پی اچ پی نام برد. بسیاری از فریم ورک های جاوا اسکریپت با قابلیت اجرا در سرور و کلاینت برای توسعه وب نیز امروزه فراگیر شده اند و می توان از محبوبترین انها nextjs، nuxtjs ,vuejs, angularjs, ractjs نام برد.
فریم ورک ها تنها مختص برنامه نویسان بک اند نیست و بسیاری از فریم ورک ها نیز برای طراحی رابط کاربردی توسعه داده شده اند که می توان bootstrap را یکی از محبوبترین فریم ورک ها برای این منظور دانست.
چرا باید یا نباید از فریم ورک استفاده کرد
عموما اجباری در استفاده از فریم ورک ها وجود ندارد بلکه شما با توجه به ویژگی هایی که فریم ورک ها ارائه می دهند به سمت آنها می روید، در اصل فریم ورک ابزار کمکی هستند که دست یاری به سوی شما دراز می کنند و شما می توانید از انها استفاده کنید یا آنها را نادیده بگیرید.
شعار اصلی فریم ورک ها این است که چرخ را دوباره اختراع نکن! دقیقا همینطور است. شما به جای تولید چیزهای بدیهی و موجود کاری انجام نمی دهید بلکه روی ایده و هدفتان و چیزهایی که وجود ندارد تمرکز می کنید. پروژه ها بسیار سریعتر پیش می روند و شما قانونمند کدنویسی میکنید.
البته این همه ماجرا نیست. گاها فریم ورک ها برای برخی از پروژه ها مفید نیستند و قابلیت ها و توابع زیادی را ارائه می کنند که شاید شما تمایلی به استفاده از انها نداشته باشید. به هر روی ما در اینجا سعی میکنیم عمده دلایلی که برنامه نویسان از فریم ورک ها استفاده میکنند و یا آنها را نادیده میگیرند سخن بگوییم. قطعا شما به عنوان برنامه نویس بهترین تصمیم ممکن را خواهید گرفت.
عمده دلایلی که برنامه نویسان از فریم ورک استفاده می کنند
در ادامه دلایل عمده و شاخصی که برای توسعه دهندگان در استفاده از فریم ورک با اهمیت تر است لیست شده اند. شما می توانید تصمیم بگیرید که آیا این ویژگی ها باعث خواهد شد که شما را به سمت استفاده از فریم ورک ببرد یا خیر.
پروژه سریع و آتشین پیش می رود.
قرار نیست کدهای تکراری بنویسیم و هر جایی پروژه یک چیز بدیهی نیاز دارد از کدهایی استفاده می کنیم که قبلا بارها نوشته شده، توسعه داده شده و بهترین عملکرد را دارد. به طور مثال برای ارتباط با پایگاه داده و ارسال و دریافت اطلاعات نیازی نیست کدهای تکراری را بنویسیم و این کدها به بهترین شکل ممکن اماده شده است. کافیست از انها استفاده کنیم.
قانونمد، ساختارمند و از معماری درست استفاده میشود.
فریم ورک ها اصولا بر اساس یک ساختار و معماری درست ایجاد شده است و برنامه نویس مجبور به رعایت آن است. از طرفی ساختار فایل ها و فولدرها و هر چیزی کاملا مشخص است و پروژه ای بی سروته ایجاد نمی شود.
کدها قابل اعتماد تر است.
استفاده از فریم ورک به این معنی نیست که کاملا پروژه شما قابل اعتماد و امن است ولی بخش زیادی از کدهای شما چون از خود فریم ورک بهره برده است می تواند پروژه کلی شما را قابل اعتماد تر کند.
توسعه پذیری، بروزرسانی و نگهداری کدها ساده تر است
فریم ورک ها فرای استفاده از هر زبان برنامه نویسی قابلیت توسعه پذیری کدها را بالا می برند. چون شما ملزم به استفاده از ساختار و قانون های درست شده اید قطعا پروژه شما نیز توسعه پذیری بالاتری دارد. بروز کردن کدها با توجه به اینکه هسته فریم ورک ها بروزرسانی کاملی را دریافت می کنند ساده تر است و در نتیجه نگهداری از کدهای شما نیز بسیار ساده تر و انقضای آنها طولانی تر خواهد بود.
کار تیمی راحتر است.
قطعا برای پروژه های بزرگ یک تیم نیاز است و نمی توان تصور کرد که هر شخصی، به هر نحوی که علاقه دارد کدنویسی کند! بنابراین استفاده از فریم ورک می تواند این مشکل را تا حد زیادی رفع کند چرا که همه تیم کاملا با ساختار، کدها و اصول فریم ورک مورد نظر اشنا هستند و مجبورند به همان صورت کدنویسی کنند. بنابراین سردرگمی بین اعضای تیم وجود نخواهد داشت.
عمده دلایلی که برنامه نویسان ترجیح می دهند از فریم ورک استفاده نکنند.
در ادامه عمده دلایلی که برنامه نویسان ترجیح می دهند از فریم ورک استفاده نکنند یا حداقل برای هر پروژه ای دست به دامن فریم ورک ها نشوند آورده شده است. قطعا استفاده از فریم ورک ها مزایای فرآوانی را دارد ولی برخی مواقع استفاده نکردن از آنها کاملا توجیح پذیر است.
یادگیری زمان بر
درست است که فریم ورک ها ابزارها و کدهای پیش ساخته ای را در اختیار برنامه نویس قرار می دهد اما یادگیری نحوه استفاده از فریم ورک، نحوه استفاده از توابع و …. خود زمان بر است و برخی از برنامه نویس ها از یادگیری آن فراری هستند.
توابع و کدهای اضافی
گاها استفاده از یک فریم ورک به قدری امکانات و توابع مختلفی را در اختیار شما قرار می دهد که بخش اعظمی از انها را استفاده نمی کنید. اکثر فریم ورک ها با در نظر گرفتن دغدغه ها و قابلیت های مورد نیاز تمام برنامه نویسان پیاده سازی گردیده اند. بنابراین اکثر قابلیت ها بدون اینکه شما از انها استفاده کنید یا نکنید در فریم ورک گنجانده شده است. برخی از برنامه نویسان از وجود کدهای اضافی و ایجاد اورلود ناراضی هستند. مخصوصا در مورد فریم ورک های فرانت اند که نیاز به بارگیری دارند.
نداشتن کنترل کافی روی هسته فریم ورک
فریم ورک ها دارای یک هسته یا یک سیستم مدیریت کتابخانه هستند که مدام در حال بروزرسانی و رفع باگند و شما از قابلیت هایی استفاده میکنید که ممکن است بخواهید انها را به نحو دیگری مدیریت یا بروزرسانی کنید یا حتی انها را توسعه دهید. اگرچه اکثر فریم ورک ها ازادی عمل و گسترش پذیری بالایی را ارائه می کنند و پشتیبانی خوبی نیز ارائه می دهند اما ترس از حذف یک قابلیت، رها شدن فریم ورک، ترس از مجبور شدن به ریفکتور کردن پروژه در بروزرسانی های بزرگ فریم ورک نیز وجود دارد.
نظر شما چیست؟ ایا از فریم ورک استفاده میکنید یا خیر؟