আমি ইনডেন্ট স্টাইলগুলিতে উইকিপিডিয়া নিবন্ধটি পড়েছি , তবে আমি এখনও বুঝতে পারি না। কেএন্ডআর এবং 1 টিবিএসের মধ্যে পার্থক্য কী?
আমি ইনডেন্ট স্টাইলগুলিতে উইকিপিডিয়া নিবন্ধটি পড়েছি , তবে আমি এখনও বুঝতে পারি না। কেএন্ডআর এবং 1 টিবিএসের মধ্যে পার্থক্য কী?
উত্তর:
কে & R ও ওয়ান মুক্ত বন্ধনী স্টাইল (1TBS) মধ্যে সবচেয়ে বড় পার্থক্য হল যে 1TBS, সব হয় if
, else
, while
, এবং for
এমনকি যদি তারা প্রয়োজন হয় না, বিবৃতি খোলার এবং বন্ধ ধনুর্বন্ধনী আছে। উদ্দেশ্যটি হ'ল নতুন বিবৃতি .োকানো সহজ করা এবং সেগুলি কীভাবে গোষ্ঠীভুক্ত করা হবে তা ঠিক জানা।
উদাহরণ হিসাবে:
কে & R এর:
int i;
for (i = 0; i < 10; i++)
printf("Hi.");
1TBS:
int i;
for (i = 0; i < 10; i++) {
printf("Hi");
}
কে অ্যান্ড আর এর মতো:
if (x)
a();
else {
b();
c();
}
এটি হ'ল: প্রয়োজনীয় যেখানেই প্রয়োজন ব্রেসগুলি ব্যবহার করা হয়, নিয়মিত স্টেটমেন্ট হিসাবে একই লাইনে ব্রেস খোলার, নিজের লাইনে বন্ধনী বন্ধ করে দেওয়া হয়।
"একটি সত্য ব্রেস স্টাইল" (1 টিবিএস বা ওটিবিএস) একটি একক নিয়ন্ত্রিত বিবৃতিটিকে বন্ধনী দ্বারা আবদ্ধ করে যৌগিক বিবৃতিতে রূপান্তরিত করে:
if (x) {
a();
} else {
b();
c();
}
অলম্যান স্টাইলটি 1 টিবিএসের চেয়ে কিছুটা এগিয়ে যায় এবং খোলার ব্রেসকে নিজেই একটি লাইনে রেখে খাড়া স্পেসিংকে বাধ্য করে:
if (x)
{
a();
}
else
{
b();
c();
}
সম্পাদনা:
আমি এখনও ঠিক কীভাবে "অভিমানী" হিসাবে এটি বলার যোগ্যতা অর্জন করার চেষ্টা করছি "ডেনিস রিচি একজন অত্যন্ত স্মার্ট লোক যিনি কেবল একটি ভাল ভাষা আবিষ্কার করেননি, তবে এর জন্য সত্যই একটি ভাল ব্রেস স্টাইলও নিয়ে এসেছিলেন।"
যাঁরা দৃ ins়ভাবে দাবি করেন যে এটি যাই হোক না কেন অহঙ্কারী, তাদের জন্য এখানে একটি সামান্য চ্যালেঞ্জ: সোর্সফোর্জে, গিথুব (ইত্যাদি) এ যান এবং কে অ্যান্ড আর ব্রেস শৈলী ব্যবহার করে প্রকল্পগুলি বেছে নিন। তাদের বাগ এবং প্রতিশ্রুতি রেকর্ডে যান এবং তাদের ব্যবহার করা বন্ধনী শৈলীর কারণে ঘটে এমন একটি একক বাগ খোঁজার চেষ্টা করুন ।
আপনি যদি এত বেশি কাজ করতে না চান তবে একটি সাধারণ পরিসংখ্যান বিশ্লেষণ করার চেষ্টা করুন। বিভিন্ন ধনুর্বন্ধনী শৈলী ব্যবহার করে প্রকল্পগুলির তুলনা করুন, এবং দেখুন যে আপনি "দ্বিপদশীলতা" প্রদর্শন করতে পারেন - বাগ সংখ্যার (তীব্রতা ইত্যাদি) মধ্যে একটি পরিসংখ্যানগতভাবে উল্লেখযোগ্য পার্থক্য যা বন্ধনী শৈলীর সাথে সম্পর্কিত।
আমি এই দু'টি কয়েক বছর আগেই করেছি এবং একটিও বাগ খুঁজে পেলাম না যা আমি ব্র্যাকিং শৈলীর সাথে দায়ী করতে পারি এবং না উভয়ের মধ্যে একটি পরিসংখ্যানগতভাবে উল্লেখযোগ্য পারস্পরিক যোগাযোগের কাছে পৌঁছতে পারি anything গড়ে, সেই কে & R এর সম্বন্ধ ব্যবহার সামান্য কম বাগ ছিল, কিন্তু পার্থক্য ছিল অনেক খুব পরিসংখ্যানগত ভাবে উল্লেখযোগ্য হিসেবে যোগ্য হয়ে ছোট।
যেহেতু এটি উত্থাপিত হয়েছিল, আমি মাল্টি-স্টেটমেন্ট ম্যাক্রোগুলির সাথে পরিস্থিতি সম্পর্কে মন্তব্য করব। একটি ম্যাক্রো যাতে একাধিক বিবৃতি অন্তর্ভুক্ত থাকে তবে সেগুলি ব্রেসগুলি দিয়ে ঘিরে না, একটি বাগ রয়েছে। আমার কাজটি সেই কোডটি লেখা নয় যা এই বাগটি জুড়ে .েকে দেয়। বিপরীতে, আমার কাজটি হ'ল bu বাগটি যত তাড়াতাড়ি সম্ভব খুঁজে বের করা এবং মুছে ফেলা।
কোডগুলি এর ব্যাক কভার করার আশায় লিখিতকরণ যাতে তারা নির্বিঘ্ন থাকে এবং অ-স্থির থাকে তা সরল মন্দ। আপনি যদি পছন্দ করেন তবে অহঙ্কারীকে কল করুন, তবে আমি এটিকে আলোচনা সাপেক্ষে খুব কাছে দেখতে পাচ্ছি না। বাগগুলি খুঁজে পাওয়া উচিত এবং স্থির করা উচিত, আবৃত নয়। যত বেশি অস্তিত্ব রয়েছে, ততই সম্ভবত তারা ঠিক করা আরও বেশি কঠিন এবং ব্যয়বহুল হয়ে উঠবে।
if
পরে ইন্টেন্টেড স্টেটমেন্ট সহ একটি বিবৃতি রয়েছে, যাতে দেখা যায় যে তারা উভয় শর্তাধীন কার্যকর করা হয়েছে। কিন্তু কোন ধনুর্বন্ধনী আছে! দ্বিতীয় বিবৃতিটি সত্যই ছাড়িয়ে গেছে if
এবং সর্বদা কার্যকর করা হবে, এভাবে বাগটি।
কেআর ব্রেস শৈলীর সাথে সাধারণভাবে সমস্যাটি কোড রিফ্যাক্টরিংয়ের হয়। কোডটির চারপাশে যখন চলমান কোডটি সহজেই মিস করা যায় যে কোনও কিছুর চারপাশে কোনও ধনুর্বন্ধনী নেই, এটি ভুলভাবে সরান (বা এটি শর্তাধীন কার্যকর করা হয়েছে এমন ভেবে কিছুটা সরান) এবং তারপরে হয় কোনও কিছু যখন কাজ করে না তখন আপনার মাথাটি স্ক্র্যাচ করুন, বা দুর্ভাগ্যজনক হন এবং এতে থাকুন একটি কোড অঞ্চলটি ভালভাবে পরীক্ষা করা হয়নি এবং একটি কালো টুপি ব্যবহার করার উপায় খুঁজে না পাওয়া পর্যন্ত বাগটি নজরে না যায়। আপনি যদি এটি লক্ষ্য করেন তবে সহজেই ডিবাগারে একটি দ্রুত ভ্রমণ সমস্যার সন্ধান করতে পারে তবে আপনি যদি তা না পান ...