1401/07/06

نوتیف

دنیایی رو به دانش و آگاهی

آشنایی با کدنویسی استاندارد

1 min read
برنامه نویسی

برنامه نویسی

در این مقاله قصد داریم راجع به «کدنویسی استاندارد» صحبت کنیم. به دو مثال زیر توجه کنید:

if(){
// some code
}else{
// some code
}
if () {
// some code
برنامه نویسی و پی اچ پی
جاوا اسکریپت
} else {
// some code
}

از نظر ماشین ھا کدھای بالا هیچ فرقی با یکدیگر ندارند. اما برای ما انسان ھا از نظر ظاھری متفاوت ھستند. شما کدامیک را ترجیح می دهید؟ و به چه دلیل؟ در ادامه مطلب با ما باشید تا تصمیم بگیریم کدام بهتر است و چرا.

استانداردها و رسوم کدنویسی، گایدلاین ھا (راهنما و دستورالعمل) برای زبان های برنامه نویسی هستند که شیوه ھای خاصی برای کدنویسی را توصیه می کنند. این گایدلاین ھا توصیه هایی برای کامنت گذاری، فاصله گذاری، تعریف و نام گذاری متغیرها (variable)، چگونگی فضاهای خالی و … دارند.

بسیار توصیه می شود که برنامه نویسان نرم افزارھا حتما از این استانداردها استفاده کنند تا کدهایشان به آسانی توسط سایرین خوانده شود.

برای آشنایی بهتر، در ادامه تعدادی از توصیه ها در زبان های PHP و جاوا اسکریپت را می آوریم. همانطور که در این مقاله خواهید دید بعضی از استانداردها توسط شرکت ها و تیم های تجاری بزرگ گردآوری و فرمول شده اند و برخی دیگر قوانینی غیر رسمی بوده و به مرور به عادت های کد نویسی افراد اضافه شده اند. توجه کنید که عدم استفاده از این توصیه ھا به معنای اشتباه بودن کد شما نیست. اما بسیار توصیه می شود که در کدنویسی حتما از این استانداردها یا استانداردهای مشابه دیگر استفاده کنید.

خوب بودن بر اساس استاندارد عامیانه ای که از خوبی داریم، کار آسانی است. باید مقداری احترام را با افکار جالب مخلوط کرده و کمی شیطنت به مقدار لازم اضافه کنید.
اقتباس شده از اسکار وایلد (١٩٠٠ – ١٨۵۴)

چرا کدنویسی استاندارد اھمیت دارد؟

گرچه استاندارد نویسی در ابتدا مشکل است و بیهوده به نظر می رسد، اما زمانی که نرم افزارتان بزرگ شود و حجم آن به چند ھزار خط در چند صد فایل برسد، فواید آن مشخص می شود. بعضی از این فواید عبارتند از:

  • برنامه نویسان به راحتی می توانند روی کدھایی که توسط دیگران نوشته شده کار کنند. زیرا کدھا به روشی نوشته شده اند که ھر یک از برنامه نویسان با آن آشنا است.
  • اگر شخص جدیدی وارد تیم پروژه شود، به راحتی می تواند با کدھا کار کند (به شرطی که با کدنویسی استاندارد آشنایی داشته باشد.)
  • رعایت استانداردھا گاھی از ایجاد اشتباه در کدنویسی نیز جلوگیری می کند.

مشکل اصلی برای استاندارد نویسی این است که کمی زمان می برد تا به آن عادت کنید. و اگر در زمانی که در حالت تغییر از عادت ھای قدیمی به استاندارد نویسی ھستید وسواس کافی به خرج ندهید، در نهایت به مخلوطی از این دو تبدیل می شوید. برای جلوگیری از این مشکل در ابتدا باید مدام به گایدلاین های استاندارد نویسی مراجعه مکرر داشته باشید تا به آن عادت کنید. پس از آن شما به یک استاندارد نویس تمام عیار تبدیل خواھید شد.

indent گذاری و فضای سفید

زمانی که روی مشکلی کار می کنم، ھرگز راجع به زیبایی کد فکر نمی کنم. فقط روی حل مشکل تمرکز می کنم. اما زمانی که مشکل حل شد، اگر راه حل زیبا نبود می دانم که آن راه اشتباه است.

R. Buckminster Fuller

