قواعد نامگذاری (Naming Convention) در ++C

Naming Convention in C Plus Plus

19 اسفند 1400
Naming Convention in C Plus Plus

نامگذاری یک فایل یا یک متغیر اولین و پایه‌ترین گام‌هایی است که یک برنامه‌نویس برای نوشتن کد تمیز (clean codes) بر‌می‌دارد. نامگذاری باید صحیح و مناسب باشد، به طوری‌که برای برنامه‌نویس دیگری به عنوان راهی آسان برای خواندن کد عمل کند. قواعد نامگذاری در c++، مجموعه‌ای از قوانین برای انتخاب نام‌ معتبر برای یک متغیر و تابع در یک برنامه‌ی ++C است.

  • نام کلاس باید یک اسم باشد.
  • از حروف بزرگ به عنوان کلمه‌ی جدا، حروف کوچیک برای مابقی کلمه در نام کلاس استفاده کنید.
  • اولین کارکتر در نام کلاس باید حرف بزرگ باشد.
  • هیچ زیر‌خط ( ـ ) برای نام کلاس مجاز نیست.
  • نام ویژگی private در کلاس باید با کارکتر m شروع شود.
  • بعد از قرار دادن m در ابتدای ویژگی private، قوانین مشابه برای نام مانند نام کلاس دنبال می‌شود.
  • کارکتر m نیز قبل از نام دیگری اضافه می‌شود که البته نیز ویرایش می‌شود. برای مثال، p برای اشاره‌گر‌ها.
  • هر نام متُد/تابع باید با یک کلمه شروع شود.
  • اولین کارکتر از نام‌های آرگومانت تابع/متُد باید حروف کوچک باشد. همه‌ی کلمات شروع‌شده بعد از اولین باید حروف بزرگ با نام‌های کلاس باشند.
  • نام متغیر باید با یک حرف الفبا شروع شود.
  • اعداد ممکن است در نام‌ متغیر استفاده شود، اما تنها بعد از حرف الفبا.
  • هیچ نماد خاصی نمی‌تواند در نام‌های متغیر استفاده شود، به جزء زیر‌خط (ـ).
  • هیچ‌ کلمه‌ی کلیدی نمی‌تواند برای نام‌های متغیر استفاده شود.
  • متغیر‌های اشاره‌گر باید ابتدای آن با p شروع شده و نماد ستاره (*) نزدیک به نام متغیر قرار گیرد به جای نوع اشاره‌گر.
  • متغیر‌های ارجاع (Reference variables) باید ابتدای آن r  قرار گرفته باشد. این کار به جدا کردن متُدی که یک شیء قابل ویرایش و همان متُدی که یک شی غیرقابل ویرایش را برمی‌گرداند، کمک می‌کند.
  • متغیر‌های ثابت (Static variables) باید ابتدای آن s قرار گیرد.
  • ثوابت سراسری (global constants) باید همه‌‌ی آن با حروف بزرگ جدا‌شده با _ باشد.
  • هیچ کارکتر خاصی در نام فایل به جزء زیر‌خط (ـ) و خط‌تیره (-) مجاز نیست.
  • نام فایل باید با پسوند cc. یا با پسوند cpp. به پایان برسد.
  • از نام‌های فایلی که از قبل در /user/include موجود هستند. یا هر نام هِدرفایل پیش‌تعریف شده استفاده نکنید.

مثال

محاسبه‌ی حاصل 2 مغیر

نام متغیر 1 به عنوان var1

نام متغیر 2 به عنوان var2

نام result به عنوان حاصل یا pdt

این مناسب‌ترین قرارداد نامگذاری نسبت به نام‌های تصادفی فرضی مانند x،y و z است.

مزایای قواعد نامگذاری در c++:

پیروی کردن از مجموعه‌ای از قوانین در naming convention  هنگام نوشتن کد، به طریق زیر به ما کمک می‌کند:

  1. جلوگیری از تضاد در نامگذاری
  2. بهبود شفافیت کد در موقع ابهام.
  3. کمک به شکل‌دهی و
  4. بهبود فهم و خوانایی کد.
  1. کلاس: نام یک کلاس در ++C بعد از اینکه آن نام چیست  و از حروف بزرگ به عنوان کلماتی جداگانه استفاده می‌کند.  نام کلاس باید یک اسم باشد. برای مثال، ReverseString، Multiply2Numbers.  نام باید خاص باشد و به عملکرد کلاس اشاره کند، بدون گذر اجمالی در بدنه‌ی کلاس.
  2. متدها: هر متُد و تابع یک کار انجام می‌دهد. بنابراین نام تابع باید بیانگر کاری باشد که انجام می‌دهد. برای مثال، ()WriteDataToFile نام مناسب‌تری نسبت به ()WriteFile است. نام‌های تابع باید با یک کلمه شروع شوند.
  3. ثابت‌ها ( Constants ): ثابت‌ها باید همگی حروف بزرگ با جدا‌کننده‌ی _ باشند. برای مثال:‌ MAX_INT یا TWO_PI و غیره.

قواعد نامگذاری در ++C

نام‌ها در برنامه‌ کلید خوانایی برنامه هستند. اگر نام در یک برنامه مناسب باشد، همه‌چیز با هم‌دیگر جفت می‌شوند و روابط شفاف هستند، که به معنی گرویپذیر است. ++c از CamelCase به عنوان یک روش برای نام‌ متُدها، متغیر‌ها، کلاس‌ها، پکیج‌ها (packages)، و ثوابت (constants) استفاده می‌کند.

