چرا باید از framework استفاده کنیم؟
نویسنده:
۵ فروردین ۹۵

امروزه استفاده از framework یک امر بدیهی در بین توسعه دهندگان شده ، به گونه ای که توی شاخه های مختلف کاربرد و محبوبیت این Framework ها رو میبینیم. اما ، اصلا framework چیه و چرا انقدر محبوبیت دارند؟

کاربرد فریمورک ها فقط توی زمینه های برنامه نویسی و توسعه دهندگی نیست و توی هک و امنیت هم راه پیدا کردند و میتوان برای مثال به فریمورک متاسپلویت اشاره کرد که Rapid7 اون رو پشتیبانی میکنه .. اما این سوال پیش میاد که چرا باید از فریمورک ها استفاده کنیم..

فریمورک از ۲ کلمه Frame و Work تشکیل شده که Frame به معنای قاب و Work به معنای کار هست و اگر این ۲ کلمه رو با هم ترکیب کنیم به لغت قاب کار یا قالب کار میرسیم که معنا هم میده !

برای اینکه با ماهیت اون آشنا بشید بگذارید مثالی رو بزنم : ) فرض کنید میخواهید یک نقاشی بکشید .. شما کل طرحی که مد نظر دارید رو روی یک قالب و Frame پیاده سازی میکنید و اثر شما محدود به همون قابی هست که ازش استفاده میکنید. در واقع این لغت هم به همین معناست. ما میخواهیم به برنامه نویسیم قالب و ببخشیم. محدوده کد زنیمونو تعیین کنیم و بتونیم همه کدامون رو توی تابلو ببینیم و نخواهیم دنباله چیز های مختلف توی تصاویر مختلف بگردیم.

بحث تئوری معماری فریمورک ها و انواع فریمورک ها و … رو میتونیم با کمی تامل و جستجو بفهمیم و واقعا خوندن خشک و بدون کاربرد در عمل کار خسته کننده و بی فایده ای است ! پس کمی از اطلاعاتی که در ذهن دارم رو اینجا بیان میکنم : )

من وقتی برنامه نویسی رو شروع کردم واقعا هدف نداشتم و به قولی وقتی داشتم مباحث مختلف از پایه کار که چاپ Hello World بود تا مباحث پیشرفته تر یک چیز برام مبهم بود و اون این بود که وقتی میخوام یک برنامه رو خلق کنم از کجا شروع کنم و کجا به پایان ببرم : ) احتمالا شده که برید و برنامه هایی رو ببینید ، سورس کد برنامه های Open Source رو ببینید و بگید “آره من بلد بودم اینو بنویسم” اون موقع میفهمید که کسی که این برنامه رو نوشته از نظر تئوری همون چیزایی رو بلده که شما بلدید اما چرا اون تونسته پروژه اشو منتشر کنه اما شما نتونستید ؟ دلایل زیاده و هزارات دلیل میتونه وجود داشته باشه .. اما ما اینجا فقط با یک دلیل اون کار داریم : )

چارچوب کاری داشتن ! یکی از دوستان دیشب میگفت چارچوب کاری داشتن خلاقیت رو از آدم میگیره و نظر من کاملا برعکس هست باعث بروز خلاقیت میشه ! بستگی داره که شما به هر مسئله چگونه نگاه کنید : )

Framework های زیادی داریم ، اما من برای مثال از یکی از معروف ترین ها استفاده میکنم. احتمالا اسم Bootstrap رو شنیدید؟ یکی از Framework های معروف برای طراحی وب / Front-end هست و واقعا فراگیر شده و یکی از دغدغه های اصلی توسعه دهندگان وب که طراحی هست رو برطرف کرده که البته فریمورک های دیگه ای هم همسو با Bootstrap وجود دارند..

اگر بخواهیم با زبان ساده صحبت کنیم : ) هر صفحه وب استاتیک رو میتونیم به ۲ قسمت کد های CSS و HTML تقسیم کنیم . تمامی عناصری که ما توی یک صفحه وب قرار میدیم توی قسمت HTML ما هستند. عناصری مانند متن ها ، سر تیتر ها ، آیکن ها و تصاویر و هر چیز دیگه ای که توی یک صفحه وب هست . قبل از این هر کسی میبایست میامد و این عناصر رو به سلیقه خود یا به تقلید از بقیه کنار هم میچید و یک کار تکراری رو چندین بار انجام میداد ! صفحات Table Base زدن واقعا کار خسته کننده ای هست با اینکه بعد ها روش Div Based مورد استفاده قرار گرفت .. اما باز هم خیلی وقت تلف کن بود ! برای کسی که میخواست سایتی رو از اول چه طراحی front-end و چه back-end رو انجام بده باید خیلی وقت تلف میکرد اگرچه تجربه داشت و یه کاری رو چند بار کرده بود .. اما باز هم نتایج جالبی نداشت ! چون در واقع یک برنامه نویس وب تخصصش کد نویسی هست نه طراحی و اصول اون رو بلد نیست ! و همچنین کیفیت کارش پایین میومد. وقتی که bootstrap فراگیر شد و پلاگین هایی مثل emmet به دست وب کاران رسید دیگه این مشکلشون حل شد !

نه نیاز بود تگ های تکراری HTML رو بزنند و نه نیازی بود کد های CSS و طراحی رو روش فکر کنند و کافی بود چند تا کلمه رو حفظ کنند تا ظاهر قابل قبولی رو بوجود بیارند.

سوال شماره ۱ : برای فردی که تخصصی در زمینه ای ندارد الگویی کار کردن خوب هست یا از پایه کار کردن ؟

نظر من این است که الگویی کار کند و تخصص خود رو قوی تر کنه ! پس یک کد نویس وب میتونه بیاد طرح قابل قبولی رو سریعتر به وجود بیاره ، اما برای این طراح کد نویسی های تکراری هم وجود داشت ، کار های تکراری ای که باید هر دفعه بکنه ! تک تک این کار های تکراری توی framework ها حذف شدند و نیازی به عمل تکراری نیست.

کار کردن در یک چارچوب مشخص کاری باعث میشه که فرد به کاری که میخواد انجام بده مسلط باشه و تمرکزش رو روی کار متمرکز کنه و نیاز نباشه یک سری از مفاهیم اضافی رو یاد بگیره و برای کسی که هدفش انجام دادن پروژه است یک روش واقعا عالی است. اما برای کسی که هدفش یادگیری هست وابسته شدن به چارچوب ها باعث محدود شدن چارچوب کاری وی شده و اون نمیتواند پیشرفت کند.

پس میتونیم نتیجه بگیریم که استفاده از فریمورک ها میتواند خوب باشد در انجام هدف هایی که این فریمورک ها توش گنجانده میشود و میتواند بد باشد در جلوگیری از پیشرفت.. من به شخصِ دوست دارم همه چیز رو یاد بگیرم : ) دوست دارم هوشمندانه تصمیم بگیرم و آثاری که دوست دارم رو خلق کنم..

باید مراقب باشیم که چارچوب یادگیری خود رو محدود نکنیم بلکه چارچوب انجام پروژه امون رو محدود کنیم : )

 

یک پیام برای چرا باید از framework استفاده کنیم؟

  1. Defender گفت:

    خیلی ممنون

    فریم ورک ها خیلی مفید هستند ولی هیچ وقت خلاقیت خودتون فراموش نکنید!
    موفق باشید

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

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