ایندنت گذاری با دو اسپیس (Space) انجام می شود، نه با تب (Tab) مانند زیر:

if (a) {
  code
}

همانطور که می بینید کلمه Code نسبت به متن اطراف با دو اسپیس جلوتر آمده. در صورتی که خود نرم افزار کد نویسی تان این کار را با تب انجام می دهد، به تنظیمات آن بروید. معمولا تمامی آنها تنظیمی برای جایگزینی تب با دو اسپیس دارند.

اپراتورھا (Operators) در کدنویسی استاندارد

تمام اپراتورهای باینری (اپراتورهایی که بین دو مقدار (Value) می آیند)، مانند +, -, =, !=, ==, > و غیره،برای راحت تر خوانده شدن، باید قبل و بعد از خود اسپیس داشته باشند. برای مثال بنویسیم

$foo = $bar;

و ننویسیم

$foo=$bar;

اپراتورهای Unary (آنهایی که فقط روی یک مقدار عمل می کنند)، مانند ++ نباید هیچ فاصله ای با متغیر یا عدد کناریشان داشته باشند.

Casting

در یک کست یک اسپیس بین (نوع) و متغیر قرار دھید. مانند زیر:

(int) $mynumber

 Control Structures در کدنویسی استاندارد

که شامل if, for, while, switch و غیره هستند باید به شیوه زیر نوشته شوند:

if (condition1 || condition2) {
  action1;
} elseif (condition3 && condition4) {
  action2;
} else { 
  defaultaction;
}

همانطور که در مثال بالا میبینید کلمات «if» و «elseif» یک اسپیس از پرانتز بعد از خود فاصله دارند تا با فراخوانی یک فانکشن متفاوت باشند. فراخوانی یک فانکشن مانند مثال زیر:

print_my_name();

همیشه از علامت های آکولاد {} استفاده کنید. حتی زمانی که لازم نباشند. مثال زیر در جاوااسکریپت صحیح است اما استاندارد نیست:

if (condition1)
  statement1
else
if (condition2)
  statement2
else
if (condition3)
...

کد بالا برای کسی که با این روش آشنایی ندارد، کمی گیج به نظر می رسد. استاندارد این است که همیشه از آکولاد استفاده کنید زیرا خوانایی کد را افزایش و احتمالا خطا را کاھش میدھد.

کامنت گذاری در کدنویسی استاندارد

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

// $Id: backup_migrate.php,v 1.1.2.1.2.6 2010/03/24 04:02:58 ronan $

در این خط در ابتدا نام فایل قرار دارد. سپس ورژن آن (برای شروع ورژن را 1.0 بگذارید.) سپس زمانی که شما فایل را ساخته اید را وارد کنید. سپس نام خودتان را وارد کنید.

در ابتدای هر فایل یا فانکشن پیچیده ای باید از بلاک کامنت گذاری روش داکسیجن استفاده شود. مثلا:

/**
* Open a printer-friendly page and prompt for printing.
* @param tagID
* The ID of the tag that contains the material that should
* be printed.
*/

به این سیستم کامنت گذاری « بلاک کدنویسی، روش داکسیجن » می گویند. متون را می توانید به زبان انگلیسی یا فینگلیش بنویسید. تمام قسمت های گیج کننده کد باید با روش های کدگذاری تک خطی توضیح داده شوند. مانند زیر:

// Some code come here.
/* Some other code here too. */

کامنت ھا باید یک جمله کامل باشند و با نقطه تمام شوند.
باز هم تکرار میکنیم که رعایت نشدن موارد بالا در یک کد به معنای اشتباه بودن آن کد نیست، بلکه به معنای آن است که کد از این استاندارد پیروی نمی کند. شاید این کد از استاندارد دیگری پیروی کند یا ھیچ استانداری مد نظرش نباشد. اما بدانید، کدی که استاندارد نباشد گرچه به خوبی کار می کند اما جایی در پروژه های بزرگ با تیم های چند نفره ندارد.
برنامه نویسی امروزه مسابقه ای است بین برنامه نویسانی که پروژه های بزرگتر و بھتر و هوشمندانه تر می سازند و دانشگاه هایی که سعی می کنند احمق های بزرگتر و بدتر بسازند. تاکنون که دانشگاه ها برنده بوده اند.

Rich Cook

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.