জাভা বুলিয়ান পেতে "হয়" বনাম "হয়"


92

আমি জানি যে বুলিয়ান গেটারদের জন্য জাভা সম্মেলনে উপসর্গটি "হ'ল" অন্তর্ভুক্ত রয়েছে।

isEnabled
isStoreOpen

তবে বিষয়টি বহুবচন হলে কী হবে? অর্থাত্, যদি কোনও দোকান খোলা থাকে কিনা তা জানতে চেয়ে পরিবর্তে, আমি জানতে চাই যে সমস্ত স্টোর খোলা আছে কিনা?

isStoresOpen() ইংরাজীতে কোনও অর্থ নেই।

আমি গেটারদের লেখার মতো প্রলুব্ধ করছি:

areStoresOpen
areDogsCute
areCatsFuzzy

এবং আমি মনে করি যে অর্থে করতে হবে, কিন্তু আমি অন্যদের দ্বারা বলা হয়েছে যে, আমি শুধু এটা স্তন্যপান উচিত আপ এবং চুক্তি এবং ব্যবহার ক্রিয়া বিষয় পরিত্যাগ isStoresOpen, isDogsCute, isCatsFuzzy

যাইহোক, বুলিয়ান গেটারদের জন্য আমি কী করব যা বহুবচনের বিষয়ে কাজ করে?


4
আমি কখনই কোন are*()পাইকারের সামনে দেখি না ।
পুনরায় পোস্ট করুন ire

21
আমি সর্বদা are*()লেখকরা যদি ব্যাকরণগতভাবে সঠিক হয় তবে লিখি ।
হিমশীতল মটর রডি

4
যদি আপনার অবজেক্টটি শিম হয় তবে আমি মনে করি আপনাকে অবশ্যই আটকাতে হবে isবা has...
অ্যাসিরিয়াস

4
আপনি যদি * () গিটার ব্যবহার করেন তবে বেশিরভাগ ক্ষেত্রে এটি বুলিয়ান []] ফিরিয়ে আনা উচিত, আমি মনে করি।
জুভানিস

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

উত্তর:


58

এটি কোন বইটি থেকে এসেছিল তা আমি মনে করতে পারি না, তবে সারমর্মটি হল কোডটি লেখার চেয়ে অনেক বেশি বার পড়বে be পাঠযোগ্যতার জন্য লিখুন।


21
পরিষ্কার কোড - রবার্ট মার্টিন
জন বি

জন বি: আমি সেই বইটি পড়িনি; সম্ভবত আমি এটির একটি রেফারেন্স পড়েছি। যদিও আমার তালিকার জন্য আর একটি বই। :)
জন

8
তবে খুব সতর্ক থাকুন আপনি খুব বেশি দূরে যাবেন না। storesAreOpen()সম্ভবত সবচেয়ে ব্যাকরণগত হতে পারে (কারণ if(storesAreOpen())), তবে নামের বুলিয়ান অংশটি এখন পদ্ধতির নামের মাঝে লুকিয়ে রয়েছে, যা জাভা কনভেনশন এবং পঠনযোগ্য কোডকে ভেঙে দেয় ।
ইজকাটা

4
তিনি খুব সাধারণভাবে প্রশ্নের উত্তর দেন। এটি সত্য যে তিনি নির্দিষ্ট দিকগুলিতে সম্বোধন করেন না, তবে এটি একটি উত্তর। এটি ট্রাইট মনে হতে পারে তবে এর মূল্য রয়েছে (কমপক্ষে ২৪ জন এটি মনে করেন)।
জর্জ স্টকার

4
উত্তরটি স্পষ্ট করার জন্য আমি মন্তব্যটি যুক্ত করব যে স্টোরস ওপেন () এখানে একটি ভাল পছন্দ।
kiedysktos

96

পর্যাপ্ত ইংরেজী থাকার এবং জাভা মান অনুসরণ করার পদ্ধতি সম্পর্কে:

isEveryStoreOpen() বা isEachCatCute()

যখন সঠিক শব্দটির সন্দেহ হয় তখন আমি সর্বদা থিসরাসটিকে আঘাত করতে পছন্দ করি।


