در این بخش به روش نام گذاری در بحث کد تمیز می پردازیم.
یک نام خوب اجازه می دهد تا کد توسط بسیاری از توسعه دهندگان مورد استفاده قرار گیرد. این نام باید آنچه را که انجام می دهد منعکس کند و context/زمینه ارائه دهد.
Bad:
int d;
Good:
int daySinceModification;
نام متغیر بازتاب دهنده محتوای درونش باشد.
Bad:
var dataFromDb = db.GetFromService().ToList();
Good:
var listOfEmployee = _employeeService.GetEmployees().ToList();
نشانه گذاری مجاری خلاصه type متغیر را اول نام متغیر می آورند.این بی معنی است زیرا IDE های مدرن نوع را شناسایی می کنند.
Bad:
int iCounter; string strFullName; DateTime dModifiedDate;
Good:
int counter; string fullName; DateTime modifiedDate;
همچنین نشانه گذاری مجاری نباید در پارامترها مورد استفاده قرار گیرد.
Bad:
public bool IsShopOpen(string pDay, int pAmount) { // some logic }
Good:
public bool IsShopOpen(string day, int amount) { // some logic }
نوع نوشتاری ثابت در مورد متغیرها ، متدها و غیره چیزهای زیادی به شما می گوید. این قوانین ذهنی هستند ، بنابراین تیم شما می تواند هر آنچه را می خواهد انتخاب کند. نکته این است که ، مهم نیست همه شما چه چیزی را انتخاب می کنید ، فقط با هم هماهنگ باشید.
Bad:
const int DAYS_IN_WEEK = 7; const int daysInMonth = 30; var songs = new List<string> { 'Back In Black', 'Stairway to Heaven', 'Hey Jude' }; var Artists = new List<string> { 'ACDC', 'Led Zeppelin', 'The Beatles' }; bool EraseDatabase() {} bool Restore_database() {} class animal {} class Alpaca {}
Good:
const int DaysInWeek = 7; const int DaysInMonth = 30; var songs = new List<string> { 'Back In Black', 'Stairway to Heaven', 'Hey Jude' }; var artists = new List<string> { 'ACDC', 'Led Zeppelin', 'The Beatles' }; bool EraseDatabase() {} bool RestoreDatabase() {} class Animal {} class Alpaca {}
زمان جستجوی معنای متغیرها و متدها زمانی که قابل تلفظ نیستند ، زمان خواهد برد.
Bad:
public class Employee { public Datetime sWorkDate { get; set; } // what the heck is this public Datetime modTime { get; set; } // same here }
Good:
public class Employee { public Datetime StartWorkingDate { get; set; } public Datetime ModificationTime { get; set; } }
برای پارامترهای متد و متغیر از نشانه گذاری camelCase استفاده کنید.
Bad:
var employeephone; public double CalculateSalary(int workingdays, int workinghours) { // some logic }
Good:
var employeePhone; public double CalculateSalary(int workingDays, int workingHours) { // some logic }
افرادی که کد شما را می خوانند نیز برنامه نویسان هستند.نامگذاری درست هرچیزی به همه که در همان صفحه هستند کمک می کند.ما نمی خواهیم وقت بگذاریم تا برای همه توضیح دهیم متغیر یا متد برای چیست.
Good
public class SingleObject { // create an object of SingleObject private static SingleObject _instance = new SingleObject(); // make the constructor private so that this class cannot be instantiated private SingleObject() {} // get the only object available public static SingleObject GetInstance() { return _instance; } public string ShowMessage() { return "Hello World!" } } public static void main(String[] args) { // illegal construct // var object = new SingleObject(); // Get the only object available var singletonObject = SingleObject.GetInstance(); // show the message singletonObject.ShowMessage(); }