CamelCase یک قرارداد نامگذاری است که یک نام تشکل‌شده از کلمات مختلف که به عنوان یک کلمه‌ی واحد با هم شکل گرفته و اولین حرف از هر کدام‌ از کلمات به صورت بزرگ است.

در ادامه‌ی قرارد‌اد‌های نامگذاری در زبان برنامه‌نویسی ++c را شرح خواهیم داد. این قرارد‌اد‌ها باید در هنگام نوشتن کد به زبان ++c برای نگهداری، قابلیت‌ خوانایی، فهم و درک برنامه دنبال شوند.

نوع 1: نام‌‌های کلاس و ویژگی‌های کلاس (Classes and Class Attributes Names)

  • نام کلاس باید یک اسم باشد.
  • از حروف بزرگ به عنوان کلمه‌ی جداگانه و از حروف کوچک برای مابقی کلمه استفاده کنید.
  • اولین کارکتر در نام کلاس باید حرف بزرگ باشد.
  • هیچ زیرخط (ـ) در نام کلاس مجاز نیست.
class PerimeterRectangle

class FingerprintScanner
  • نام ویژگی خصوصی (private attribute name) در کلاس باید ابتدای آن کارکتر m قرار گیرد.
  • بعد از قرار دادن m، قانون‌های مشابه برای نام همانند نام کلاس اعمال می‌شود.
  • کارکتر m نیز قبل از نام دیگری اضافه می‌شود که البته نیز ویرایش می‌شود. برای مثال، p برای اشاره‌
class PerimeterRectangle
{
    public:
    int perimeter;
    private:
    int mLength;
    int mWidth;
}

نوع 2: نام‌های توابع و آرگومانت‌های تابع (Functions and Function Argument Names)

معمولا، هر تابع در ++C یک یا چند کار را انجام می‌دهد. بنابراین نام تابع باید بیانگر کار باشد که تابع انجام می‌دهد. هر نام متُد/تابع  باید با یک نام شروع شود.

1. پسوند‌ها گاهی مفید هستند. برای مثال:

  • Count - تعداد فعلی شمارنده.
  • Key - کلید مقدار.

2. پیشوند‌ها گاهی مفید هستند. برای مثال:

  • get - گرفتن مقدار.
  • set - تنظیم مقدار.

قرارداد نامگذاری مشابه همانطور که برای نام‌های ‌کلاس‌ استفاده شده است، استفاده می‌شود.

int getValue();

int SolveEquation();

اولین کارکتر از نام‌های آرگومانت متُد/تابع باید حروف کوچک باشد. همه‌ی کلمات شروع شده بعد از اولین حرف باید با حروف بزرگ با نام‌های کلاس باشند.

نوع 3: متغیر‌ها (Variables)

هنگامی که متغیر‌ها با استفاده از کلمه‌ی کلیدی new به صورت پویا اعلام می‌شوند یا اگر متغیر‌ها به عنوان ویژگی‌ها کلاس اعلام شوند، ‌‌آنها حافظه را از heap می‌گیرند و زمانی که متغیر‌ها در یک برنامه‌ی ++C ایجاد می‌شوند، حافظه از پُشته برنامه (‌program stack) اختصاص داده می‌شود.

  • نام متغیر باید با یک یک حرف الفبا شروع شود.
  • اعداد ممکن است استفاده شوند، اما تنها بعد از حروف الفبا.
  • هیچ نماد خاصی به جز علامت زیر‌خط (_)،  نمی‌تواند در نام متغیر‌ها  استفاده شود.
  • هیچ کلمه‌ی کلیدی نمی‌تواند برای نام متغیر‌ها استفاده شود.
int total_cost;

int length;

متغیر‌های اشاره‌گر (‌Pointer variables‌) باید ابتدای آن‌ها با p شروع شود و نماد ستاره (*) کنار نام متغیر باشد به جای نوع اشاره‌گر، مثال:

int *pName;

int *pAge, address; // Here only pAge is a pointer variable

متغیر‌های مرجع (Reference variables) ابتدای آن‌ها با r شروع شود. این کار به جدا کردن تفاوت بین متُدی که یک شئ قابل ویرایش برگشت می‌دهد و همان متُد با یک شئ غیرقابل ویرایش برگشت می‌دهد، کمک می‌کند.

متغیر‌های استاتیک (Static variables) باید در ابتدا با s شروع شوند، مثال:

static int sCount;

نوع چهارم: ثوابت (Constant)

ثوابت سراسری باید با علامت زیر‌خط (‌ـ) و تماما حروف بزرگ باشند، مثال:

const double TWO_PI = 6.28318531;

نوع پنجم: نامگذاری فایل‌ها (File Naming)

  • هیچ کارکتر خاصی به جز زیر‌‌خط (ـ) و خط‌‌تیره (-) در نامگذاری فایل مجاز نیست.
  • نام فایل باید با پسوند‌های cc. و یا cpp. به پایان برسد.
  • از نام‌های فایل‌هایی که از قبل در  /user/include وجود دارند یا هر نام هِدر‌فایلی از پیش‌تعریف شده استفاده نکنید.

مثال‌هایی در این مورد را مشاهده کنید:

helloworld.cc        // Valid

hello_world.cpp    // Valid

 hello-world.cpp   // Valid

hel-lo_world.cpp  // Valid

hello* world.cpp  // Not Valid

iostream.cpp // Not Valid

منبع: وب سایت geeksforgeeks

نویسنده شوید
دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.