19
+1, এটি প্রত্যাশিত ইসস্টোরস ওপেন () এর বিপরীতে প্রত্যাবর্তিত মানটির অর্থ হ'ল প্রত্যেকটি স্টোরওপেন () বা ইসিস্টোরওপেন () নয় কিনা তা স্পষ্টভাবে জানায়।
ইম্রে

4
+1 এটি গ্রহণযোগ্য উত্তর হওয়া উচিত! তোলে জাভা পালন ব্যাকরণগতভাবে যখন অনুভূতি booleanগুলি isউপসর্গ সম্মেলন। এছাড়াও, এটি কিছুটা অতিরিক্ত তথ্য সরবরাহ করে যা কোডবিজের রক্ষণাবেক্ষণকারী হতে পারে এমন অ-নেটিভ ইংরেজী স্পিকারদের জন্য সত্যই কার্যকর।
হাইগুয়ারো

4
এই উত্তর আমার জীবন পরিবর্তন! এবং এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
মার্সেল ব্লাক 13

34

কনভেনশনটি হ'ল ভেরিয়ালটি নয় "" "দিয়ে গেটর-পদ্ধতিটি উপসর্গ করা to

যেমন

private boolean enabled;

public boolean isEnabled() {
    return enabled;
}

এবং

private boolean storesOpen;

public boolean isStoresOpen() {
    return storesOpen;
}

isStoresOpen () ইংরাজীতে বোঝায় না।

এটি ব্যাকরণগতভাবে বোধগম্য নয়, তবে এটি সম্মেলনটি অনুসরণ করে এবং যথেষ্ট পঠনযোগ্য বলে মনে হচ্ছে।


আপনার উত্তরটি উপলব্ধি করে এবং আমি এটির প্রশংসা করি। আমি মনে করি কোনও অনুমোদিত / সঠিক অবস্থান থেকে, আপনি ঠিক বলেছেন। আমি কেবল একটি সম্মেলন চাই না যা এর উদ্দেশ্যটি নিয়ম মেনে চলার উদ্দেশ্যে সেই উদ্দেশ্যটিকে ত্যাগ করার জন্য সুস্পষ্ট, স্পষ্ট এবং সহজেই বুঝতে সাহায্য করে আমাদের সহায়তা করা হয়েছিল। তবে আপনি ঠিক বলেছেন - এটি এটিই এবং আমি যা সম্পর্কে জিজ্ঞাসা করেছি।
কোডাই

@ কোডাই: আমি মনে করি এটি নিয়ম হিসাবে বিবেচনা করা উচিত নয়, কেবল একটি সম্মেলন convention তবে আমি বিশ্বাস করি, কনভেনশন অনুসরণ না করে কোড লেখার, যদি এটি প্রয়োজন না হয় তবে কোডটি পাঠযোগ্যযোগ্য করে তোলা যায়।
ভেশে গুরুং

18

জাভা বিন স্পেসিফিকেশনটি getগেটারদের জন্য ব্যবহার করতে বলেছে যদি এটি booleanতত্কালীন না হয় isareমানহীন এবং এটি এমন কোনও কিছু দ্বারা স্বীকৃত হবে না যা মান বিন নাম প্রত্যাশা করে।


17

প্রচুর সরঞ্জাম প্রত্যাশিত isবা getসম্ভবত সনাক্ত করতে পারে না are

তাদের রিফ্রেশ চেষ্টা করুন, যেমন getDogsAreFuzzy()বা getStoresAreOpen()বা যে ভাল সামঞ্জস্য এবং নিয়মাবলী জন্য ভালো জিনিস।


হ্যাঁ. শিম ইউটিলিটি মত সরঞ্জাম গণনা শব্দটির উপরে হয় বুলিয়ান getters খুঁজে।
এলোমেলোভাবে

4

- isEnabled() এছাড়াও হিসেবে লেখা যেতে পারে getEnabled()মধ্যে Java naming conventions

- নামকরণের সম্মেলনগুলি অনুসরণ করা, আপনার সাথে কাজ করার সময় সহায়তা করা এটির একটি ভাল অভ্যাস Java Beans


3

