বুলিয়ান পদ্ধতির নামকরণ ইতিবাচক বনাম নেতিবাচক


43

বুলিয়ান পদ্ধতিগুলি কি সর্বদা ইতিবাচক ফর্ম গ্রহণ করে, এমনকি যখন সেগুলি কেবল নেতিবাচক আকারে ব্যবহৃত হবে?

বলুন যে আমি এটি তৈরির আগে কোনও সত্তা উপস্থিত রয়েছে কিনা তা খতিয়ে দেখতে চেয়েছি, আমার যুক্তিটি হল যে নীচের প্রথম ফর্মটি দ্বিতীয় রূপের চেয়ে ভাল, পদ্ধতিটি কখনও স্বীকৃত আকারে ব্যবহৃত হয় কি না।

সংক্ষেপে, আমি এর if(!affirmative)চেয়ে পড়া সহজ মনে করি if(negative)। আমার এক সহকর্মী আছেন যারা দ্বিমত পোষণ করেন?

প্রথম ফর্ম:

int entity_id = 42;
if(!entity_exists(entity_id)) create_entity(entity_id);

দ্বিতীয় ফর্ম:

int entity_id = 42;
if(entity_not_exist(entity_id)) create_entity(entity_id);

3
সি ++? কীভাবেif (not entity_exists(entity_id))
কোস


টু-মে-টু-মাহ-টু। সত্যি বলতে, আমি !চরিত্রটি বহুবার মিস করেছি কারণ আমি আবার কোডটি না পড়ার আগে পর্যন্ত কোডটি ভুল বুঝতে পেরেছিলাম। সুতরাং আমি সম্ভবত আপনার সহকর্মীর সাথে আরও সম্মত। আমি যখন ফর্মটি পরীক্ষা করে দেখি তখন তা ফর্মটি সত্য বলে পছন্দ করে।
বেরিন লরিটস্ক

এটি কেবল থিম করে বলতে চেয়েছিলেন যে if (!exists) create()এটি অনেকগুলি ভাষা / ফ্রেমওয়ার্কগুলিতে একটি খারাপ অভ্যাস হিসাবে দেখা যেতে পারে, কারণ এটি থ্রেড-নিরাপদ না হয়ে থাকে। সাধারণত, পছন্দের পদ্ধতির create()সুনির্দিষ্ট ইতিমধ্যে উপস্থিত রয়েছে তা উল্লেখ করে নির্দিষ্ট ব্যতিক্রম বা রিটার্ন কোডগুলি কল করা এবং পরিচালনা করা। এটি অবশ্যই আসল প্রশ্নের উত্তর নয় (এটি কেবল একটি মন্তব্য কেন)।
জুলাইলেগন

উত্তর:


61

বুলিয়ান পদ্ধতিগুলি কি সর্বদা ইতিবাচক ফর্ম গ্রহণ করে, এমনকি যখন সেগুলি কেবল নেতিবাচক আকারে ব্যবহৃত হবে?

এই জাতীয় জিনিসগুলি সম্পর্কে নিয়ম করা একটু বেশি মনে হয় - আমি কোডিং স্ট্যান্ডার্ড ডকুমেন্টে একটি গাইডলাইন দেখতে চাই না যা বলে যে আপনি বুলিয়ান সম্পত্তিগুলির জন্য নেতিবাচক নাম ব্যবহার করবেন না । তবে ব্যক্তিগত স্টাইলের বিষয় হিসাবে, আমি মনে করি নামগুলি ইতিবাচক রাখার চেষ্টা করা একটি আদর্শ আদর্শ হতে পারে। যাইহোক, আমি মনে করি এটা যে চর্মসার এবং সহজে-মিস প্রয়োজনীয়তার এড়াতে ভালো !। নেতিবাচক নামটিকে ইতিবাচক হিসাবে রূপ দেওয়ার উপায়গুলি প্রায়শই খুঁজে পাওয়া যায়:

  • accountHasCharges
  • accountIsClear(একই হিসাবে !accountHasCharges)

স্পষ্টতা সবচেয়ে গুরুত্বপূর্ণ বিবেচনা, এবং নেতিবাচক পদ্ধতির নাম এড়ানোর একটি ভাল কারণ হ'ল এগুলি দ্বিগুণ sণাত্মক বা আরও খারাপ হতে পারে:

  • isComplete // ঠিক আছে
  • isNotComplete //! কমপ্লিট সাধারণত ভাল হয়
  • isIncomplete // 'অসম্পূর্ণ' যদি অবজেক্টের পরিচিত অবস্থা হয় তবে তা বোঝাতে পারে
  • !isNotComplete // ভয়ঙ্কর, ভয়াবহ, ভয়ানক
  • !isNotComplete == 0 // স্থায়ী অবকাশ হতে পারে

5
"কোডিং স্ট্যান্ডার্ড ডকুমেন্টে আমি কোনও গাইডলাইন দেখতে চাই না যাতে বলা হয় যে আপনি বুলিয়ান সম্পত্তিগুলির জন্য নেতিবাচক নাম ব্যবহার করবেন না ।" - আমি এই এখানেই রেখে যাব ...
আকাশম

16
আপনি ভুলে গেছেন!isNotIncomplete
বেন লি

সুতরাং বিপরীতে হতে entity_existsহবে entity_should_be_created(পরিবর্তে entity_not_exists)? নাকি entity_missingড্যানের পরামর্শ অনুসারে?
এডিটিসি

1
এখানেই কোডিং স্ট্যান্ডার্ড ডকুমেন্টটি "উচিত" বা "আবশ্যক" এর চেয়ে "পছন্দ" শব্দটি ব্যবহার করতে পারে।
ওয়েইন কনরাড

15

আমি সম্মত হলাম যে ইতিবাচকটি পড়া সহজ। আপনি চেষ্টা করতে পারেন

তৃতীয় ফর্ম

int entity_id = 42;
if (entity_is_missing(entity_id)) create_entity(entity_id);

অথবা

চতুর্থ ফর্ম

int entity_id = 42;
if (is_entity_missing(entity_id)) create_entity(entity_id);

2

এটি আপনার পদ্ধতি কীভাবে ব্যবহৃত হতে চলেছে তার উপরও নির্ভর করে। যদি এটি ইতিবাচক এবং নেতিবাচক ক্ষেত্রে উভয় ক্ষেত্রে ব্যবহৃত হয়, যেমন

if (!entity_exists(entity_id)) create_entity(entity_id);

if (entity_exists(entity_id)) publish_entity(entity_id);

তারপরে মেথডের নামটি উপরের মত, ইতিবাচক হওয়া উচিত। এটি কীভাবে ব্যবহৃত হবে তা আপনি যদি নিশ্চিত না হন তবে উপরের দিকে আটকে যান।

তবে যদি এটি কেবল নেতিবাচক ক্ষেত্রে ব্যবহৃত হয়, তবে নিম্নলিখিতগুলি গ্রহণযোগ্য (সম্ভবত এমনকি কাম্য)

if (entity_not_exists(entity_id)) create_entity(entity_id);

বা আরও ভাল এটি উচ্চস্বীকৃত হতে উচ্চারণ

if (entity_is_absent(entity_id)) create_entity(entity_id);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.