تست سریع
مقدمه
برنامه نویس ها همیشه دوست دارند که سر استانداردها با همدیگر جنگ و دعوا راه بیندازند. اما پیروی از یک سری استاندارد کدنویسی برای رسیدن به ثبات در پروژه یا کد، موضوعی حیاتی است.
همه روی این موضوع متفق القول هستند که نامگذاری و استفاده از استاندارد بسیار حائز اهمیت است. در ادامه ی این آموزش به برخی از تمرین های خوبی که نویسنده در طول سال های کاریش تجربه کرده، خواهیم پرداخت.
تست سریع (Quick Test)
بد نیست برای درک بهتر این موضوع، مثال FizzBuzz را با همدیگر مرور کنیم.
تست FizzBuzz برنامه ای است که از عدد یک تا عدد 100 ادامه پیدا می کند.
برای اعدادی که ضریب 3 هستند (مثل 3، 6، 9،...) برنامه در خروجی عبارت "Fizz" را نمایش می دهد.
برای آن دسته از اعدادی که ضریب 5 هستند (مثل 5، 10، 15) برنامه عبارت "Buzz" را در خروجی نمایش می دهد.
و در نهایت برای آن دسته از اعدادی که هم ضریب سه هستند و هم ضریب 5 هستند (مثل 15، 30،...) برنامه عبارت "FizzBuzz" را در خروجی می گذارد.
حالا اگر هیچ یک از حالات فوق رخ نداد، خود عدد در خروجی چاپ می شود.
مثال 1:
public void Test()
{
for (int i= 1; i<= 100; i++)
{
if (i % 3 == 0 && i % 5 == 0)
{
Console.WriteLine("FizzBuzz");
}
else if (i % 3 == 0)
{
Console.WriteLine("Fizz");
}
if (i % 5 == 0)
{
Console.WriteLine("Buzz");
}
}
}
به نظر شما آیا این کد را می توان بهتر نوشت؟
مثال 2:
public void Check()
{
for (int i = 1; i <= 100; i++)
{
string output = "";
if (i % 3 == 0)
{
output = "Fizz";
}
if (i % 5 == 0)
{
output = output + "Buzz";
}
if (output == "")
{
output = i.ToString();
}
Console.WriteLine(output);
}
}
الان چطور فکر می کنید؟ آیا بازهم این کد را می توان بهتر نوشت؟
خوب صبر کنید تا من باز هم در بهتر نوشتن این کد به شما کمک کنم.
نامگذاری چیزها یکی از سخت ترین کارهایی است که من (نویسنده) تا حالا به عنوان یک توسعه دهنده و برنامه نویس انجام داده ام. روشهای زیادی برای نامگذاری اشیا، متدها، فایلها و پروژه ها وجود دارد.
به خاطر داشته باشیم که انرژی زیادی باید صرف نامگذاری کنیم، زیرا نام ها می توانند معانی را بسازند. افزایش معنا به کد، خوانایی کد شما را خیلی بالا می برد.
public void DoFizzBuzz()
{
for (int number = 1; number <= 100; number++)
{
var output = GetFizzBuzzOutput(number);
Console.WriteLine(output);
}
}
private static string GetFizzBuzzOutput(int number)
{
string output = string.Empty;
if (number%3 == 0)
{
output = "Fizz";
}
if (number%5 == 0)
{
output += "Buzz";
}
if(string.IsNullOrEmpty(output))
{
output = number.ToString();
}
return output;
}
خوب حالا چه تصوری داردید؟ آیا این کد از مثال قبلی بهتر نیست؟ آیا این کد خواناتر نیست؟
- نوشته شده توسط مظاهر نصوحی
- بازدید: 15448