সান (এবং এখন ওরাকল) জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজের জন্য কোড কনভেনশনগুলির শিরোনামের একটি নথি রেখেছিলেন । এটির সর্বশেষ আপডেটটি ছিল'৯৯ সালে, তবে স্টাইল গাইড লাইনের সারমর্মটি চলমান।
অধ্যায় 9 নামকরণ কনভেনশন অন্তর্ভুক্ত।
ধ্রুবকগুলির একটি সনাক্তকারী ধরণের জন্য:
শ্রেণিবদ্ধ ঘোষিত ভেরিয়েবলের নাম এবং এএনএসআই ধ্রুবকের নামগুলি আন্ডারস্কোর ("_") দ্বারা পৃথক শব্দের সাথে সমস্ত বড় হাতের হওয়া উচিত। (ডিবাগিং সহজ করার জন্য এএনএসআই কনস্ট্যান্টগুলি এড়ানো উচিত))
দেওয়া উদাহরণ:
static final int MIN_WIDTH = 4;
static final int MAX_WIDTH = 999;
static final int GET_THE_CPU = 1;
আরও সাম্প্রতিক নথিতে - এটি সেখানে পিছলে গেছে। ভেরিয়েবলগুলি থেকে (জাভা টিউটোরিয়ালস> জাভা ভাষা শিখতে> ভাষার মূল বিষয়গুলি :
আপনি যে নামটি চয়ন করেছেন তাতে যদি কেবল একটি শব্দ থাকে তবে সমস্ত ছোট হাতের অক্ষরে সেই শব্দটি বানান। যদি এটি একাধিক শব্দের সমন্বিত হয়, তবে প্রতিটি পরবর্তী শব্দের প্রথম অক্ষরকে মূলধন করুন। নাম gearRatio
এবং currentGear
এই সম্মেলনের প্রধান উদাহরণ। যদি আপনার ভেরিয়েবল একটি ধ্রুবক মান সঞ্চয় করে, যেমন static final int NUM_GEARS = 6
, কনভেনশনটি সামান্য পরিবর্তিত হয়, প্রতিটি অক্ষরকে মূলধন করে এবং পরবর্তী শব্দগুলিকে আন্ডারস্কোর চরিত্রের সাথে পৃথক করে। কনভেনশন অনুসারে, আন্ডারস্কোর চরিত্রটি অন্য কোথাও ব্যবহৃত হয় না।
জাভা জন্য অনেক স্থিতিশীল বিশ্লেষক এটি প্রয়োগ করার চেষ্টা করে। উদাহরণস্বরূপ চেকস্টাইল প্রয়োগ করে:
স্থির নামগুলি ফর্ম্যাট বৈশিষ্ট্য দ্বারা নির্দিষ্ট করা বিন্যাসের সাথে মিলে যায় তা পরীক্ষা করে। একটি ধ্রুবক হ'ল স্থিতিশীল এবং চূড়ান্ত ক্ষেত্র বা একটি ইন্টারফেস / টীকা ক্ষেত্র, ব্যতীত serialVersionUID
এবং serialPersistentFields
। ফর্ম্যাটটি একটি নিয়মিত প্রকাশ এবং এর ডিফল্ট ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$
।
কোডটি লেখার ... এবং আদর্শভাবে এটি একই রাখার জন্য সম্প্রদায়ের সম্মেলনে এটি সত্যিই উত্সাহিত ।
উপরের উদাহরণগুলি static final
সি-কনভেনশন থেকে প্রাপ্ত হিসাবে সম্ভবত দেওয়া হয়েছে #define
- যা সি এর মতো, রানটাইম পরিবর্তে সংকলনের সময় কোডে প্রতিস্থাপন করা হয়।
তারপরে যে প্রশ্নটি জিজ্ঞাসা করা উচিত তা হ'ল "এটি কি ধ্রুবকের মতো আচরণ করে? নাকি ক্ষেত্র একবার লেখার মতো আচরণ করছে?" - এবং তারপরে সম্মেলনগুলি অনুসরণ করুন। এই জাতীয় প্রশ্নের জন্য লিটমাস পরীক্ষাটি হবে "আপনি যদি বিষয়টিকে সিরিয়ালাইজ করতে থাকেন তবে আপনি কি চূড়ান্ত ক্ষেত্রটি অন্তর্ভুক্ত করবেন?" যদি উত্তরটি হয় যে এটি একটি ধ্রুবক তবে এটির মতো আচরণ করুন (এবং এটির ক্রিয়াকলাপ করবেন না)। অন্যদিকে, যদি এটি অবজেক্টের অবস্থার অংশ হয় যা সিরিয়ালাইজেশন করা দরকার, তবে এটি কোনও ধ্রুবক নয়।
যা-ই হোক না কেন, কোড শৈলীর সাথে সঠিক হওয়া বা জরিমানা গুরুত্বপূর্ণ is কোনও প্রকল্প যা চোখের সামনে ক্ষতিকারক তা-ই নয়, বরং প্রকল্পের মধ্যে অসামঞ্জস্যপূর্ণ কনভেনশন থেকে আরও খারাপ সমস্যা ফেটে যায়। কিছু স্থিতিশীল বিশ্লেষণ সরঞ্জাম পাওয়ার কথা বিবেচনা করুন এবং ধারাবাহিকতা বজায় রাখতে তাদের কনফিগার করুন।