সাধারণভাবে আমি মনে করি কোডটি যথাসম্ভব সহজেই পঠনযোগ্য হওয়া উচিত যাতে কোনও পদ্ধতি প্রায় অনুচ্ছেদের মতো পড়তে পারে (যেমন প্রচ্ছন্নভাবে Clean Code)। অতএব, আমি যতটা সম্ভব সাউন্ড / পড়ার পদ্ধতিটির নামকরণ করব এবং এর ব্যাকরণের নিয়মটি দিয়ে চলেছি are। আধুনিক আইডিই দিয়ে get/ বিশেষত সন্ধান না করে পদ্ধতিগুলি সন্ধান করা সহজ /is

যাইহোক, কুমার মটরশুটি সম্পর্কে একটি ভাল বক্তব্য রাখেন। প্রচুর সরঞ্জাম কেবল get/ এর সন্ধান করবে is। সেক্ষেত্রে আমি উভয় পদ্ধতিই বিবেচনা করতে পারি। একটি পড়ার স্বাচ্ছন্দ্যের জন্য এবং একটি সরঞ্জাম ব্যবহারের জন্য।


3

আপনি কোন ভাষায় লিখছেন: ইংরেজি বা জাভা ?

আমি যখন জাভা কোড পড়া করছি, আমি কিছু সেখানে হতে, উভয় getters জন্য অনুসন্ধান করতে আমার থাকার আশা, সঙ্গে হয় এবং হয় উপসর্গ, মাত্র এক উপসর্গ অনুসন্ধানের জন্য চেয়েও বেশি জটিল করা হবে না।

তবে অন্যদিকে, আমি যখন সকালে সংবাদপত্র পড়ি, তখন আমি কিছুই খুঁজছি না, তাই আপনি ইংরেজিতে আরও traditionalতিহ্যগত উপায়ে লিখতে পারেন।

প্রত্যাবর্তন 0;


3

আপনার প্রশ্নে আপনি স্পষ্টতই গেটারদের সম্পর্কে জিজ্ঞাসা করছেন। একজন প্রাপ্ত ব্যক্তি আপনার শ্রেণির একটি উদাহরণ সম্পর্কে কিছু তথ্য ফেরত দেয়। উদাহরণস্বরূপ আপনার একটি ক্লাস আছে Store। এখন,isStoreOpen জন্য একেবারে সূক্ষ্ম পদ্ধতির নাম।

এরপরে, আপনি একটি পদ্ধতি উল্লেখ করেছেন যা সমস্ত স্টোর খোলা আছে কিনা তা পরীক্ষা করে। এই পদ্ধতিটি মোটেও উত্সর্গকারী নয়, কারণ এটি একটি উদাহরণের জন্য তথ্য দেয় না তবে সকলের জন্য। অবশ্যই ক্লাস না থাকলেStores । যদি এটি হয় তবে আপনার নকশাটি পুনর্বিবেচনা করা উচিত, কারণ জাভা এর মধ্যে ইতিমধ্যে বেশ কয়েকটি উদাহরণ সংরক্ষণের উপায় রয়েছে, যেমন অ্যারে বা সংগ্রহ, সুতরাং আপনার অতিরিক্ত ক্লাস লিখতে হবে না।

যদি এটি না হয়, তবে এই পদ্ধতির নামটি পুরোপুরি ঠিক। একটি বিকল্প allStoresOpen'হয়' ছাড়া ঠিক হতে পারে ।

টিএল; ডিআর: আপনি যদি একাধিক উদাহরণ দিয়ে কাজ করে থাকেন তবে এটি প্রাপ্তি নয়। যদি এটি হয় তবে আপনার নকশাটি খারাপ।


2

বেশ সত্যই আমি বলতে চাই অবশ্যই ভুলে যাবেন are*এবং সাথে থাকুন is*"is"পরিবর্তনশীল অর্থ হিসাবে ভাবুন এবং সম্ভব হলে একটি আরও ভাল নাম করুন।

আমি বলব যে ইসস্টোরস ওপেন এর মতো খারাপ শোনায় না তবে আপনি যদি স্টোরসআরওপেনকে এটির জন্য ভাল বলে মনে করেন তবে আপনি এটি তৈরি করতে পারেন।

