আমরা যারা প্রোগ্রামিং কিংবা ডেভেলপমেন্ট করি তাদের অনেকসময় সবকিছু ঠিকঠাকমত কন্ডিশন লেখার পরও দেখা যায় প্রোগ্রাম ভুল বিহেভ করে। এর পিছনে কিন্তু বিশাল একটা কিছুর হাত আছে।
আমরা যখন কোন অপারেশন চালাই সেটা যদি ঠিকমত ঘটে তাহলে তাকে প্রোগ্রামিং এর ভাষায় ট্রু কেইস বলে অর্থাৎ সঠিক বলে।
এখন যখন আমরা কিছু লেখি ধরুন,
var a = 2; // int a=5; $a =2;
প্রোগ্রামিং এর ভাষায় এটা কিন্তু একটা অপারেশন যা হয়ে গেছে ঠিক ঠাক মত;
এখন যখন আমরা কন্ডিশনাল ব্যবহার করে কিছু করি। যেমন if elseif
আমরা যদি এমন লেখি if( a == 2) এর মানে হচ্ছে এটা a তে রাখা ভ্যালু 2 কিনা তা যাচাই করি। তো যদি a এর ভ্যালু 2 হয় এটা তখনি কেবল সত্য হবে।
এখন ধরে নেই a =3 ; তাহলে এটা কিন্তু সত্য হবে না। ভুল হবে। কিন্তু আমরা যদি ভুল করে লেখে ফেলি if( a=2) তাহলে এটা কিন্তু সত্য হয়ে গেল। কারন এটা কিন্তু এসাইন্মেন্ট অপারেটর। a এর ভ্যালু 2 এসাইন করে ফেললো। আর যেহেতু এই অপারেশনটা সে কোন ভুল ছাড়া করতে পারছে তাই এই কন্ডিশন ট্রু হয়ে যাবে। আর আমাদের প্রোগ্রাম ইরর দেওয়া ছাড়াই ভুল হয়ে যাবে আর বারোটা বাজবে বাগ ফিক্স করতে করতে। কারন == দিয়ে আমরা সমান পরীক্ষা করতে গিয়া একটা = দিয়ে বারোটা বাজিয়ে দিয়েছি।
তো এই সমস্যার সমাধানের জন্য WordPress and Symphony একটা বিশেষ কন্ডিশন পদ্ধতি অনুসরণ করে যাকে বলা হয় yoda style. এতে যা করা হয় স্ক্যালার পার্ট ( ভ্যালু পার্ট) আগে লেখা হয়।
লাইকঃ if ( 2 == a) তো এটাও কিন্তু কারেক্ট।
এখন আমরা যদি ভুল করে if( 2 = a ) দিয়ে বসি তাহলে কিন্তু আগের মত প্রোগ্রাম রান করবে না। একেবারে ধুম করে ইরর দিয়ে দিবে। কারন কোন ভ্যালুর মধ্যে কিভাবে ভেরিয়েবল এসাইন করবো আমরা? ভ্যালুই না ভ্যারিয়েবল যেটা মেমরির অংশে ভ্যাল্য রাখে তাতে এসাইন হবে।
এখন আশা করি অনেকের এই কনফিউশনটা দূর হয়ে যাবে। আর অনেকেই এই পদ্ধতি ব্যবহার করবো আমরা। এইরকম বিষয়গুলা আমার পিএইচপি , ফ্রন্ট এন্ড জে এস , কম্পিটিটিভ প্রোগ্রামিং এ আমি এইভাবে এক্সপ্লেইন করে বুঝাই।
হোপফুলি অনেকের ভালো লেগেছে। আগে থেকে জানলে আরো ভালো। আর আরো বেটার কিছু জানা থাকলে কমেন্ট করতে পারেন।
এ ব্যাপারে আরো বেশি জানুন এই উইকি থেকেঃ
https://en.wikipedia.org/wiki/Yoda_conditions
লেখাস্বত্ত্বঃ Mizanur Rahaman Mizan
Posted on by মিজানুর রহমান মিজান