একক স্টেটমেন্ট এবং তাদের কার্লি ব্রেসেস থাকা উচিত কিনা তা নিয়ে একটি তীব্র বিতর্ক রয়েছে।
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 তাদের coding conventions-এ একটি পক্ষ নিয়েছে, যা কার্লি ব্রেসেসের জন্য আহ্বান জানায়।
যখন আমরা সব ক্ষেত্রে কার্লি-ব্রেসেস ব্যবহার করি লাইনের সংখ্যা নির্বিশেষে, কী স্কোপে এবং কী স্কোপের বাইরে তা খুবই স্পষ্ট। এটি কোডকে কম ত্রুটি-প্রবণ এবং আরও সামঞ্জস্যপূর্ণ করে তোলে, যদিও কেউ কেউ এই পয়েন্টে বিতর্ক করতে পারে, আমি এটি পড়া সহজ মনে করি।
লেখক: চাক কনওয়ে একজন এআই ইঞ্জিনিয়ার যার কাছে প্রায় ৩০ বছরের সফটওয়্যার ইঞ্জিনিয়ারিং অভিজ্ঞতা রয়েছে। তিনি ব্যবহারিক এআই সিস্টেম তৈরি করেন—কন্টেন্ট পাইপলাইন, অবকাঠামো এজেন্ট এবং সরঞ্জাম যা বাস্তব সমস্যার সমাধান করে—এবং তার শেখার বিষয়গুলি শেয়ার করেন। তার সাথে সোশ্যাল মিডিয়ায় সংযোগ করুন: X (@chuckconway) অথবা তাকে YouTube এবং SubStack এ দেখুন।