مفهوم کتابخانه در برنامه نویسی
زمان مطالعه 2 دقیقه
۸ مهر ۱۴۰۰
نویسنده پایدار سامانه
تعداد کامنت 0

کتابخانه یا Library در برنامه‌نویسی چیست؟

اگر در برنامه نویسی و توسعه نرم افزار تازه کار هستید و یا قصد کسب اطلاعاتی در این حوزه هستید حتما با واژه هایی نظیر کتابخانه (Library) یا فریم ورک (Framework) برخورد داشته اید، در مورد کتابخانه میخواهیم اطلاعاتی کسب کنیم و موضوع را کمی باز کنیم که استفاده از کتابخانه ها خوب است یا بد، چه نکاتی را باید دقت کنیم و از همه مهمتر تفاوت فریم ورک با کتابخانه چیست؟ با ما همراه باشید تا خیلی مختصر به این موارد بپردازیم.

کتابخانه چیست؟

کتابخانه یا لایبرری (به انگلیسی Library) مجموعه ای از کدها و الگوریتم های از پیش ساخته شده است که می توانیم به بصورت بسته ای تر و تمیز به پروژه های خود اضافه و به راحتی از آن استفاده کنیم. تقریبا در تمامی زبان های برنامه نویسی از این مفهوم و واژه استفاده می شود و بعید است زبان برنامه نویسی وجود داشته باشد که از کتابخانه ها بهره نبرده باشد.

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

کتابخانه ها بسیار مفید و مقرون به صرفه هستند و به راحتی قابل استفاده خواهند بود. بعنوان مثال تعداد زیادی کتابخانه با CSS و JavaScript ساخته شده اند که می توانند افکت ها انیمیشن های جذاب را به وب سایت شما اضافه کنند که نوشتن آنها ممکن است بسیار زمان بر باشد. هرچند که بدون استفاده از کتابخانه ها این کار قابل انجام است اما قطعا نمی توان با آن کیفیت و ظرافت که یک کتابخانه که تنها کار تخصصی ان ایجاد انیمیشن است نمی توانیم کد بنویسیم و در آن سبک و اندازه نمی توانیم بهینه کنیم و برنامه سبکی طراحی کنیم.

اکثر کتابخانه ها متن باز یا منبع باز (Open-source) هستند و توسط اشخاص مختلف توسعه داده می شوند، پس دید و مطق یک شخص تبدیل به واقعیت نمی شود و از ابعاد گوناگون بررسی می گردند و در نهایت سیستم محکم و قابل اتکایی طراحی می شوند، البته همه این موارد به درصد استفاده و مشارکت هر کتابخانه بستگی دارد که آمار آن را می توانید در مخزن (Repository) هر کتابخانه مشاهده بفرمایید که تعداد استفاده و درصد و حجم توسعه آن کتابخانه به چه صورت بوده است.

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

استفاده از کتابخانه ها همیشه هم بهینه و مناسب نیست، باید نهایت دقت را در انتخاب آنها داشته باشید، هم از نظر وابستگی (Dependency) پروژه به آن کتابخانه که جقدر کد های شما را درگیر این وابستگی می کند و اینکه جقدر قابلیت تغییر دارید و آیا می توانید به راحتی کتابخانه را کنار گذاشته و از کتابخانه دیگری استفاده کنید و یا خودتان کد های شخصی جایگزین آن کنید و یا اینکه آنقدر این کتابخانه در دل کد ها و کد بیس شما پیچیده و در هم تنیده است , به اصلاح tight coupling اتفاق افتاده است و دیگر تغییر کار ساده ای نیست و شاید غیر ممکن باشد، شما باید قدرت مدیریت تغییر بالایی داشته باشید که به آن Change Management می گویند.

در نظر بگیرید که در یک سایت که طراحی شده است در چند صفحه نیاز به اسلایدر دارید، یکی در صفحه اصلی برای Main Slider اصلی وب سایت، یکی در صفحه محصولات برای اسلایدر تصاویر محصول و در همان صفحه برای محصولات مرتبط دوباره نیاز به اسلایدری دارید و با کمی دقت می توانید چند جای دیگر وجود اسلایدر را در سایت حدس بزنید، مثلا در لیست لوگو مشتریان، در نظرات مشتریان (Testimonials) و جاهای دیگر، اگر تمامی این موارد را با یک کتابخانه پیاده سازی کنید می تواند مطلوب و بهینه باشد و ممکن است نیاز گرافیکی و نوع پیاده سازی UI و UX شما بصورتی باشد که مجبور به استفاده از چند لایبرری در سایت کنید، گالری تصاویر محصولات علاوه بر حرکت اسلایدی نیاز به زوم دارد، اسلایدر صفحه اصلی نیاز به متن و عنوان بر روی تصاویر دارد و نیاز های متفاوت که دور از ذهن نیستند و به راحتی این اتفاق ممکن است رقم بخورد.

نترسید همیشه به این سختی و وحشتناکی نیست و جنس و نوع کتابخانه ها متفاوت هستند و با بررسی دقیق تر می توانید این موارد را پیش بینی و پیش گیری کنید، کتابخانه های کلاینت ساید (Client-Side) و فرانت کمتر درگیر این موضوعات می شوند و برای استفاده از کتابخانه ها پکیج ها سمت سرور بیشتر باید احتیاط کنید.

تفاوت کتابخانه و فریم ورک

اگر با فریم ورک ها آشنایی ندارید پیشنهاد میکنم مقاله Framework چیست را مطالعه کنید و دیدی در این زمینه کسب کنید، حال سوال پیش می آید که فرق بین کتابخانه و فریم ورک چیست؟ در واقع فریم ورک و کتابخانه هر دو یک چیز میباشند و تنها تفاوت آن ها این هست که فریم ورک به مجموع از کدهای آماده خیلی بزرگ مثل فریم ورک .NET Core میگویند و کتاب خانه هم به مجموع کد های کم تر مثل PHPMailer که یک کار تخصصی در حوزه ارسال ایمیل آن هم فقط در زبان PHP را بر عهده دارد. ولی در مورد jQuery هم از کلمه کتابخانه استفاده میشود و هم از فریم ورک به دلیل اینکه آنقدر وسیع نیست که به آن فریم ورک بگویند و نه آنقدر کوچک است که به آن کتابخانه بگویند.

اشتراک گذاری در شبکه های اجتماعی

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

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