আমার জন্য, কোনও কিছুর জন্য একটি ভাল নাম সন্ধান করা সর্বদা এটির অস্তিত্বকে ন্যায্য করতে হবে এমন একটি বস্তু হিসাবে ভাবতে ফিরে আসে । নিজেকে জিজ্ঞাসা করুন:
- শ্রেণি / পদ্ধতি / ভেরিয়েবল কী করে, অর্থাৎ এর বিস্তৃত উদ্দেশ্য কী এবং এর জন্য কী?
- এর উদ্দেশ্য সম্পর্কে বিশেষত কোনটি যোগাযোগ করা প্রয়োজন, অর্থাত নামটির প্রয়োজনীয় অংশটি কী?
বেশিরভাগ বিকাশকারীগণ সম্মত হবেন যে নামকরণের ক্ষেত্রে পাঠযোগ্যতা সর্বদা সর্বাধিক গুরুত্বপূর্ণ। কেবল কোডটি লিখবেন না যাতে আপনি এটি লেখার সময় আপনার অর্থ কী তা বুঝতে পারেন, এটি লিখুন যাতে ভবিষ্যতের কোনও সময়ে প্রথমবারের মতো কোডটি দেখছেন এমন কেউ যদি খুব বেশি চিন্তা না করে আপনি কী বোঝাতে চেয়েছিলেন। আপনি কোডটি একবার লিখে ফেলবেন, তবে তার জীবদ্দশায় এটি সম্ভবত বেশ কয়েকবার সম্পাদনা করতে হবে এবং আরও অনেকবার পড়তে হবে।
কোডটি স্ব-ডকুমেন্টিং হওয়া উচিত, অর্থাৎ, আপনার নামকরণের মাধ্যমে এটি স্পষ্ট করে দেওয়া উচিত যে কিছু কী করে। আপনার যদি কোনও মন্তব্যে কোডের একটি লাইন কী করে এবং জিনিসটির নাম পরিবর্তন করে এটির যথেষ্ট উন্নতি হয় না তা ব্যাখ্যা করার দরকার হলে আপনার সেই লাইনটিকে একটি উপযুক্ত পদ্ধতিতে বর্ণনামূলক নাম সহ একটি নতুন পদ্ধতিতে রিফ্যাক্টিংয়ের গুরুত্ব সহকারে বিবেচনা করা উচিত, যাতে মূল পদ্ধতিটি পড়া যায়, নতুন পদ্ধতি কল কি ঘটছে তা বর্ণনা করে। দীর্ঘ নাম রাখতে ভয় পাবেন না; অবশ্যই আপনার ক্লাস / পদ্ধতি / পরিবর্তনশীল নামগুলিতে উপন্যাস লেখা উচিত নয়, তবে আমার নামটি খুব সংক্ষিপ্তের চেয়ে অনেক দীর্ঘ এবং বর্ণনামূলক হতে হবে এবং হুডের নীচে তাকিয়ে এটি কী করে তা অনুধাবন করা দরকার। এক্স / ওয়াই স্থানাঙ্ক এবং সাধারণত ব্যবহৃত সংক্ষিপ্ত শব্দগুলির মতো কিছু স্পষ্ট ব্যতিক্রম ব্যতীত একক-অক্ষরের নাম এবং সংক্ষিপ্তকরণ এড়িয়ে চলুন। "ব্যাকবটন" এর পরিবর্তে কিছু "বিকেবিটিএন" কল করা হচ্ছে
আপনার ভাষা যতটা অনুমতি দেয়, আপনার কোডটি একটি ইংরেজী বাক্যের মতো পড়ুন। বস্তু বিশেষ্য ব্যবহার করে, পদ্ধতিগুলি ক্রিয়াপদ ব্যবহার করে। বুলিয়ান পদ্ধতিগুলি সাধারণত "হয়" দিয়ে শুরু হয়, তবে ব্যবহারের ক্ষেত্রে যেমন "ক্যান", "করা উচিত", বা "না" এর উপর নির্ভর করে আরও অনেক অপশন রয়েছে যা অর্থটিকে আরও ভাল করে দেয়। অবশ্যই, সমস্ত ভাষা এই সময়ে স্মার্টটকের মতো ভাল হতে পারে না, তবে কিছু চিহ্ন সাধারণত বাক্যটির অংশ হিসাবে বোঝা যায়। দুটি স্মলটাক কনভেনশন আমি ব্যক্তিগতভাবে যতটা সম্ভব অন্যান্য ভাষায় গ্রহণ করতে পছন্দ করি "প্রতিটি" দিয়ে লুপ পরামিতির নাম উপস্থাপন করা হয় এবং "ক" (বা "একটি", বা সংগ্রহের জন্য "কিছু") নিবন্ধের সাথে উপকরণের পরামিতিগুলি উপস্থাপন করা হয় । এটি জাভাতে সাধারণ মানের নাও হতে পারে এবং যে কেউ এই বিটটিকে উপেক্ষা করতে স্বাগত জানায়, তবে আমি দেখতে পাচ্ছি যে এটি কোডের পঠনযোগ্যতাকে ব্যাপকভাবে বৃদ্ধি করে। উদাহরণস্বরূপ (জাভাতে উদাহরণ):
public boolean shouldConsiderAbbreviating(List<String> someNames) {
for (String eachName : someNames) {
if (isTooLong(eachName)) {
return true;
}
}
return false;
}
এটি জাভা সম্পর্কে কিছুটা জ্ঞানের লোকদের কাছে এই জাতীয় কিছু হিসাবে পঠনযোগ্য হবে:
আপনার কিছু নামের (যা স্ট্রিং রয়েছে) এর একটি সংক্ষিপ্ত বিবরণ বিবেচনা করা উচিত কিনা তা নির্ধারণ করার জন্য, কিছু নামের উপরে পুনরাবৃত্তি করুন এবং প্রতিটি নামের জন্য নির্ধারণ করুন যে এটি খুব দীর্ঘ কিনা; যদি তাই হয়, ফিরে true
; যদি কেউ খুব বেশি দীর্ঘ না হয় তবে ফিরে আসুন false
।
কেবলমাত্র আরও জটিল পদ্ধতিতে কেবল যুক্তি strings
এবং লুপ ভেরিয়েবলের নামকরণের সাথে উপরের কোডটি বিপরীত করুন string
। নামটি এক নজরে ব্যবহারের পরিবর্তে স্বতন্ত্র ব্যবহারের পরিবর্তে আপনাকে পার্থক্যটি দেখতে হবে।