代码怎么写才看起来是有经验的程序员

2025-10-26 13:09:54

1、1.用代码阐述代替注释

反例:

/// <summary>

/// !@#$%^&^&*((!@#$%^&^&*((!@#$%^&^&*((!@#$%^&^&*((

/// </summary>

/// <returns></returns>

 public decimal GetCash()

 {

     //!@#$%^&^&*((!@#$%^&^&*((

     var a = new List<decimal>() { 2m, 3m, 10m };

     var b = 2;

     var c = 0m;

     //!@#$%^&^&*((!@#$%^&^&*((!@#$%^&^&*((

     foreach (var p in a)

     {

         c += p*b;

     }

     return c;

 }

优化后:

public decimal CalculateTotalCash()

{

    var prices=new List<decimal>(){2m,3m,10m};

    var itemCount = 2;

    return prices.Sum(p => p*itemCount);

}

注释,是在别的程序猿看不懂代码的情况下使用,尽量让你的代码命名能代替注释吧。

2、2. 为布尔变量赋值

反例:

public bool IsAdult(int age)

{

    bool isAdult;

    if (age > 18)

    {

        isAdult = true;

    }

    else

    {

        isAdult = false;

    }

    return isAdult;

}

优化后:

public bool IsAdult(int age)

{

    var isAdult = age > 18;

    return isAdult;

}

3、3.双重否定的条件判断

反例:

if (!isNotRemeberMe)

{

 }

优化后:

if (isRemeberMe)

{

}

你不理解双重否定不要紧,你总知道负负得正吧

4、4.拒绝HardCode,拒绝挖坑

反例:

if (carName == "Nissan")

 {

}

优化后:

if (car == Car.Nissan)

{

 }

让错误发生的编译阶段,你能更好的发现问题

5、5.拒绝魔数

反例:

if (age > 18)

{

}

优化后:

const int adultAge = 18;

 if (age > adultAge)

{

}

所谓魔数(Magic number)就是一个魔法数字,它没有单位,每当你看到这个数字时都不了解这是什么。这个现象很常见,最好的就是给它一个值,然后替代。

6、6.复杂的条件判断

反例:

if (job.JobState == JobState.New

    || job.JobState == JobState.Submitted

    || job.JobState == JobState.Expired

    || job.JobTitle.IsNullOrWhiteSpace())

{

    //....

}

优化后:

 if (CanBeDeleted(job))

    {

        //

    }        

private bool CanBeDeleted(Job job)

{

    var invalidJobState = job.JobState == JobState.New

                          || job.JobState == JobState.Submitted

                          || job.JobState == JobState.Expired;

    var invalidJob = string.IsNullOrEmpty(job.JobTitle);

    return invalidJobState || invalidJob;

}

到受到牛气冲天了吗?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