তবে আমার সাধারণ ধারণাটি হবে সম্মেলনগুলিকে অবিচল থাকা। যা গেটারদের জন্য "পান" এবং বুলিয়ান ধরণের জন্য "হয়" ব্যবহার করছে। ব্যক্তিগতভাবে আমি মনে করি "is" ব্যবহার কখনও কখনও ইতিমধ্যে সমস্যাযুক্ত। হ্যাঁ - এটি "যদি" শর্তে ভাল দেখায় তবে কখনও কখনও কোডিং করার সময় আমি "get" লিখি এবং আমার প্রয়োজনীয় পরিবর্তনশীলটির জন্য ড্রপ ডাউন তালিকাটি পরীক্ষা করে দেখি যে কী সমস্যা হয়েছে এবং কেন এটি খুঁজে পাচ্ছি না, তবে আমি বুঝতে পারি "দিয়ে" দিয়ে শুরু হয় ...


1

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ে, এটি খুব কমই হওয়া উচিত, যদি কখনও হয়, তখন থেকেই ঘটেছিল Storeবা Catএর নিজস্ব isOpen()বা isFuzzy()পদ্ধতি সহ আপনার আলাদা শ্রেণি হওয়া উচিত । আপনার যদি উচ্চতর ধরণ থাকে তবে আপনি যে প্রকৃতপক্ষে ব্যবহার করছেন তা আরও বেশি পারমাণবিক স্তরে বিভক্ত হওয়ার বিষয়টি বিবেচনা করুন। সাধারণভাবে, অবজেক্টগুলি সর্বনিম্ন স্তরে বহুবচন হওয়া উচিত নয়।


1

এই স্টোরস ওপেনটি ইস্পোরস ওপেন (বহুবিধ) মনে হয়,

আপনি যখন জাভা নামকরণ কনভেনশন এবং জাভা বিনস স্ট্যান্ডার্ডগুলি অনুসরণ করেন, সেগুলি বুলিয়ান এবং অন্যান্য ধরণের জন্য পূর্বনির্ধারিত থাকে, সুতরাং আপনার জাভা বিনস নামকরণ কনভেনশনটি অনুসরণ করা উচিত।

আসুন আপনার বক্তব্য আসুন যখন আপনি কোনও ইংরেজী সম্ভাবনার মতো স্টোরস ওপেন দেখেন , হ্যাঁ এটি বহুবচনর মতো দেখাচ্ছে। আবার এই শব্দটির গভীর পর্যবেক্ষণ করুন,

এখানে

দোকান ইংরেজি ব্যাকরণ অনুসারে বহুবচন,

স্টোরস ওপেনের আউট অফ আউট বহুবচন নয়, পরিবর্তে এটি একবচন বা আপনি বলতে পারেন, প্রচলিত রীতি অনুযায়ী প্রোগ্রামিং পরিপ্রেক্ষিতে স্কালে হয়।

এটি এসে গেছে বুলিয়ান, ঠিক সত্য বা মিথ্যা

আপনার ইংরেজি বহুবচন বিবৃতি সত্য বা মিথ্যা এর মতো নয়

এর কোনও অ্যারে নয় সত্য বা মিথ্যা , বা না একটি সংগ্রহের সত্য বা মিথ্যা

সুতরাং, এখানে আমরা বলতে পারি যে, এখানে আমরা সেই বুলিয়ান শিম পদ্ধতি থেকে ফিরে আসা মানের সাথে সম্পর্কিত, বাস্তবের বিশ্ব সত্তাকে নির্দেশ করার জন্য শ্রেণীর সম্পত্তিকে দেওয়া নাম নয়।

আরও একটি গুরুত্বপূর্ণ বিষয়, যখনই এই ধরনের বুলিয়ান বৈশিষ্ট্য শ্রেণীর ব্যবহার করা হয় এবং হয় সেই পূর্বনির্ধারিত লাইব্রেরি দ্বারা কোনো ফ্রেমওয়ার্ক ব্যবহার করা হয়, তারপর ব্যবহার উপসর্গ 'এর সাথে ফ্রেমওয়ার্ক হল বুলিয়ান মান পুনরুদ্ধারের জন্য',

আপনি কেন বহুগুণ / একক শব্দ, মাল্টিপ্লেক্সার ইত্যাদির মতো ইংলিশ ব্যাকরণ জানেন তা আপনার চেয়ে বেশি স্মার্ট নয় বলে কেন ...

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