মূল বিষয়বস্তু
কম্পিউটার প্রোগ্রামিং
কোর্স: কম্পিউটার প্রোগ্রামিং > অধ্যায় 6
পাঠ 7: তোমার ওয়েবপেজে জাভাস্ক্রিপ্ট লাইব্রেরীর ব্যবহারকোন জাভাস্ক্রিপ্ট লাইব্রেরিটি তোমার ব্যবহার করা উচিত?
কোন কার্যক্রম সম্পাদনার জন্য অনেক লাইব্রেরি রয়েছে এবং যে কোন একটি কার্যক্রম সম্পাদনার জন্য একাধিক লাইব্রেরি রয়েছে। উদাহরণস্বরূপ, date-picker অর্থাৎ তারিখ নির্বাচনের জন্য অনেক ধরনের লাইব্রেরি রয়েছে এবং এগুলোর সংখ্যা এতই বেশি যে, ডেভেলপারদের সুবিধার্থে এই লাইব্রেরিগুলো নিয়ে "সেরা 1 5 জেকুয়েরি তারিখ নির্বাচক" সম্পর্কিত প্রবন্ধও রয়েছে।
কিন্তু এতগুলো লাইব্রেরির মধ্যে থেকে সঠিকটি নির্বাচন করা সত্যিই বিভ্রান্তিকর। কোনটি কাজের জন্য উপযুক্ত? ভুল নির্বাচন করলে কি হবে?
ওয়েব ডেভেলপমেন্টের ক্ষেত্রে কোন একটি লাইব্রেরিকে "সঠিক" বলে নির্দিষ্ট করা জটিল। কিন্তু অবশ্যই কিছু ক্ষেত্রে একটির চেয়ে অপরটি ভালো এবং এটি নির্বাচন করার ক্ষেত্রে নিচের বিষয়গুলো তোমাকে সহায়তা করবে।
যেহেতু জেএস দিয়ে মূলত ব্যবহারকারীর জন্য বিভিন্ন ওয়েব উপাদান তৈরি করা হয়, এজন্য দুইটি বিষয়বস্তুর দিকে লক্ষ্য রাখতে হবে: প্রথমে ডেভেলপারের কথা চিন্তা করতে হবে (যেমন তুমি!), যে কোড করবে এবং ব্যবহারকারীর দিকেও লক্ষ্য রাখতে হবে যেন এটি তার জন্য সহজবোধ্য হয়।
এটা কি ডেভেলপারদের জন্য একটি ভালো অভিজ্ঞতা হবে?
- Well documented: It should be easy to find a reference of function signatures, demos of actual usage, and a more narrative how-to-use guide. If a library has no documentation, it's usually a sign that they are not the most developer-friendly.
- Flexible: The demos in the documentation might look great - but might want to use a library in a slightly or completely different way than what the demos show. Look for signs of flexibility - Is it easy to send in configuration options? Is there a documented plugin architecture? Does it trigger many events that you could hook your code into?
- Actively maintained: Browsers change frequently. Libraries that once worked can suddenly stop working, because they relied on some quirk of the browser that changed. This is specially true of HTML5 shims and polyfills, because browsers are frequently releasing new versions with evolving implementations of the HTML5 elements. You can figure out how recently the library was updated by checking the date in their changelog. If there's no changelog and the library is hosted in an open source repository like Github, you can check the date of the last commit.
- Future thinking: If you're looking for an HTML5 "shim", prefer a "polyfill" - a shim that mimics the API. That way, theoretically, when all your users were using browsers that supported the technology, you'd be able to stop using the library entirely, with no change to your code at all. For example, if you're using a library to use video in your webpage, use a polyfill that will let you use the HTML5
video
tag, and it will replace it with a fallback technology like Flash in older browsers. - Tested: All good libraries should include tests that make sure their functionality works as expected. When a library is tested, then we can have confidence there will be some degree of backwards compatibility in new versions of the library.
- Clean code: We could treat open-source libraries as black boxes, and refuse to look inside of them, but sometimes, you may need to dig inside of the library code to debug an issue or add a new bit of functionality. Take a quick look at the code and see how easy it is to read, and if it has any red flags, like big chunks of commented-out lines of code.
- Responsive community: You will have questions. You will encounter bugs. Ideally, you'll be able to figure them out with developers, whether that's the maintainers or users.
যদি লাইব্রেরিটি গিটহাবে থাকে, তাহলে নিচের বিষয়গুলো দেখতে পার:
- ফর্কের সংখ্যা: অনেকগুলো ফর্ক (অথবা তারা) থাকা মানে হল উক্ত লাইব্রেরির জন্য অনেক ডেভেলপার রয়েছে। তবে এর অর্থ এই নয় যে তারা তোমাকে সাহায্য করবে, কিন্তু এতো কেবল শুরু! বড় লাইব্রেরিগুলোর অনেকগুলো ফর্ক থাকে এবং অন্যান্যদের 100 বা তার কম ফর্ক থাকে।
- সমস্যার সংখ্যা: কোন সমস্যা এখনও বিদ্যমান আছে কি? যদি বেশি দিন ধরে একই সমস্যা থাকে তাহলে হতে পারে এটি সঠিকভাবে রক্ষণাবেক্ষণ করা হয় না। আবার এমনও হতে পারে যে এটি অনেক বড় একটি প্রকল্প এবং সমস্যার সমাধান হতে সময় লাগে।
- সমস্যার ধরণ: কিছু সমস্যা পড়ে এটির উত্তর জানার চেষ্টা কর। উত্তর কি তাড়াতাড়ি পাওয়া যাচ্ছে? ব্যবহার প্রক্রিয়া সম্পর্কিত প্রশ্নের উত্তর কি দেওয়া হয়? তারা কি সাহায্য করার জন্য প্রস্তুত নাকি কড়াভাবে উত্তর দেয়?
- বাহিরের কমিউনিটি: এই লাইব্রেরি সম্পর্কিত প্রশ্নের উত্তর কি স্ট্যাক ওভারফ্লোতে দেওয়া হয়? এই লাইব্রেরির উপর কি আরও লাইব্রেরি গড়ে উঠেছে? অনেক ছোট লাইব্রেরির বাহিরের কমিউনিটি খুঁজে পাওয়া মুশকিল হবে, কিন্তু বড় লাইব্রেরি যেমন Modernizr (মরডানাইজার) অথবা Backbone (ব্যাকবোন) এর বড় একটি কমিউনিটি রয়েছে। তুমি লাইব্রেরিগুলো সম্পর্কে ইন্টারনেটে খোঁজ করে দেখতে পার।
এটা কি ব্যবহারকারিদের জন্য ভালো অভিজ্ঞতা হবে?
যদি জেএস লাইব্রেরি কোন ইউআই উপাদান তৈরি না করে, তাহলে শুধু প্রথম কয়েকটি গুরুত্বপূর্ণ।
- ফাইল সাইজ: তোমার ব্যবহৃত জেএস ফাইলটির সাইজ কত? যেমন, জেকুয়েরির gzipped (জিজিপড) এবং minified (সংক্ষিপ্ত) ফাইল হল 18k এবং Select2 (সিলেক্ট2) হল 7K।
- দক্ষতা: সাইজের পাশাপাশি, আরেকটি বিষয় হল জেএস লাইব্রেরিটি কতটা কার্যকরী, যেমন - যদি এটি বেশি বেশি DOM (ডম) পরিবর্তন করে, গ্রাফিক্স রেন্ডারিং এর কাজ করে, হিসাব করে, একই সাথে অনেক মেমরি কল করে, ইত্যাদি, তাহলে অবশ্যই নথিপত্রে দেখে নেবে যে এটির দক্ষতা কেমন এবং নিজেও যাচাই করবে।
- ব্রাউজার সমর্থন: যাচাই কর যে এটি সকল ব্রাউজার সমর্থন করে কিনা, অর্থাৎ সকল ব্রাউজারে এটি সঠিকভাবে কাজ করে কিনা। বর্তমানের অনেক লাইব্রেরি পুরাতন ব্রাউজার সমর্থন করে না (যা তোমার ওয়েবপেজের দরকার হতে পারে), কারণ তারা শুধু মোবাইলে ব্যবহারের জন্য তৈরি করা হয়েছে।
- কার্যকারিতা: ইউআই এর জন্য অনেক উপাদানই খুব সুন্দর, কিন্তু তারা কার্যকর নয় (দৃষ্টি প্রতিবন্ধীদের জন্য প্রযোজ্য নয়)। দ্রুত যাচাইয়ের জন্য, তুমি ওয়েভ লাইব্রেরির নমুনার পেজ দেখতে পার।
- রেস্পন্সিভ: তোমার পেজটি যেন মোবাইল ব্যবহারকারীদের জন্যও সঠিকভাবে দৃশ্যত হয়, বাটনগুলো কি সঠিক সাইজের হয়েছে? এটি কি টাচ ইভেন্ট ব্যবহার করে? সকল সাইজের মোবাইলের স্ক্রিনের জন্য এটি কি ঠিকভাবে কাজ করে?
যদি এতকিছু যাচাই করার পরেও তুমি লাইব্রেরি নির্বাচন করতে না পার তাহলে: ডেভেলপারদের কাছে জিজ্ঞাসা করতে পার, বন্ধুর সাহায্য নিতে পার। হয়তো কোন জনপ্রিয় লাইব্রেরি ব্যবহারের পরামর্শ পাবে।
লক্ষ্য করি: কোন একটি সঠিক উত্তর নেই, কোন একটি নির্দিষ্ট ভালো লাইব্রেরি নেই। এছাড়াও এভাবে সকল জেএস লাইব্রেরি যাচাই করার কোন দরকার নেই, বিশেষ করে নিজের প্রকল্পে কাজ করার সময়। যে কোন একটি লাইব্রেরি নির্বাচন করে দেখতে পার যে কোনটি ব্যবহার করতে তোমার সুবিধা হয়। এভাবেই তোমার নিজস্ব একটি লাইব্রেরির তালিকা তৈরি হবে, যা তোমাকে ভবিষ্যতে লাইব্রেরি নির্বাচনে সহায়তা করবে।
আলোচনায় অংশ নিতে চাও?
কোন আলাপচারিতা নেই।