
একক স্টেটমেন্ট এবং তাদের কোঁকড়ানো বন্ধনী থাকা উচিত কি না তা নিয়ে একটি উত্তপ্ত বিতর্ক রয়েছে।
C++, C#, Java, এবং Javascript-এ কোঁকড়ানো বন্ধনী ছাড়া একক লাইনের স্টেটমেন্ট বৈধ, কেউ কেউ এই বৈশিষ্ট্যের সুবিধা নেয়, আবার অন্যরা নেয় না।
উদাহরণস্বরূপ
if(ifTrue)
MowTheLawn();
for(var index; index > 10; index++)
ChopWood();
foreach(var dollar in money)
BuyLollipop();
while(untilTheEnd)
Read();
একক লাইন কোঁকড়ানো বন্ধনীর বিপক্ষে যুক্তি
কোঁকড়ানো বন্ধনীর বিপক্ষে যুক্তি হল এটি সংক্ষিপ্ত সিনট্যাক্স, এটি টাইপ করার জন্য কম অক্ষর, এবং এটি বৈধ সিনট্যাক্স। কেন এর সুবিধা নেওয়া হবে না?
একক লাইন কোঁকড়ানো বন্ধনীর পক্ষে যুক্তি
কোঁকড়ানো বন্ধনীর পক্ষে যুক্তি হল সামঞ্জস্য, কম বাগ এবং মানসিকভাবে বিশ্লেষণ করা আরও স্বাভাবিক।
Jon Abrams দ্বারা লিখিত একটি নিবন্ধে Single-line ‘if’ statements শিরোনামে, Jon ব্যাখ্যা করেছেন কিভাবে Apple-এর TLS বাস্তবায়নে একটি ত্রুটি কোঁকড়ানো বন্ধনী ছাড়া একক লাইনের if স্টেটমেন্টের ফলে চালু হয়েছিল। Jon আরও বলেছেন যে একক-লাইনের স্টেটমেন্টে কোঁকড়ানো বন্ধনী বাদ দেওয়া সংক্ষিপ্ত হলেও, ত্রুটি প্রতিরোধ করা সংক্ষিপ্ততার চেয়ে বেশি গুরুত্বপূর্ণ।
Jon একটি সমঝোতার প্রস্তাব করেছেন, একক-লাইনের স্টেটমেন্টগুলি অনুমতি দিতে যদি তারা সত্যিই একক লাইনে থাকে:
if(ifTrue) MowTheLawn();
আমি Jon-এর চিন্তাভাবনার প্রতিধ্বনি করি, একক লাইনে কোঁকড়ানো বন্ধনী বাদ দেওয়া এটি যে সুবিধা প্রদান করে তার মূল্য নেই। এটি সফটওয়্যার ইঞ্জিনিয়ারকে বৈধ সিনট্যাক্সের দুটি বৈচিত্র্য বিবেচনা করতে বাধ্য করে। এটি এত খারাপ মনে নাও হতে পারে, কিন্তু প্রতিবার যখন আপনি একটি if স্টেটমেন্টের সম্মুখীন হন তখন এই নির্ধারণ করা কষ্টকর। পরবর্তী প্রভাব হল ইঞ্জিনিয়ার কয়েকটি কীস্ট্রোক সংরক্ষণ করে এবং ভবিষ্যতের পাঠকদের উপর তাদের কোড বিশ্লেষণ করার দায়ভার চাপিয়ে দেয়।
C# সফটওয়্যার ইঞ্জিনিয়ারদের জন্য, Microsoft তাদের কোডিং কনভেনশনে একটি পক্ষ নিয়েছে, যা কোঁকড়ানো বন্ধনীর জন্য আহ্বান জানায়।
যখন আমরা লাইনের সংখ্যা নির্বিশেষে সব ক্ষেত্রে কোঁকড়ানো বন্ধনী ব্যবহার করি, তখন কী স্কোপে আছে এবং কী স্কোপের বাইরে আছে তা খুবই স্পষ্ট। এটি কোডকে কম ত্রুটিপ্রবণ এবং আরও সামঞ্জস্যপূর্ণ করে তোলে, যদিও কেউ কেউ এই বিষয়ে তর্ক করতে পারেন, আমি এটি পড়তে সহজ মনে করি।
লেখক: চাক কনওয়ে সফটওয়্যার ইঞ্জিনিয়ারিং এবং জেনারেটিভ এআই-তে বিশেষজ্ঞ। তার সাথে সোশ্যাল মিডিয়ায় যোগাযোগ করুন: X (@chuckconway) অথবা তাকে YouTube-এ দেখুন।