فریم ورک چیست؟ چرا Framework ها فرشتگان برنامه نویسی هستند؟
اگر با برنامه نویسی آشنایی داشته باشید حتما واژهی فریم ورک به گوشتان خورده است و این سوال برایتان پیش آمده است که فریم ورک چیست و چه کاری انجام میدهند. من به فریم ورک ها فرشتگان برنامه نویسی میگویم. زیرا به شما کمک میکنند که برنامه نویسی را به لذت بخش ترین کار دنیا تبدیل کنید. در این مقاله و فیلم آموزشی بصورت کامل با مفهوم Framework ها آشنا میشویم و میفهمیم که چطور Framework ها برنامه نویسی را برای ما لذت بخش میکنند. پس با من همراه باشید.
فریم ورک چیست؟
دانلود صوت این فایل آموزشی با حجم ۱۰ مگ
دیدن ویدئوی بالا میتواند به خوبی به سوال فریم ورک چیست پاسخ دهد. اما خواندن متن زیر نیز خالی از لطف نیست.
یک قاب عکس یا اسکلتبندی ساختمان را تصور کنید
لطفا یک قاب عکس یا اسکلت بندی ساختمان را تصور کنید. کاری که این دو انجام میدهند چیست؟
هر دوی این ابزار، کمک میکنند که محتویات آنها، ساختار منظمتر و بهتری داشته باشد!
برای مثال اگر بخواهیم که عکسی را درون قاب عکس قرار دهیم، باید آن عکس را به اندازهی آن قاب عکس درآوریم. یا مثلا در ساختمان سازی، اسکلت بندی ساختمان به عنوان یک قاب (Frame) به ما کمک میکند که آن ساختمان را اصولیتر، بهتر و منظم تر بسازیم.
اگر بخواهیم بگوییم که فریم ورک چیست ، میتوانیم بگوییم که فریم ورک ها در برنامه نویسی نیز دقیقا همینکار را برای ما انجام میدهند.
فریم ورک ها کمک میکنند که ما کدنویسی سریعتر، بهتر، منظم تر و با تمرکز بیشتری داشته باشیم.
در ادامه سعی میکنیم که بیشتر در خصوص فریم ورک ها صحبت کنیم و به سوال فریم ورک چیست پاسخ دهیم و از شما بخواهیم که حتما برای یک بار هم که شده، باید کار با یک فریم ورک را یاد بگیرید تا متوجه شوید که چه نعمتهای بزرگی هستند این فریم ورکها!
آشنایی با مفهوم Framework در برنامه نویسی
اگر با زبان برنامه نویسی PHP آشنایی داشته باشید، (PHP چیست) حتما واژهی فریم ورک زیاد به گوشتان خورده است و اسم لاراول یا کداگنایتر را شنیدهاید. اگر بخواهیم بگوییم که فریم ورک چیست، میتوانیم آنرا به این گونه تعریف کنیم:
Framework ها چهارچوب و ساختار های کدنویسی هستند که توسط بهترین برنامه نویسان جهان بصورت مجموعهای از کدها، ابزارها و… ارائه شدهاند که تنها یک هدف دارند: برنامه نویسی را برای برنامه نویسان راحتتر و سریعتر کنند.
شما با استفاده از Framework ها میتوانید با سرعت، کیفیت و دقت بیشتری اقدام به توسعه محصولات نرمافزاری کنید. در ادامه میخواهیم بیشتر دربارهی سوال فریم ورک چیست صحبت کنیم و بگوییم که چرا باید از فریم ورک ها استفاده کنیم و فریم ورک ها چه مزیتهایی را برای ما فراهم میکنند؟
چرا باید از فریم ورک ها استفاده کنیم؟
برای رسیدن به پاسخ سوال فریم ورک چیست، خوب است دربارهی این سوال صحبت کنیم که اصلا چرا باید از Framework ها استفاده کنیم؟ استفاده از فریم ورک ها چه ارزش افزودهای برای ما دارند؟ در چند موردی که در ادامه صحبت میکنیم، سعی داریم به این سوال پاسخ دهیم.
چرخ را از اول اختراع نمیکنید
یکی از مهم ترین نکات دربارهی کاربرد فریم ورک ها این است که کمک میکند که چرخ را از اول اختراع نکنید. امکانات بسیار زیادی در فریم ورک ها از قبل تهیه و برنامه نویسی شده است که باعث میشود که شما کارهای روتین و ابتدایی یک پروژه را رد کنید و مستقیم به سراغ انجام کارهای اصلی پروژه بروید.
برای مثال اگر شما بخواهید اقدام به نوشتن یک اپلیکیشن آنلاین با PHP کنید، کارهای روتین زیادی را در ابتدا باید انجام دهید:
- فولدر های اصلی را بسازید
- فایل index.php را بسازید
- فایل مربوط به اتصال به دیتابیس را بسازید (دیتابیس چیست؟)
- با شرط if چک کنید که اگر در اتصال به دیتابیس با خطا مواجه شدید، خطا را چاپ کند
- در ابتدای فایل index.php فایل دیتابیس خود را وارد (require_once) کنید
- و ده ها مرحلهی ابتدایی دیگر
اینطور فکر کنید که برای انجام هر پروژهی جدید، شما نیاز هست که بخش زیادی از زمانتان را صرف کارهای حاشیهای، تکراری و روتین کنید و این برای شما به عنوان یک برنامه نویس فاجعه است. زیرا زمان شما را از بین میبرد.
اگر بخواهیم بگوییم که فریم ورک چیست ، میتوانیم بگوییم که فریم ورک ها ابزاری هستند که کار را برای شما راحت تر و ساده تر میکنند.
سرعت کدنویسی بیشتر میشود
یکی دیگر از مزایای فریم ورک ها این است که سرعت کدنویسی شما را افزایش میدهند. دلیل این امر این است که خیلی از کارهایی که در برنامه نویسی پروژه ها بدون استفاده از فریم ورک از شما وقت و زمان میگیرد، در فریم ورک ها بصورتی تعبیه و کدنویسی شده است که بسیار سریع انجام شود.
در فریم ورک ها هرگز وقت شما برای کارهای روتین، پیش پا افتاده و بی اهمیت صرف نمیشود. همه مقدمات در فریم ورک ها برای شما اماده است که تمام تمرکز خودتان را بر روی منطق (Logic) اصلی کدتان بزارید و به هیچ چیز دیگری فکر نکنید.
بسیاری از امکانات از قبل وجود دارند
اگر بخواهیم بگوییم که بهترین دلیل وجود فریم ورک چیست ، میتوانیم بگوییم امکانات پیشفرض آن است. بسیاری از کارهایی که شما میخواهید بصورت دستی قابلیت آنرا به کدتان اضافه کنید، از قبل توسط فریم ورک ها نوشته شده است و شما فقط باید از آنها استفاده کنید.
برای مثال اگر شما بخواهید برای فرم های سرویستان Form Validation داشته باشید و چک کنید که اگر رمز کاربر کمتر از ۵ کاراکتر بود، برای او خطایی نمایش داده شود، اینکار را میتوانید خیلی راحت با قابلیت های پیشفرض فریم ورک ها در چند دقیقه پیاده سازی کنید و دیگر نیازی به نوشتن چندین خط کد اضاف ندارید. این باعث میشود که وقت و انرژی بیشتری را ذخیره کنید.
تمرکز روی خودِ خودِ پروژه
فریم ورک ها به این دلیل که بسیاری از قابلیت ها را در دل خود دارند و نیازی به نوشتن دوباره توسط شما نیست، به شما کمک میکنند که روی خودِ خودِ پروژه تمرکز کنید.
شما اگر فریم ورکتان را هوشمندانه و خوب انتخاب کنید، تمام نیازهای شما را برای پروژهتان براورده میکند و وقتی که هر قابلیتی که نیاز داشتید را توانستید به سادگی پیاده کنید، آن موقع است که میتوانید زمانی که بدست آوردهاید را روی چیزهای مهمتری در پروژهتان صرف کنید.
توابع قابلیت استفادهی مجدد را دارند
نکتهی مهمی که در خصوص فریم ورک ها وجود دارد این است که به شما امکان استفادهی مجدد از کدها یا اصطلاحا reuse کردن کد ها را میدهد که این فوق العاده است.
کدهای منظم تر و بهتری خواهید داشت
بسیاری از فریم ورک ها به دلیل استفاده از معماریهایی مثل MVC کمک میکنند که کد بسیار منظم تر و مرتب تری داشته باشید.
خیلی سخت است اگر بخواهید که بدون استفاده از یک فریم ورک، کدی بنویسید که منظم، خوانا، تمیز و قابل فهم برای همگان باشد. اما فریم ورک ها به دلیل ساختاری که دارند، این امکان را برای شما فراهم میکنند که کدتان تا حد بسیار زیادی به یک کد منظم و خوانا و غیرکثیف تبدیل شود.
خودم یه فریم ورک خیلی بهتر مینویسم!
نکتهای که در بین برنامه نویسانی با تجربهی متوسط وجود دارد این است که به دلیل غروری که با آن دچار میشوند، هیچکدام از فریم ورک های موجود را قبول ندارند و همگی میخواهند که فریم ورک مخصوص خودشان را از صفر بنویسند و همه پروژههایشان را با آن فریم ورک انجام دهند.
نوشتن یک فریم ورک از صفر برای یادگرفتن حرفهای برنامه نویسی عالی است. اگر میخواهید که به هدف تمرین و افزایش مهارت های خودتان یک فریم ورک را از صفر بنویسید این فوق العاده است و مطمئن باشید که در حین نوشتن فریم ورک خودتان، نکات بسیار زیادی را یاد خواهید گرفت.
اما اگر میخواهید فریم ورکی بنویسید که بزند روی دست لاراول یا کداگنایتر و چیز بهتری بنویسید، راه بسیار سختی در پیش دارید. زیرا بهترین و حرفهای ترین برنامه نویسان جهان در حال کار بر روی این فریم ورک ها هستند.
ممکن است شما بگویید که فریم ورکی که میخواهید برای خودتان بنویسید، دقیقا نیازهای شما را برطرف میکند و مثلا لاراول نیازهای شما را برطرف نمیکند.
شما میتوانید بجای نوشتن یک فریم ورک از صفر، فریم ورک را انتخاب کنید که تطابق زیادی با نیازهای شما داشته باشد و بتواند نیازهای شما را به خوبی برطرف بکند.
بجای اینکه وقت بگذارید و بخواهید یک فریم ورک را از صفر بنویسید که از فریم ورک های موجود بهتر باشد، یک فریم ورک مناسب برای پروژهتان پیدا کنید و زمانی که ذخیره میکنید را روی کارهای مهمتری بگذارید. حتما نتیجهی بهتری خواهید گرفت.
معرفی چند فریم ورک معروف
اگر بخواهیم معروف ترین فریم ورک های این روزها را بدانیم، میتوانیم به چند مورد زیر اشاره کنیم:
- فریم ورک Laravel (مخصوص PHP)
- فریم ورک Codeigniter (مخصوص PHP)
- فریم ورک Zend (مخصوص PHP)
- فریم ورک Angular (مخصوص جاوا اسکریپت)
- فریم ورک Backbone (مخصوص جاوا اسکریپت)
- فریم ورک django (مخصوص پایتون)
جمع بندی
در نهایت اگر بخواهیم دربارهی سوال فریم ورک چیست یک جمع بندی داشته باشیم، میتوانیم بگوییم که فریم ورک ها مثل فرشتگان برای برنامه نویسان هستند که کمک میکنند فرایند برنامه نویسی برای شما لذت بخش تر، سریع تر و با بازدهی بیشتر باشد و باعث شود که وقت خودتان را روی چیزهایی بگذارید که ارزش وقت گذاشتن دارند!
نظر شما دربارهی فریم ورک ها چیست؟ بنظرتان استفاده از Farmework ها چقدر میتواند مفید باشد؟
درباره مهدی خسروی
۸ سال پیش که یادگیری برنامه نویسی رو آغاز کردم، با یک مشکل بزرگ مواجه شدم: کمبود منابع آموزشی حرفهای و کاربردی به زبان فارسی. به همین دلیل، بعد از چندین سال فعالیت حرفهای در زمینهی برنامه نویسی، تصمیم گرفتم دانستهها و تجربیات خودم را با شما عزیزان به اشتراک بگذارم. پیشنهاد میکنم به آدرس yadify.com/gifts حتما سر بزنید :)
نوشته های بیشتر از مهدی خسرویمطالب زیر را حتما مطالعه کنید
9 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
دیدگاهتان را بنویسید لغو پاسخ
این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش میشوند.
باسلام وعرض تبریک بابت سایت مفیدتون
اگر امکان داره صدای ویدیوهاتونو یه مقدار بیشتر کنید.
سلام دوست گرامی
از انتقاد بجا و صحیح شما ممنونیم. حتما سعی میکنیم در آموزش های آینده این مورد را لحاظ کنیم.
دمتون گرم خیلی جالب و ساده توضیح دادین کیف کردم
با سلام
عالی بود.
فقط یک سوال داشتم و ان اینک محتویات فریم ورک ها چی هستند؟ ایا خود شامل توابع مختلف و کلاس ها هستند؟
ایا ما میتوانیم فریم ورک ها را به بخش های کوچکتر تقسیم کنیم و ان قسمت یا تابع مشخصیی را استفاده کنیم؟
و ایا برنامه نویس میتواند یک تابع و کلاسی که خود نوشته در فریم ورک اضافه کند ؟
ممنون
سلام حسن گرامی
بله دقیقا. فریمورک ها هم از کلاس ها و توابع و… تشکیل شدن. و شما میتونید فریمورک هارو برای خودتون شخصی سازی (Customize) کنید. البته به دلیل پیچیدگی بعضی از فریم ورک ها، انجام اینکار زیاد منطقی نیست و کمتر کسی اینکار رو انجام میده
سایتتون عالیه. ممنون بابت آموزش
سلام
اول یه تشکر و خسته نباشید بگم خدمتتون که اینقدر ساده و عالی مطالب رو انتقال میدید.
خواستم خواهش کنم اگر امکانش بود یه ویدیو هم درباره تفاوت بین فریم ورک و کتابخانه تهیه و منتشر کنید.
سلام علی عزیز
از پیشنهاد شما ممنونم. حتما اموزشی در این باره منتشر خواهم کرد. مرسی
ممنون خیلی خوب بود