در دنیای برنامهنویسی صدها مفهوم وجود دارد که یک برنامهنویس باید آنها را بداند. برای رسیدن به چنین دانش گستردهای به سالها تجربه نیاز خواهید داشت. شما با آزمون و خطا میتوانید تجربههای بسیاری را بدست آورید پس دائماً به دنبال یادگیری باشید. یکی از مسائل مهم در برنامهنویسی، دانستن تمایز بین کتابخانه، فریمورک و API است. در این مقاله نیز قصد تعریف کردن این 3 مورد را دارم. برای اینکه به تفاوت بین این 3 پی ببریم، باید ابتدا مفهوم آنها را بلد باشیم.
کتابخانه چیست؟
کتابخانهها مجموعهای از توابع و فرآیندها هستند که به یک زبان برنامهنویسی کدگذاری شدهاند. ما برای تسهیل در ساخت نرمافزارها و بهبود عملکرد میتوانیم از کتابخانهها استفاده کنیم. کتابخانهها قابلیت اجرا ندارند اما برای اجرا شدن سایر اپلیکیشنها ضروری هستند.
کتابخانهها شامل کدهای از پیش نوشته شده هستند. با کمک آنها دیگر لازم نیست که تمام آن کدها را از اول بنویسید. مثلاً ما در C++ از کتابخانهی <cstring> برای کار کردن با رشتهها استفاده میکنیم. ما معمولاً برای پی بردن به اندازهی یک رشته از تابع strlen () و voila استفاده خواهیم کرد. آیا تا به حال کدهای مربوط به آن تابع را نوشتهاید؟ اگر کتابخانه <cstring> وجود نداشت، چه اتفاقی میافتاد؟ شما مجبور میشدید کدهای تمام توابع استفاده شده در پروژه را به تنهایی بنویسید.
با تمام نکاتی که گفته شد، مطمئناً خودتان به ضرورت کتابخانهها پی خواهید برد. برای تمام زبانهای برنامهنویسی، کتابخانه وجود دارد. کتابخانه میتواند یک زبان استاندارد بوده و یا توسط خودتان نوشته شده باشد. به همین دلیل میتوانید در هر پروژهای از آنها استفاده کرده و آن را با هر کسی به اشتراک بگذارید.
فریمورک چیست؟
فریمورک مجموعهای از توابع است که بر روی یک کار خاص تمرکز دارد. شما با میل خود باید فریمورک مناسب را انتخاب کنید. در برنامهنویسی یک سری کارهای اجباری وجود دارد که میتوان به روشهای مختلفی آنها را پیادهسازی کرد. رابط صفحهی وب را میتوان جزو یکی از همین کارها دانست. کمی به نحوهی انجام دادن آن فکر کنید. مطمئنا استایلهای بیشماری وجود دارد. فریمورکها برای آسانتر و سریعتر کردن همین موارد اجباری ساخته شدهاند.
میخواهم دوباره از مثال رابط صفحهی وب استفاده کنم. شاید استایلهای زیادی وجود داشته باشد اما ساخت هر استایل با بقیه شباهت دارد. به همین خاطر از فریمورکی مثل Ruby on Rails استفاده میکنیم. بنابراین فریمورکها را میتوان مجموعهای از توابع دانست که روی یک کار خاص تمرکز دارند. یک فریمورک از کتابخانههای زیادی تشکیل شده است. معمولاً چندین توسعهدهنده یک فریمورک را خلق میکنند چون ساختن آن کمی پیچیدهتر از ساخت یک کتابخانه است.
API چیست؟
ما میتوانیم API را به عنوان مجموعهای از فرآیندها تعریف کنیم که امکان حل مسئله را براساس تقسیمبندی کد فراهم میکند. تمام این فرآیندها، متدها و توابع در یک الگوریتم گنجانده شدهاند. API مخفف عبارت «Application Programming Interface» است که به رابط برنامهنویسی اپلیکیشن اشاره دارد. ما معمولاً از API به عنوان یک روش برای رسیدن به ارتباط بین کامپوننتهای مختلف استفاده میکنیم. با API به خدمات خاصی دسترسی داریم که رسیدن به آنها در نبود API ممکن نیست.
بیایید به عنوان مثال، تلگرام را در نظر بگیریم. تلگرام دارای یک API است که به کاربران خود اجازهی تغییر دادن موارد خاصی را در برنامه میدهد. به عنوان مثال میتوانید در این برنامه ربات، نظرسنجی، بازی و غیره را بسازید. در صورت نبودن آن API، کاربران نمیتوانستند این تغییرات را در برنامه ایجاد کنند. تلگرام در API خود کتابخانهها، توابع، فرآیندها و موارد دیگری را به اشتراک میگذارد تا بتواند نیازهای کاربران خود را به خوبی برآورده کند.
منظورم این نیست که ما میتوانیم تمام تلگرام را تغییر دهیم. شرکتها تنها اطلاعات محدودی را به اشتراک میگذارند تا تغییرات فقط در دستگاه شما رخ دهد. موارد این چنینی زیاد هستند اما تمام آنها ویژگیهای مشابهی دارند. خیلی از برنامهنویسان برای آسانتر کردن روند ساخت یک اپلیکیشن از API استفاده میکنند. APIها با ارائه دادن توابع مختلف، کار برنامه نوشتن را برای برنامهنویسان دلپذیرتر خواهند کرد.
تفاوت بین کتابخانه، فریمورک و API
حالا که با مفاهیم بالا آشنا شدیم، پی بردن به تفاوتهای میان کتابخانه، فریمورک و API راحتتر شده است. بیایید یک نگاه کلی به این موارد بیاندازیم.
- کتابخانهها به شما اجازه میدهند تا کنترل کاملی روی پروژههای خود داشته باشید. شما همان کسی هستید که توابع و کدهای مربوط به آن را ایجاد میکنید. شما میتوانید از کتابخانههای پیشنهادی دیگران نیز استفاده کنید. تمام کتابخانهها دارای مستندات هستند و به شما این امکان را میدهند تا به دلخواه خود از آنها استفاده کنید.
- شما با استفاده از یک فریمورک نمیتوانید این کار را انجام دهید، چون این شخص توسعهدهنده است که مجموعهای از توابع را در اختیار شما قرار میدهد. اگرچه شما به هیچکدام از آنها دسترسی ندارید. فریمورکها فقط چیزهای لازم را به شما نشان میدهند تا بتوانید سریعتر و موثرتر به هدف خود برسید. تفاوت بزرگ میان یک کتابخانه و فریمورک، مدت زمانی است که برای ساخت پروژه صرف میشود. روند ساخت پروژه با کمک فریمورک سریعتر خواهد بود.
- API به شما امکان ساخت نرمافزار را نمیدهد اما میتوانید با نرمافزارهای ساخته شده ارتباط برقرار کنید. مثلاً برنامهای را در نظر بگیرید که به شما امکان اشتراکگذاری در فیسبوک را میدهد. این قابلیت از API فیسبوک برای برقراری ارتباط بیت دو برنامه استفاده میکند. با کمک API میتوانیم کارها را بهتر مدیریت کنیم چون درک کردن و پیادهسازی کدها آسانتر خواهد شد.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید