কনটেন্টে যান
২৬ জুলাই, ২০২৬ · ফাউন্ডেশনস

ফাউন্ডেশনস: একটা বিল্ডের ভেরিফিকেশন রেকর্ড পড়া

এই আর্টিকেলটি প্রকাশের সময়ের প্রোডাক্ট বর্ণনা করে। বর্তমান সক্ষমতার জন্য AI বিল্ডার এবং এজেন্ট টিম দেখুন।

ফাউন্ডেশনস: একটা বিল্ডের ভেরিফিকেশন রেকর্ড পড়া

তিন সপ্তাহ আগে আমি এক বন্ধুর জন্য একটি বুকিং উইজেট তৈরি করেছিলাম, যিনি একটি যোগ স্টুডিও চালান — একটি চ্যাট, একটি প্ল্যান যা আমি তাড়াতাড়ি অনুমোদন করেছিলাম কারণ আমি অন্য কিছুতে ব্যস্ত ছিলাম, একটি রান, আর তারপর একটি সবুজ চেকমার্কসহ একটি ভার্সন কার্ড যা আমি একনজর দেখে চলে গিয়েছিলাম। মঙ্গলবার তিনি টেক্সট করে জিজ্ঞেস করলেন তিনি দ্বিতীয় একটি স্টুডিওর সাইটও একই বিল্ডে পয়েন্ট করতে পারবেন কিনা। হ্যাঁ বলার আগে আমি ফিরে গিয়ে দেখলাম তিন সপ্তাহ আগে "ভেরিফায়েড" মানে আসলে কী ছিল, আর তখনই আমি প্রথমবারের মতো শুধু চেকমার্ক বিশ্বাস না করে এই ধরনের একটি রেকর্ড আসলে পড়লাম।

এটা ঠিক ভার্সন কার্ডের উপরে থাকে, প্রিভিউ এবং কোড অ্যাকশনগুলোর পাশে — একই জায়গা যেখানে আপনি রিডিপ্লয় বা রোলব্যাক করতে যাবেন। প্রথম যে জিনিসটা আমি লক্ষ্য করলাম: এটা শুধু সেই একটি ভার্সনের জন্য নির্দিষ্ট, পুরো কথোপকথনের জন্য নয়। আমি একটি ভাঙা ডেট পিকারের পেছনে ছুটে এই বিল্ডে পাঁচবার ইটারেট করেছিলাম, আর আমি অর্ধেক আশা করেছিলাম রেকর্ডটি আমাকে পুরো যাওয়া-আসার গল্প বলবে। তা করে না। ভার্সন ৪-এর রেকর্ড শুধু ভার্সন ৪ বর্ণনা করে। এর কোনো স্মৃতি নেই যে ভার্সন ২ একটি লগইন ফর্মসহ শিপ হয়েছিল যা নীরবে ব্যর্থ হয়েছিল, আর এটা আমাকে বলবে না যে ভার্সন ৫ নীরবে এমন কিছু ঠিক করেছে যা ভার্সন ৩ ভেঙে ফেলেছিল। প্রতিটি রেকর্ড একটি স্ন্যাপশট, কোনো ডিফ বা চেঞ্জলগ নয় — রিলিজ থেকে রিলিজে কী পরিবর্তন হয়েছে তার ইতিহাস চাইলে সেটা সম্পূর্ণ ভিন্ন একটি ভিউ। এটা শুধু "এটা ঠিক আছে কিনা" প্রশ্নের উত্তর দেয়।

নিচে স্ক্রল করলে, রেকর্ডটি ছয়টি সারিতে ভাগ হয়ে যায়:

স্তরপাস মানে
কার্যকরী / ব্রাউজার-ভিত্তিকবিল্ডটি একটি প্রকৃত ব্রাউজারে চালানো হয়েছিল; ইন্টারঅ্যাকশনগুলো পরীক্ষা করা হয়েছিল (গেমগুলো খেলা হয়েছিল)
কোড রিভিউএকটি রিড-অনলি রিভিউয়ার এমন কোনো ত্রুটি পায়নি যা একটি ফাইল এবং আচরণ দিয়ে প্রমাণ করা যায়
নিরাপত্তাকোনো ইনজেকশন সারফেস, লিক হওয়া সিক্রেট, বা অনিরাপদ প্যাটার্ন সামনে আসেনি
লিংক ও SEOকোনো ভাঙা লিংক নেই; মেটাডেটা, রোবটস এবং সাইটম্যাপ ঠিক আছে
অ্যাক্সেসিবিলিটিস্বয়ংক্রিয় axe পাস কোনো লঙ্ঘন খুঁজে পায়নি
কনফরম্যান্সবিল্ডে অনুমোদিত প্ল্যানে প্রতিশ্রুত জিনিসই আছে

ছয়টিই সবুজ ছিল, আর আমার প্রথম প্রবৃত্তি ছিল সেই একই ভুল প্রবৃত্তি যা আমার অনুমান বেশিরভাগ মানুষেরই হয়: নিরাপত্তা পাস হয়েছে, তাই এটা নিরাপদ; অ্যাক্সেসিবিলিটি পাস হয়েছে, তাই এটা অ্যাক্সেসযোগ্য। এই দুটি ব্যাখ্যার কোনোটাই চেকগুলো আসলে কী করে তার সাথে টিকে থাকে না। নিরাপত্তা পাস মানে হলো, উপরিতলের জিনিসগুলো — একটি কোয়েরিতে স্ট্রিং কনক্যাটেনেশন, ক্লায়েন্ট বান্ডলে উন্মুক্ত থাকা একটি API কী, ব্যবহারকারী যা টাইপ করেছে তার উপর একটি eval — এগুলো সামনে আসেনি। এটা একজন পেনিট্রেশন টেস্টারের সাথে একটি দিন নয়। আমার বন্ধুর স্টুডিও এই উইজেটের মাধ্যমে কোনো পেমেন্ট নিচ্ছে না, শুধু নাম আর সময়স্লট, তাই তার জন্য এই মান যথেষ্ট ছিল। এটা যদি একটি চেকআউট ফ্লো হতো, তাহলে আমি শুধু একটি মান-এর চেয়ে বেশি কিছু চাইতাম।

অ্যাক্সেসিবিলিটি হলো এমন একটি জিনিস যা সত্যিই আমাকে থামিয়ে কিছু যাচাই করতে বাধ্য করেছিল, কারণ "axe পাস" শুনতে যতটা পূর্ণাঙ্গ মনে হয়, বাস্তবে ততটা নয়। Axe — যে স্বয়ংক্রিয় ইঞ্জিনটি পেছনে চলে — নির্ভরযোগ্যভাবে WCAG সাফল্যের মানদণ্ডের প্রায় এক-তৃতীয়াংশ থেকে অর্ধেক ধরতে পারে: অনুপস্থিত অল্ট টেক্সট, খারাপ কনট্রাস্ট অনুপাত, লেবেলবিহীন ফর্ম ফিল্ড, স্পষ্ট ARIA ভুল প্রয়োগ। কিন্তু এটি আপনাকে বলতে পারবে না যে আমি যে কাস্টম ডেট-পিকার ড্রপডাউন চেয়েছিলাম তা স্ক্রিন রিডারে ব্যবহারযোগ্য কিনা, মাল্টি-স্টেপ বুকিং ফ্লো-তে ট্যাব করে গেলে ফোকাস কোথায় গিয়ে পড়ে, নাকি "confirmed" বনাম "pending" স্ট্যাটাসকে আমি যে সবুজ ও হলুদ রঙে দেখিয়েছি তা লাল-সবুজ কালার ব্লাইন্ডনেস আছে এমন কারো জন্য সমস্যা কিনা। এগুলোর জন্য দরকার এমন একজন মানুষ, যিনি প্রকৃত ব্যবহারকারীরা যেসব টুল ব্যবহার করেন তা বন্ধ রেখে পুরো বিল্ডটি নিজে ঘুরে দেখবেন। Axe প্রকৃত সংকেত দেয়, একেবারে অকেজো নয় — এটি অ্যাক্সেসিবিলিটির বানান-পরীক্ষক স্তর, সম্পাদক নয়।

Conformance এমন একটি সারি ছিল যা আমি প্রায় এড়িয়ে যাচ্ছিলাম, কারণ শুনতে এটি নিয়মতান্ত্রিক মনে হয় — "পরিকল্পনায় যা প্রতিশ্রুতি দেওয়া হয়েছিল তা আছে কিনা" — যতক্ষণ না মনে পড়ল যে আমি যে পরিকল্পনায় সম্মতি দিয়েছিলাম, সেটা লেখা হয়েছিল যখন আমি অন্যমনস্ক ছিলাম, এবং সত্যি বলতে আমার মনেই ছিল না আমি ইমেইল কনফার্মেশন চেয়েছিলাম নাকি শুধু SMS। এই স্তরটি বিল্ডকে পরিকল্পনার সাথে মিলিয়ে দেখে, আমার প্রকৃত উদ্দেশ্যের সাথে নয়, আর এটি পাস করেছিল, যা আমাকে জানিয়েছিল যে বিল্ডটি আমি যা করতে সম্মতি দিয়েছিলাম তার সাথে মিলেছে, তবে আমি ঠিক কী বোঝাতে চেয়েছিলাম তার সাথে নাও মিলতে পারে। আমি এমন বিল্ডের কথাও শুনেছি যা কার্যকরীভাবে মজবুত ও নিরাপদ ছিল, তবুও এই স্তরে ব্যর্থ হয়েছিল কারণ সময়ের চাপে একটি ফিচার নীরবে বাদ পড়ে গিয়েছিল। এটি এমন একটি স্তর যা বিল্ডকে সেই কথোপকথনের প্রতি সৎ রাখে যা থেকে এটি তৈরি হয়েছে, এমনকি সেই কথোপকথন নিজেই কিছুটা এলোমেলো হলেও।

ছয়টি সারির নিচে একটি দীর্ঘ তালিকা ছিল, যা দুটি ভাগে বিভক্ত, এবং এখানেই আমি সবচেয়ে বেশি সময় ব্যয় করেছি। Must-fix আইটেমগুলো বর্তমানে বিল্ডে ভুল কিছু নয় — এগুলো প্রমাণপত্র। একটি লাইনে লেখা ছিল যে রিভিউ স্তরটি এমন একটি ক্ষেত্র চিহ্নিত করেছিল যেখানে একটি ডেট স্ট্রিং সরাসরি একটি কোয়েরিতে ইন্টারপোলেট করা হয়েছিল, এবং এই সংস্করণটি সম্পূর্ণ চিহ্নিত হওয়ার আগেই সেটি ইতিমধ্যে সংশোধন করা হয়েছিল। আমি কোনো খোলা ক্ষত দেখছিলাম না; আমি একটি দাগ দেখছিলাম। এই পার্থক্যটি গুরুত্বপূর্ণ, কারণ যদি আপনি একটি must-fix এন্ট্রিকে সক্রিয় সতর্কতা হিসেবে পড়েন, তাহলে আপনি এমন কিছু নিয়ে চিন্তা করে সময় নষ্ট করবেন যা ইতিমধ্যে সমাধান হয়ে গেছে।

অ্যাডভাইজরি তালিকাটি আরও দীর্ঘ ছিল, এবং এতে বেশিরভাগ এমন জিনিস ছিল যা আমি নিজেও বলতাম যদি আমি কোনো সহকর্মীর কোড পর্যালোচনা করতাম আর মার্জ আটকাতে না চাইতাম: "পুনরাবৃত্ত স্লট-রেন্ডারিং ব্লকটিকে একটি শেয়ার্ড কম্পোনেন্টে বের করে আনার কথা বিবেচনা করুন," "এই এন্ডপয়েন্টে কোনো রেট লিমিটিং নেই, যা একটি অভ্যন্তরীণ বুকিং টুলের জন্য ঠিক আছে, তবে এটি পাবলিক হলে পুনর্বিবেচনার বিষয়।" এই তালিকায় কোনো কিছুই ত্রুটি ছিল না। এগুলো এমন বিচারমূলক সিদ্ধান্ত ছিল যা একজন ভেরিফায়ার শুধুমাত্র পরিকল্পনা ও কোড দেখে নিয়েছিল, আর একটি যোগ স্টুডিওর অভ্যন্তরীণ শিডিউলারের জন্য, এই প্রতিটি সিদ্ধান্তই যুক্তিসঙ্গত পক্ষে পড়েছিল। যদি আমার বন্ধুর স্টুডিওটি এমন একটি ফ্র্যাঞ্চাইজি হতো যেখানে উইজেটটি পঞ্চাশটি লোকেশন পেজে এমবেড করা থাকতো, তাহলে আমি রেট-লিমিটিং সংক্রান্ত বিষয়টিতে আপত্তি জানাতাম — এই শ্রেণীবিভাগ এমন প্রেক্ষাপটের উপর নির্ভরশীল যা ভেরিফায়ার কেবল অনুমান করতে পারে, আর কোনো অনুমান আপনার কাছে ভুল মনে হলে সঠিক পদক্ষেপ হলো চ্যাটে সেটা বলা, লেবেলটিকে চূড়ান্ত ধরে নেওয়া নয়।

