آرمان
آرمان
خواندن ۳ دقیقه·۵ سال پیش

نامگذاری Naming در Clean Code (قسمت 2)

در این بخش به روش نام گذاری در بحث کد تمیز می پردازیم.

  • خودداری از نام گذاری بد-Avoid using bad names
  • خودداری از نام گذاری گمراه کننده-Avoid Misleading Names
  • خودداری از نشانه گزاری مجاری-Avoid Hungarian notation
  • استفاده از نوع نوشتاری ثابت-Use consistent capitalization
  • استفاده از اسامی قابل تلفظ-Use pronounceable names
  • استفاده از نشانه گذاری کملکیس-Use Camelcase notation
  • استفاده از نام دامنه-Use domain name


خودداری از نام گذاری بد Avoid using bad names

یک نام خوب اجازه می دهد تا کد توسط بسیاری از توسعه دهندگان مورد استفاده قرار گیرد. این نام باید آنچه را که انجام می دهد منعکس کند و context/زمینه ارائه دهد.

Bad:

int d;

Good:

int daySinceModification;

خودداری از نام گذاری گمراه کننده Avoid Misleading Names

نام متغیر بازتاب دهنده محتوای درونش باشد.

Bad:

var dataFromDb = db.GetFromService().ToList();

Good:

var listOfEmployee = _employeeService.GetEmployees().ToList();

خودداری از نشانه گزاری مجاری Avoid Hungarian notation

نشانه گذاری مجاری خلاصه 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 }

استفاده از نوع نوشتاری ثابت Use consistent capitalization

نوع نوشتاری ثابت در مورد متغیرها ، متدها و غیره چیزهای زیادی به شما می گوید. این قوانین ذهنی هستند ، بنابراین تیم شما می تواند هر آنچه را می خواهد انتخاب کند. نکته این است که ، مهم نیست همه شما چه چیزی را انتخاب می کنید ، فقط با هم هماهنگ باشید.

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 {}

استفاده از اسامی قابل تلفظ Use pronounceable names

زمان جستجوی معنای متغیرها و متدها زمانی که قابل تلفظ نیستند ، زمان خواهد برد.

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; } }

استفاده از نشانه گذاری کملکیس Use Camelcase notation

برای پارامترهای متد و متغیر از نشانه گذاری 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 }

استفاده از نام دامنه Use domain name

افرادی که کد شما را می خوانند نیز برنامه نویسان هستند.نامگذاری درست هرچیزی به همه که در همان صفحه هستند کمک می کند.ما نمی خواهیم وقت بگذاریم تا برای همه توضیح دهیم متغیر یا متد برای چیست.

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 &quotHello World!&quot } } 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(); }

منبع


clean codenamingc#
یک برنامه نویس که هرآنچه را که یاد میگیرد در دفترچه یادداشت ویرگولیش یادداشت میکرد(!) حتی یک خط ! تا درصورت نیاز به آن رجوع کند...
شاید از این پست‌ها خوشتان بیاید