قوانین نامگذاری کد ها
قرارداد چیست؟
بر طبق تعریف Wikipedia قراردادهای کد گذاری عبارت است از یک سری راهنما برای یک زبان برنامه نویسی خاص که در واقع استایل دهی به برنامه نویسی، تمرین و روش برای هر یک از جنبه های یک تکه کد که در این زبان نوشته شده است را پیشنهاد میکند. این قرادادها معمولا شامل سازمان دهی فایل، تورفتگی ها، کامنتها، تعاریف، خطوط فاصله، قراردادهای نامگذاری، تمرینهای برنامه نویسی، اصول برنامه نویسی، کیفیت و .. می شود. برنامه نویسان به شدت علاقه مند هستند که این راهنما را به کار ببندند تا خوانایی کدهایشان افزایش پیدا کند و نگهداری از برنامه راحت تر شود. قراردادهای کدنویسی فقط برای پشتیبان های انسانی و اشخاصی که کد را مرور می کنند قابل به کار گیری است. قراردادها ممکن است در مجموعه ای قوانین مستندسازی شده به صورت رسمی درآید. یا ممکن است خیلی غیر رسمی مانند چیزی که در کد نویسی های فردی انجام می دهیم باشد. قراردادهای کدگذاری توسط کامپایلرها اجباری نشده اند. در نتیجه به کار بستن یا نبستن این قراردادها در اجرای برنامه ای که از این کدها شکل گرفته تاثیری ندارد.
شما باید خیلی راحت تفاوت بین یک ویژگی، متغیر محلی، نام متد، نام کلاس و ... را با نگاه به آن بگویید.به این دلیل که آنها قراردادهای نامگذاری و حروف بزرگ و کوچک متفاوتی دارند.این نوع از قراردادها ارزشی هستند. قراردادهای زیادی را می توانید با جستجو در اینترنت پیدا کنید. بنابراین یا قراردادی را پیدا کنید یا قرارداد خودتان را بسازید و سفت به آن بچسبید و ازش استفاده کنید.
آنجه در زیر می آید تحت عنوان (Design Guidelines for Developing Class Libraries) توسط گروهی با نام Microsoft special interest group توسعه پیدا کرده است.
قراردادهای کوچک و بزرگ کردن حروف
در زیر مثالهایی از استانداردهای کد نویسی سی شارپ (C#)، قراردادهای نامگذاری، و بهترین تمرینها ذکر شده است. از این قراردادها بر اساس نیاز خودتون استفاده کنید.
نامگذاری پاسکال
اولین حرف identifier و اولین حرف از هر کلمه ای که آن را تشکیل میدهد(کلمه مجزا) به صورت بزرگ نوشته می شود. از نامگذاری پاسکال برای identifier هایی که سه یا بیشتر کاراکتر دارند می توان استفاده کرد.
نامگذاری Camel یا شتری
اولین حرف identifier به صورت کوچک نوشته می شود و اولین حرف هر کلمه مجزای دیگری که به identifier چسبیده باشد بزرگ نوشته می شود و سایر حروف کوچک است.
منبع: Capitalization Rules for Identifiers
مثالهایی از راهنماهای قوانین نامگذاری
می توانید منابع زیادی را روی اینترنت برای قوانین پیدا کنید. در زیر تنها برخی از آنها که مورد علاقه من بوده است را می توانید پیدا کنید:
- C# Coding Conventions
- C# Coding Guidelines
- C# Coding Standards and Best Programming Practices
- C# Coding Standards and Naming Conventions
چند مثال پایه ای و ساده را از آنچه تا حالا بحث کردیم در زیر آورده ایم. قراردادی که بیشتر به شما میخورد و با آن راحت تر هستید را پیدا کنید و محکم به آن بچسبید و از خوانایی کد زنی با این قرارداد لذت ببرید.
از نامگذاری پاسکال برای نامگذاری متدها و کلاسها استفاده کنید.
public class Product
{
public void GetActiveProducts()
{
//...
}
public void CalculateProductAdditinalCost()
{
//...
}
}
از نامگذاری camel یا شتری برای نامگذاری آرگومانهای متد و متغیرهای محلی استفاده کنید.
public class ProductCategory
{
public void Save(ProductCategory productCategory)
{
// ...
}
}
از اختصار بپرهیزید.
// Correct
ProductCategory productCategory;
// Avoid
ProductCategory prodCat;
از underline در نامگذاری identifier ها استفاده نکنید.
// Correct
>ProductCategory productCategory;
// Avoid
>ProductCategory product_Category;
وقتی دارید واسط تعریف می کنید(Interface) از حرف I در اول نامش استفاده کنید.
public interface IAddress
{
}
همه متغیرهای کلاس را در بالای کلاس تعریف کنید. اونهایی که استاتیک هستند را بالاتر.
public class Product
{
public static string BrandName;
public string Name{get; set;}
public DateTime DateAvailable {get; set;}
public Product()
{
// ...
}
}
از اسامی مفرد برای enum استفاده کنید
public enum Direction
{
North,
East,
South,
West
}
پسوند Enum را در انتهای نام یک enum به کار نبرید.
public enum DirectionEnum
{
North,
East,
South,
West
}
چرا به قراردادها نیاز داریم؟
برنامه نویس هایی که روی پروژه های بزرگ کار می کنند اغلب با دریایی از قراردادها مواجه می شوند. آنها استانداردها و راهنماهای فراوانی را به کار می گیرند و این به خاطر آوردن همه آنها یک کار تمام وقت است. برای کامپیوتر هم اهمیتی ندارد که کد شما خوانا باشد یا نه. کامپیوتر اساسا با خواندن کدهای دودویی زبان ماشین راحت تر است تا با خواندن عبارتهای مربوط به زبانهای سطح بالا.
قراردادها معمولا چندین منفعت را در اختیار قرار می دهند. با استفاده از یک تصمیم کلی به جای این که از تعدادی زیادی تصمیم جزیی بهره ببرید، می توانید روی ویژگی های بسیار مهمتر کد تمرکز کنید.
- آنها اجازه می دهند دانش خود را در طول پروژه ها انتقال نمایید.
- آنها اجازه می دهند که شما کد یک پروژه جدید را سریعتر فرا بگیرید.
- آنها روی روابط میان عناصر مرتبط تاکید می کنند.
شما باید کد را خوانا بنویسید به این دلیل که به دیگران کمک می کند تا کد شما را به آسانی بخوانند. نامگذاری چیزها یکی از سخت ترین کارهایی است که پیش روی برنامه نویسان قرار دارد. فراموش نکنیم که نامها در واقع معنا به کد می دهند و این یعنی خوانایی مطلق.
بنابراین وقتی کد را خوانا می نویسید راحت می توانید در خانه استراحت کنید.
- نوشته شده توسط مظاهر نصوحی
- بازدید: 23215
دیدگاهها
جالب بود
ممنون