যা আমাকে অবাক করেছিল, একটি পরিষ্কার must-fix কলামের পাশে একটি বেশ বড় অ্যাডভাইজরি তালিকা দেখে, তা হলো আমি প্রায় এর দৈর্ঘ্যকে খারাপ খবর হিসেবে পড়ছিলাম। কিন্তু তা নয়। শূন্য অ্যাডভাইজরি নোটসহ একটি বিল্ড হয় সংকীর্ণভাবে পাস করেছে অথবা কেবল ভাগ্যবান ছিল; আর "বিবেচনা করুন" জাতীয় আইটেমের স্তূপসহ এবং must-fix-এ কিছুই বাকি না থাকা একটি বিল্ড আসলে সেটাই যা সত্যিই সতর্কতার সাথে পর্যালোচনা করা হয়েছে। অ্যাডভাইজরি কলামটি হলো সেই অবশিষ্টাংশ যা প্রকৃত সমস্যাগুলো দূর হওয়ার পরে থাকার কথা।

আরেকটি কাজ আমি নিজেকে দিয়ে করিয়েছিলাম, যেহেতু এই রেকর্ডটি তিন সপ্তাহের পুরনো ছিল, তা হলো যাচাই করা যে কোন স্তরগুলো আসলে চলেছিল, রায়গুলো বিশ্বাস করার আগে। এখানে সবগুলো ছয়টি স্তরই উপস্থিত ছিল, কিন্তু এরপর থেকে আমি এমন একটি বিল্ড দেখেছি যেখানে অ্যাক্সেসিবিলিটি তালিকা থেকে পাস বা ফেল চিহ্নিত না হয়ে একেবারেই অনুপস্থিত ছিল — এটা গুরুত্বহীন হিসেবে বাদ দেওয়ার মতো নয়, এটি একটি ইঙ্গিত যে সেই নির্দিষ্ট সাইট টাইপ বা ফ্ল্যাগ কনফিগারেশনের জন্য চেকটি চলেনি, আর অনুপস্থিতিকে নীরব পাস হিসেবে পড়া ঠিক সেই ভুল যা এই ফরম্যাটটি আমন্ত্রণ জানায় যদি আপনি দ্রুত চোখ বুলিয়ে যান।

এর কোনোটিই আমাকে বলেনি যে যোগ স্টুডিওর বুকিং ফ্লো আসলে কনভার্ট করে কিনা, মানুষ টাইম-স্লট ধাপে গিয়ে ছেড়ে দেয় কিনা, বা শুধু Calendly-তে লিংক করার বদলে একটি কাস্টম উইজেট তৈরির পুরো ধারণাটিই সঠিক পছন্দ ছিল কিনা। যাচাইকরণ প্রমাণ করে যে একটি বিল্ড প্রতিশ্রুতি অনুযায়ী কাজ করে, প্রতিশ্রুতিটি সঠিক ছিল তা নয় — এগুলো আলাদা প্রশ্ন, আর আমি দেখেছি এমন বিল্ড প্রতিটি স্তরে নির্মলভাবে পাস করেও আসল ব্যবহারকারীদের কাছে ব্যর্থ হয়েছে কারণ "সঠিকভাবে কাজ করা" এবং "সঠিক সমস্যার সমাধান করা" যতটা মিলে যাওয়ার আশা করেন ততটা মেলে না। এর যে অর্ধেকটা আসলে দ্বিতীয় প্রশ্নের উত্তর দেয় তা হলো মেজারমেন্ট লুপ, আর এই দুটোকে একসাথে পড়ার কথা। একটি ফিচারে পরিষ্কার যাচাইকরণ রেকর্ড থাকলেও, যদি কেউ তা বুক না করে, তাহলে সেটি এখনো এমন একটি ফিচার যা কেউ বুক করে না।

যদি আপনি এমন কিছু খুঁজে পান যা ভেরিফায়াররা মিস করেছে: বিল্ডের চ্যাটে তা জানান — সংশোধনটি একটি নতুন সংস্করণে পরিণত হয় এবং পুরো চেইনটি আবার চলে। এই রেকর্ড একটি অডিট ট্রেইল, নির্ভুলতার দাবি নয়।
ভিত্তি
শেয়ার করুনXLinkedInFacebookRedditQuoraWhatsAppTelegramইমেইল
← সব পোস্ট