فریم ورک چیست؟تفاوت فریم ورک و کتابخانه در چیست؟ نگاهی به فریم ورک های محبوب
به عنوان يک برنامه نويس ، وقتي ابزاري داريد که براي کمک به شما در پروژه هايتان طراحي شده است ، دیگر نيازي نيست که همه چیز را از ابتدا شروع کنيد. فريم ورک ها نرم افزاري هستند که توسط توسعه دهندگان براي ساخت برنامه ها توليد و استفاده مي شوند.
فهرست مطالب
framework چيست؟
از آنجا که اغلب توسط چندين و چند مهندس نرم افزار و برنامه نويس باتجربه ساخته ، آزمايش و بهينه سازي شده اند ، framework ها نرم افزارهایی همه کاره ، قوي و کارآمد هستند.
استفاده از يک framework نرم افزاري براي توسعه برنامه ها به شما امکان مي دهد تا روي عملکرد سطح بالاي برنامه تمرکز کنيد. اين بدان دليل است که هر عملکرد سطح پايين توسط خود framework مراقبت مي شود.
چرا ما از Frameworks استفاده مي کنيم؟
توسعه نرم افزار يک فرآيند پيچيده است. اين کار مجموعه اي از وظايف از جمله کدنویسی، طراحي و آزمايش را می طلبد. فقط براي قسمت کدنویسی ، برنامه نويسان بايد از syntax ، declarations ، جمع آوري زباله ، statements ، موارد استثنا و ديگر چیز ها آگاه باشد و آن ها را مدیریت کند.
framework ها به توسعه دهندگان این امکان را می دهند تا کنترل کل فرايند توسعه نرم افزار يا بيشتر آن را از يک پلت فرم مدیریت کنند.
مزاياي استفاده از framework نرم افزاري:
در ايجاد روشهاي بهتر برنامه نويسي و استفاده مناسب از الگوهاي طراحي کمک مي کند.
کد از امنيت بيشتري برخوردار می شود.
مي توان از تکرار و کدهای اضافي جلوگيري کرد.
با اشکالات کمتر به توسعه پایدار کد کمک مي کند.
کار بر روي فن آوري هاي پيشرفته را آسان تر مي کند.
مي توان framework خود را ايجاد کرد يا به framework هاي منبع باز کمک کرد. از اين رو ، بهبود مستمري در عملکرد وجود دارد.
چندين و چند بخش از کدها و ويژگي ها از قبل ساخته و آزمايش شده اند. اين باعث مي شود برنامه ها قابل اعتمادتر باشند.
تست و اشکال زدايي کد بسيار ساده تر است و حتي توسط توسعه دهندگاني که اين کد را ننوشته اند مي تواند انجام پذیرد.
زمان مورد نياز براي توسعه يک برنامه به طور قابل توجهي کاهش مي يابد.
چه چيزي در يک framework وجود دارد؟
هنگام نصب يک framework ، اولين چيزي که بايد به آن توجه کنید سیستم مورد نیاز است. پس از نصب و پيکربندي يک فريم ورک ، يک دايرکتوري با ساختار مشخص ايجاد مي شود.
به عنوان مثال ، شکل زیر ساختار دايرکتوري framework لاراول را نشان مي دهد . هر يک از اين پوشه ها مي توانند دايرکتوري هاي اضافي داشته باشند. در ادامه ، دايرکتوري ها مي توانند داراي فایل ها، کلاس ها ، test routines ، الگوها و موارد ديگر باشند.
تفاوت بين کتابخانه و framework
برخي ممکن است فرض کنند که framework ها مجموعه اي از کتابخانه ها هستند همانطور که کتابخانه ها مجموعه اي از روتین های از پيش کامپایل شده هستند. اما این فرض ، درست نيست زيرا همه framework ها از کتابخانه ها استفاده نمي کنند يا به عبارتی به کتابخانه ها وابسته نيستند.
بیایید تفاوت بین فریم ورک و کتابخانه را با یک مثال واضح روشن کنیم:
curl يک کتابخانه در PHP است. هنگامي که از يکي از توابع curl استفاده مي کنيد ، کد PHP آن عملکرد خاص را در کتابخانه curl فراخواني مي کند. کد شما فراخوان تابع ، و کد کتابخانه گيرنده تابع است.
هنگامي که شما از يک فريم ورک PHP مانند Laravel استفاده مي کنيد ، رابطه معکوس مي شود و بنابراين framework کد برنامه نوشته شده در framework را فراخواني مي کند. اين از نظر فني به عنوان وارونگي کنترل Inversion of Control (IoC) شناخته مي شود .
زبان برنامه نويسي در مقابل Framework
يک زبان برنامه نويسي به کامپيوتر مي گويد که چه کاري بايد انجام دهد. هر زبان برنامه نويسي داراي يک syntax و يک سري قوانين خاص است که هر بار که کدی نوشته مي شود ، بايد رعايت شود.
يک framework نرم افزاري در بستر زبان برنامه نويسي ساخته شده است. مثلا،
Rails ، که به عنوان Ruby on Rails نیر شناخته مي شود ، يک framework وب است که بر بستر زبان برنامه نويسي Ruby ساخته شده است.
Django و Flask دو framework وب متفاوت هستند که بر بستر زبان برنامه نويسي Python ساخته شده اند. از اين رو ، آنها به عنوان framework هاي پايتون نيز شناخته مي شوند . React و Angular قریم ورک هاي جلويي وب(front-end) هستند که بر بستر زبان برنامه نويسي JavaScript ساخته شده اند.
انواع framework ها
به عنوان يک توسعه دهنده ، بايد در جستجوي framework هايي باشيد که به بهترين شکل با نيازهاي شما مطابقت داشته باشند. اين که آيا روي يک وب سايت کار مي کنید ، علوم داده ، مديريت پايگاه داده يا برنامه هاي گوشی های هوشمند ، framework ها براي همه ژانرهاي برنامه نويسي مناسب نیاز شما وجود دارند.
انواع مختلفي از framework ها وجود دارند که توسعه برنامه ها را براي طيف گسترده اي از موضوعات مختلف بسیار آسان تر مي کتند. بياييد به برخي از framework هايی که امروزه بیش از بقیه مورد توجه هستند ، بپردازيم:
framework هاي برنامه وب
Angular
Angular يک فریم ورک typescript-based و متن باز JS است که ساخت برنامه ها را در وب آسان مي کند. Angular با ترکيب declarative templates ، تزريق وابستگي ، end-to-end tooling و موارد ديگر ، چالش هاي توسعه برنامه در وب را حل مي کند.
Angular به توسعه دهندگان اجازه مي دهد برنامه هايي را که در وب ، تلفنهای همراه و کامپیوتر ها اجرا می شوند بسازند.
این framework محبوب جاوا اسکريپت در برنامه ها و سايت هاي بزرگی مانند Google Cloud Platform و AdWords و همچنين بسياري از ابزارهاي داخلي Google مورد استفاده قرار می گیرد
برخي از وب سايت هاي معروف ساخته شده با استفاده از AngularJS عبارتند از:
Netflix
Paypal
Upwork
Youtube
Django
Django
Django يک framework وب منبع باز و رايگان است که در Python نوشته شده است. Django که توسط تيمي از توسعه دهندگان با تجربه ساخته شده است ، کار توسعه وب را آسان می کند تا توسعه دهندگان بتوانند بدون اختراع دوباره چرخ! ، روي نوشتن برنامه ها تمرکز کنند.
سازمانهاي بزرگي به طور فعال از جنگو در توسعه نرم افزارهایشان استفاده مي کنند. برخي از وب سايت هاي معروف ساخته شده با استفاده از جنگو عبارتند از:
Disqus
Instagram
Mozilla
Pinterest
لاراول
لاراول يک framework وب مبتني بر PHP است که داراي يک syntax ظريف و با مفهوم است.این framework منبع باز است و از الگوي model-view-controller پيروي مي کند که قوي و قابل درک است.
طبق Google Trends ، لاراول رتبه قدرتمندترين فریم ورک PHP را به عنوان يک پلت فرم استاندارد به همراه ويژگي های غنی که براي توسعه برنامه هاي وب با عملکرد بالا در PHP ماسب است را کسب کرده است .
برخي از وب سايت هاي معروف ساخته شده با استفاده از لاراول عبارتند از:
Alison.com
Barchart.com
Neighborhood Lender
World Walking
فریم ورک هاي علوم داده
Apache Spark
Apache Spark يک موتور تحليل واحد براي پردازش داده در مقياس بسیار بزرگ است. با استفاده از Apache Spark مي توانيد به سرعت برنامه ها را در Java ، Scala ، Python ، R و SQL بنويسيد.
بيش از 3000 شرکت از Apache Spark استفاده مي کنند ، از جمله :
Amazon
Cisco
Databricks
Hortonworks
Microsoft
Oracle
Verizon
Visa
PyTorch
PyTorch يک framework يادگيري ماشين منبع باز است که روند تحقيق و نمونه سازي تا استقرار توليد را تسريع می بخشد.(لازم به ذکر است که PyTorch را می توان یک کتابخانه قلمداد کرد)
در ابتدا توسط گروه تحقيقاتي هوش مصنوعي فيس بوک توسعه يافته . از PyTorch مي توان با Python و همچنين ++C استفاده کرد. از PyTorch براي پردازش بينايي رايانه اي (Computer Vision) و Natural Language Processing (NLP) استفاده مي شود. برخي از وب سايت هاي معروف ساخته شده با استفاده از PyTorch عبارتند از:
Comcast
Exelon
Trifo
Quadient
TensorFlow
TensorFlow يک framework منبع باز end-to-end براي يادگيري ماشين (ML) است. TensorFlow دارای يک اکوسيستم جامع ، انعطاف پذيرپر از ابزارها ، کتابخانه ها و منابع افراد مختلف است که به محققان اجازه مي دهد تا در ML حسابی غرق شوند ، و به توسعه دهندگان اجازه می دهد به سرعت برنامه هاي مجهز به ML را ايجاد و استقرار دهند.
سه برنامه معمول از TensorFlow عبارتند از:
Convolutional Neural Networks (CNN) براي شناسايي و پردازش تصوير.
مدلهاي خطي در مقياس بزرگ براي تجزيه و تحليل داده ها و پيش بيني هاي ساده رفتاري.
مدل هاي متوالی (Seq2Seq) براي ويژگي هاي مرتبط با زبان انسان.
framework هاي توسعه موبايل
Ionic
Ionic يک جعبه ابزار منبع باز رايگان براي توسعه برنامه هاي بومي با کيفيت بالا و چند پلتفرمي براي Android ، iOS و وب است – همه و همه با یک کد واحد.
Ionic يک بستر توسعه براي کل چرخه حيات یک برنامه است که به تيم ها امکان مي دهد برنامه هاي بهتر و سريعتري بسازند. برخي از برنامه هاي معروف که با استفاده از Ionic توسعه يافته اند:
MarketWatch
McDonald's Türkiye
Pacifica
Xamarin
Xamarin يک پلت فرم رايگان منبع باز براي توسعه برنامه هاي Android ، iOS با دات نت و#C است. Xamarin بخشي از پلتفرم NET. است که داراي یک جامعه فعال متشکل از بيش از 60،000 نفر از بيش از 3700 شرکت است.
برخي از برنامه هاي معروف که از Xamarin استفاده می کنند عبارتند از:
برنامه هاي مشتري های خطوط هوايي آلاسکا
CA Mobile براي موبايل بانک
Novarum DX ، يک برنامه پزشکي
فلاتر
Flutter مجموعه ابزارهاي گوگل براي ساخت برنامه هاي زيبا و کامپايل شده بومي براي موبايل ، وب و دسک تاپ از يک پايگاه کد واحد است. اين فریم ورک دارای رابط کاربري گويا و انعطاف پذير است و عملکرد بومي را در سيستم عامل هاي iOS و Android ارائه مي دهد.
برخي از برنامه هاي معروف که با استفاده از Flutter ساخته شده اند:
Alibaba (eCommerce)
Cryptography
Google Ads(utility)
توصيه اي قبل از شروع کار با framework ها
بهتر است قبل از استفاده از framework ها براي توسعه برنامه ها ، مهارت هاي کدنويسي را با يادگيري زبان برنامه نويسي مربوط به آن فریم ورک بیاموزید و توسعه دهيد. در غير اين صورت ، ممکن است شما يک تجربه ارزشمند با فناوري زيربنايي موجود در يک framework را از دست دهيد.
اگر در حال حاضر يک برنامه نويس خبره نيستيد ، درک کدي که framework را پشتیبانی مي کند ضروري است. اين دانش هنگامي که با چالش هاي پيچيده اي روبرو مي شويد ، کار شما را آسان تر مي کند و شما را به يک توسعه دهنده ماهر تبديل مي کند.
بسياري از توسعه دهندگان front-end براي حمايت از کل جامعه توسعه دهندگان به framework هاي متن باز کمک مي کنند. به عنوان مثال ، توسعه دهندگان در گوگل AngularJS و Polymer را مي سازند که هر دو به صورت رايگان در دسترس همه توسعه دهندگان front-end قرار دارند.
بسياري از توسعه دهندگان با مشارکت در کتابخانه هاي منبع باز نيز از جامعه front-end پشتيباني مي کنند.
نتيجه
در این مقاله به مختصر درباره این که فریم ورک چیست؟ تفاوت آن به کتابخانه ها و برخی از فریم ورک های محبوب اشاره کردیم.پيشنهاد نهايي براي برنامه نويسانی که مي خواهند از framework ها براي توسعه برنامه استفاده کنند ، يادگيري يک framework جديد يا يک زبان برنامه نويسي بر اساس نيازهایی که برنامه مورد نظرشان الزام می کند است.
علاوه بر اين ، زمينه هايي مانند front-end ، back-end ، مديريت فضای ابری و فناوري موبايل ، سهم بالقوه هر کدام از این علوم در بازار تجارت ، پايداري و موارد ديگر را تجزيه و تحليل کنيد و قبل از تصميم به یادگیری هر کدام از فریم ورک ها در مورد پایه و اساس تکنولوژی و علم پشت آن اطلاعات کسب کنید.