স্ট্যান্ডার্ড অনুশীলনটি হ'ল আদিমদের সাথে চলুন, যদি না আপনি জেনেরিকদের সাথে কাজ করে থাকেন (নিশ্চিত করুন যে আপনি অটোবক্সিং এবং আনবক্সিং সম্পর্কে সচেতন !)।
সম্মেলনটি অনুসরণ করার বেশ কয়েকটি ভাল কারণ রয়েছে:
1. আপনি সাধারণ ভুল এড়ানো:
কিছু সূক্ষ্ম, জ্ঞানহীন ক্ষেত্রে রয়েছে যা প্রায়শই প্রাথমিকভাবে ধরা পড়ে। এমনকি অভিজ্ঞ কোডাররা পিছলে যায় এবং কখনও কখনও এই ভুলগুলি করে (আশা করি কোডটি ডিবাগ করার সময় শপথ গ্রহণের পরে এটি অনুসরণ করা হবে এবং ত্রুটিটি খুঁজে পাবেন!)।
সর্বাধিক সাধারণ ভুল a == b
পরিবর্তে ব্যবহার করা হয় a.equals(b)
। মানুষ a == b
আদিম সঙ্গে কাজ করতে অভ্যস্ত তাই আপনি যখন বস্তু মোড়ক ব্যবহার করছেন এটি সহজেই হয়ে যায়।
Integer a = new Integer(2);
Integer b = new Integer(2);
if (a == b) { // Should be a.equals(b)
// This never gets executed.
}
Integer c = Integer.valueOf(2);
Integer d = Integer.valueOf(2);
if (c == d) { // Should be a.equals(b), but happens to work with these particular values!
// This will get executed
}
Integer e = 1000;
Integer f = 1000;
if (e == f) { // Should be a.equals(b)
// Whether this gets executed depends on which compiler you use!
}
২. পাঠযোগ্যতা:
নিম্নলিখিত দুটি উদাহরণ বিবেচনা করুন। বেশিরভাগ লোক বলে যে দ্বিতীয়টি আরও বেশি পঠনযোগ্য।
Integer a = 2;
Integer b = 2;
if (!a.equals(b)) {
// ...
}
int c = 2;
int d = 2;
if (c != d) {
// ...
}
3. কর্মক্ষমতা:
আসলে এটা হল মাত্র প্রিমিটিভের ব্যবহার না করে প্রিমিটিভের জন্য অবজেক্ট চাদরে ব্যবহার করতে ধীর। আপনি সমস্ত জায়গা জুড়ে যে জিনিস ব্যবহার করেন সেগুলিতে আপনি অবজেক্ট ইনস্ট্যান্টেশন, পদ্ধতি কল ইত্যাদির ব্যয় যুক্ত করছেন ।
নুথের "... প্রায় 97% সময় বলুন: অকালীন অপ্টিমাইজেশন হ'ল সমস্ত মন্দের মূল" উদ্ধৃতিটি এখানে সত্যিই প্রয়োগ হয় না। তিনি সেই অপটিমাইজেশন সম্পর্কে কথা বলছিলেন যা কোডটি (বা সিস্টেম) আরও জটিল করে তুলেছে - আপনি যদি পয়েন্ট # 2 এর সাথে একমত হন তবে এটি একটি অপ্টিমাইজেশন যা কোডটি কম জটিল করে তোলে !
৪. এটি কনভেনশন:
আপনি যদি অন্য জাভা প্রোগ্রামারদের 99% থেকে আলাদা স্টাইলিস্টিক পছন্দ করেন তবে 2 টি ডাউনসাইড রয়েছে:
- আপনি অন্য ব্যক্তির কোড পড়তে আরও কঠিন পাবেন। এখানে 99% উদাহরণ / টিউটোরিয়াল / ইত্যাদির আদিম ব্যবহার হবে। আপনি যখনই একটি পড়েন তখন আপনার নিজের ব্যবহার করা স্টাইলে এটি কীভাবে দেখাবে তা ভেবে অতিরিক্ত জ্ঞানীয় ওভারহেড পাবেন।
- অন্যান্য লোকেরা আপনার কোডটি পড়তে আরও কঠিন। আপনি যখনই স্ট্যাক ওভারফ্লোতে প্রশ্ন জিজ্ঞাসা করছেন আপনাকে "আপনি আদিম ব্যবহার করছেন না কেন?" জিজ্ঞাসা করে উত্তর / মন্তব্যগুলি সন্ধান করতে হবে। আপনি যদি আমাকে বিশ্বাস না করেন, কেবল ব্র্যাককেট প্লেসমেন্টের মতো জিনিসগুলির জন্য লোকেরা যে লড়াইগুলি করেছে সেগুলি দেখুন, যা উত্পন্ন কোডকেও প্রভাবিত করে না!
সাধারণত আমি কিছু পাল্টা পয়েন্ট তালিকাবদ্ধ করতাম, তবে আমি কনভেনশনটিতে না যাওয়ার জন্য কোনও ভাল কারণ সম্পর্কে সত্যই ভাবতে পারি না!