প্রকাশিত: ৩ এপ্রিল, ২০২৫
ক্রোমে যখন কোনো নতুন ফিচার চালু করার সময় আসে, তখন একটি কার্যকর, সঙ্গতিপূর্ণ এবং নির্ভরযোগ্য ফিচার নিশ্চিত করার জন্য অনেকগুলো যাচাই-বাছাই প্রক্রিয়া অনুসরণ করা হয়। এই প্রক্রিয়াগুলোর মধ্যে একটি হলো ফিঞ্চ এক্সপেরিমেন্টস। এর নামের "এক্সপেরিমেন্ট" অংশটি আপনাকে যেন এটি অনিরাপদ ভেবে ভুল না করায়, কারণ বিষয়টি ঠিক তার উল্টো। ফিঞ্চ রোলআউটগুলো আমাদের এমন সব ফিচার নিরাপদে যোগ করতে সাহায্য করে, যেগুলো সম্ভাব্যভাবে সামঞ্জস্যতার সমস্যা তৈরি করতে পারে। কারণ, কোনো অপ্রত্যাশিত সমস্যার সম্মুখীন হলে এটি আমাদের দ্রুত ফিচারটি নিষ্ক্রিয় করার সুযোগ দেয়। এই নিবন্ধে ব্যাখ্যা করা হয়েছে যে, ক্রোমের কিছু ফিচার প্রকাশের জন্য আমরা কীভাবে এবং কেন ফিঞ্চ ব্যবহার করি।
সাধারণত, ক্রোমে কোনো ফিচার চালু করার অর্থ হলো ক্রোমের ভেতরে একটি বুলিয়ানকে 'অফ' থেকে 'অন'-এ টগল করা। যখন কোনো নতুন ফিচার চালু হয়, তখন এর সহজ অর্থ হলো এই বুলিয়ানটির ডিফল্ট অবস্থা সকল ব্যবহারকারীর জন্য 'অন'-এ পরিবর্তিত হয়ে যায়। এটি করার কয়েকটি উপায় রয়েছে:
- "কোডের মাধ্যমে" ফিচারটি সক্রিয় করুন : এর অর্থ হলো, ক্রোম এক্সিকিউটেবল ফাইলটিতেই এমন একটি সেটিং রয়েছে যা ডিফল্টরূপে সক্রিয় থাকে।
- ‘অরিজিন ট্রায়ালের মাধ্যমে’ ফিচারটি সক্রিয় করুন : অরিজিন ট্রায়াল সিস্টেম হলো কোনো নির্দিষ্ট সাইটের জন্য একটি উপায়, যার মাধ্যমে তারা সকল ক্রোম ব্যবহারকারীকে একটি পরীক্ষায় অন্তর্ভুক্ত করতে পারে, যা শুধুমাত্র সেই সাইটেই একটি নির্দিষ্ট ফিচার সক্রিয় করে।
- ‘Finch ব্যবহার করে’ ফিচারটি সক্রিয় করুন : Chrome নির্দিষ্ট সময় পর পর সার্ভার থেকে একটি কনফিগারেশন ফাইল সংগ্রহ করে, এবং এই ফাইলে কোনো ফিচার সক্রিয় বা নিষ্ক্রিয় করার নির্দেশনা থাকতে পারে।
- একটি "ফিঞ্চ কিল সুইচ" হলো "ফিঞ্চ ব্যবহার করে" সক্রিয় করার বিপরীত প্রক্রিয়া। এক্ষেত্রে ফিচারটি "কোডের মাধ্যমে" সক্রিয় করা হয়, কিন্তু পরে ফিঞ্চ সিস্টেম ব্যবহার করে তা নিষ্ক্রিয় করে দেওয়া হয়, সাধারণত চালু করার পর কোনো সমস্যা ধরা পড়লে।
ফিঞ্চ ব্যবহারের ক্ষেত্র
এই ব্লগ পোস্টের বিষয় হলো ফিঞ্চ, তাই আমরা 'ইন কোড' বা 'অরিজিন ট্রায়াল' সক্রিয় করা নিয়ে আর বেশি আলোচনা করব না। কিন্তু ফিঞ্চের একাধিক আকর্ষণীয় ব্যবহার রয়েছে।
অল্প সংখ্যক ব্যবহারকারীর উপর পরীক্ষা করুন (এ/বি টেস্টিং)
প্রায়শই, কোনো ফিচার বা অপটিমাইজেশনের " এ/বি টেস্টিং " করার জন্য ফিঞ্চ ব্যবহার করা হয়। এক্ষেত্রে, অল্প সংখ্যক ব্যবহারকারীর জন্য একটি ফিচার চালু করা হয়, যাতে ফিচারটি চালু থাকা এবং বন্ধ থাকার মধ্যে পারফরম্যান্স, আচরণ বা ব্যবহারের পার্থক্য সম্পর্কে ডেটা সংগ্রহ করা যায়।
A/B টেস্টিং-এর একটি উদাহরণ হলো যখন আমরা স্পেকুলেটিভ ইমেজ ডিকোড চালু করেছিলাম। এটি একটি পারফরম্যান্স উন্নতি যা ডেভেলপার বা ব্যবহারকারীদের কাছে লক্ষণীয় হওয়ার কথা নয়, শুধু এর ফলে ক্রোম আরও দ্রুত পেজ লোড করে। কিন্তু কোনো অপ্রত্যাশিত ঘটনা ঘটেনি তা নিশ্চিত করতে এবং পারফরম্যান্সের উপর এর প্রভাব সঠিকভাবে পরিমাপ করতে, আমরা এটির A/B টেস্ট করার জন্য ফিঞ্চ (Finch) ব্যবহার করেছিলাম।
একটি সমস্যাযুক্ত বৈশিষ্ট্য নিষ্ক্রিয় করুন
পণ্যের নিরাপত্তা এবং ব্যবহারকারীর অভিজ্ঞতার স্বার্থে, ক্রোম ফিঞ্চ সিস্টেম ব্যবহার করে দূর থেকে সেইসব সমস্যাযুক্ত ফিচার নিষ্ক্রিয় করতে পারে যেগুলো "কোডের মাধ্যমে" সক্রিয় করা হয়েছে। উদাহরণস্বরূপ, যদি কোনো ফিচার ডিফল্টভাবে সক্রিয় থাকে, কিন্তু ক্রোম 'স্টেবল' স্ট্যাটাসে পৌঁছানোর পরেই কেবল সমস্যাগুলো দেখা দেয়, তাহলে ব্যবহারকারী এবং প্রতিষ্ঠানগুলোকে একটি নিরাপদ অবস্থায় ফিরিয়ে আনতে ফিচারটি দ্রুত নিষ্ক্রিয় করার একটি উপায় প্রয়োজন। যখন ফিচারটিতে অনাবিষ্কৃত বাগ থাকে, অথবা যখন কোনো ফিচার অপ্রত্যাশিত কারণে বিদ্যমান সাইটগুলোকে অকার্যকর করে দেয়, তখন এটি প্রয়োজনীয় হতে পারে।
ঝুঁকিপূর্ণ বৈশিষ্ট্যগুলি আরও নিরাপদ উপায়ে সক্রিয় করুন
ক্রোম যেসব ফিচার চালু করে, তার বেশিরভাগের ক্ষেত্রেই ঝুঁকি কম থাকে, কারণ আমরা পরীক্ষা করে যাচাই করতে পারি যে নতুন কোডটি সব সাইটে কাজ করে।
তবে, কখনও কখনও অজানা সামঞ্জস্যের সমস্যা বা অন্যান্য জটিল ইন্টারঅ্যাকশনের কারণে ফিচার চালু করা বেশ ঝুঁকিপূর্ণ হতে পারে। এক্ষেত্রে, ফিঞ্চ সিস্টেমটি ফিচারটিকে শুধু কিল সুইচ হিসেবে রিজার্ভে না রেখে, প্রকৃতপক্ষে সক্রিয় করার জন্য ব্যবহার করা যেতে পারে।
উদাহরণস্বরূপ, এইচটিএমএল পার্সার 'রিলাক্সেশন' ছিল নতুন কাস্টমাইজেবল-সিলেক্ট ফিচারের সাথে সম্পর্কিত একটি পরিবর্তন, যা একটি <select> এলিমেন্টের ভিতরে আগের চেয়ে বেশি কন্টেন্ট রাখার সুযোগ করে দেয়। যেহেতু এই পরিবর্তনের ফলে বিদ্যমান সাইটগুলো ভেঙে যাওয়ার সম্ভাবনা ছিল, তাই আমাদের এটি সতর্কতার সাথে প্রয়োগ করতে হয়েছিল।
ফিঞ্চ ব্যবহার করে ফিচার সক্রিয় করা, সেগুলোকে নিষ্ক্রিয় করার চেয়ে বেশি নিরাপদ হতে পারে, কারণ বিভিন্ন কারণে ফিঞ্চ সব ব্যবহারকারীর কাছে পৌঁছাতে পারে না। উদাহরণস্বরূপ, কিছু এন্টারপ্রাইজ ব্যবহারকারীর এমন নীতি থাকে যা ফিঞ্চ কনফিগারেশনকে সম্পূর্ণরূপে নিষিদ্ধ করে। যদি কোডে কোনো ফিচার সক্রিয় করা হয় এবং তারপর ফিঞ্চ ব্যবহার করে সেটিকে নিষ্ক্রিয় করা হয়, তাহলে সেই ব্যবহারকারীরা ঝুঁকিতে থাকবেন, কারণ তারা ফিঞ্চের সেটিংটি পাবেন না এবং তাদের জন্য ফিচারটি সক্রিয়ই থাকবে। এর পরিবর্তে ফিঞ্চ ব্যবহার করে ফিচারটি সক্রিয় করার মাধ্যমে, আমরা জরুরি অবস্থায় সকল ব্যবহারকারীর জন্য এটিকে নিষ্ক্রিয় করার সক্ষমতা নিশ্চিত করতে পারি।
আপনি কোনো ফিঞ্চ এক্সপেরিমেন্টের অংশ কিনা, তা কীভাবে যাচাই করবেন?
ব্যবহারকারীদের পক্ষে সরাসরি এটি করা কঠিন। প্রস্তাবিত উপায় হলো একজন ক্রোম ইঞ্জিনিয়ারের সাথে যোগাযোগ করা (সাধারণত কোনো ক্রোমিয়াম বাগের প্রসঙ্গে) এবং তাদের কাছে আপনার "ভেরিয়েশন তালিকা" পাঠানো। এটি হলো একটি নির্দিষ্ট ব্রাউজারের জন্য সমস্ত ফিঞ্চ সেটিংসের বিশেষ কোডেড সংস্করণগুলির একটি তালিকা। এটি সহজেই সংগ্রহ করা যায়:
-
chrome://versionএ যান। - "Active Variations"-এর পাশে তালিকাভুক্ত সম্পূর্ণ টেক্সট লিস্টটি কপি করুন (হ্যাঁ, এটি বেশ দীর্ঘ হতে পারে)।
- ওই লেখাটি একটি টেক্সট ফাইলে (যেমন,
variations.txt) পেস্ট করুন এবং একটি বাগের সাথে সংযুক্ত করুন।
এই বৈচিত্র্যের তালিকাটির সাহায্যে ক্রোম ইঞ্জিনিয়াররা তালিকাটি বিশ্লেষণ করে দেখতে পারেন যে আপনার ব্রাউজারে কোন ফিচারগুলো চালু বা বন্ধ আছে।
ফিঞ্চ পরীক্ষাটি যখন ১০০% সম্পন্ন হয়ে প্রস্তুত হয়ে যাবে, তখন কী ঘটবে?
আমাদের পরীক্ষাটি "সফল" হয়েছে এবং আলোচ্য ফিচারটি ডেভেলপার বা ব্যবহারকারীদের জন্য কোনো ঝুঁকি তৈরি করছে না—এই বিষয়ে আমরা নিশ্চিত হওয়ার পর, আমরা সর্বদা ফিচারটি "কোডের মাধ্যমে" সক্রিয় করি। এই পর্যায়ে, ফিঞ্চ কনফিগারেশনের মেয়াদ শেষ করার তারিখ নির্ধারণ করা নিরাপদ, যাতে যে সংস্করণে ফিচারটি কোডের মাধ্যমে সক্রিয় করা হয়েছিল, তার পরবর্তী সংস্করণগুলোর ব্রাউজারে এর কোনো প্রভাব না থাকে।