要修改的bug 和 编码习惯

 CustomerActivityplanController 程序员

一、不能从session中取值。编程

二、注释尽可能  @throws   尽可能详细一点。session

这篇文章要介绍的,是我做为专业程序员这些年来学到的能真正提升个人代码质量和总体工做效率的10件事情。app

1. 永远不要复制代码函数

不惜任何代价避免重复的代码。若是一个经常使用的代码片断出如今了程序中的几个不一样地方,重构它,把它放到一个本身的函数里。重复的代码会致使你的同事 在读你的代码时产生困惑。而重复的代码若是在一个地方修改,在另一个地方忘记修改,就会产生处处是bug,它还会使你的代码体积变得臃肿。现代的编程语 言提供了很好的方法来解决这些问题,例如,下面这个问题在之前很难解决,而现在使用lambdas却很好实现:性能

///<summary>单元测试

/// 一些函数含有部分重复代码测试

///</summary>优化

void OriginalA()spa

{

DoThingsA();

// unique code

DoThingsB();

}

///<summary>

/// 另一个含有部分重复代码的函数

///</summary>

void OriginalB()

{

DoThingsA();

// 没有重复的代码

DoThingsB();

}

如今咱们重构含有部分相同代码的函数,用delegate模式重写它们:

///<summary>

/// Encapsulate shared functionality

///</summary>

///User defined action

void UniqueWrapper(Action action)

{

DoThingsA();

action();

DoThingsB();

}

///<summary>

/// New implmentation of A

///</summary>

void NewA()

{

UniqueWrapper(() =>

{

// unique code

});

}

///<summary>

/// New implementation of B

///</summary>

void NewB()

{

UniqueWrapper(() =>

{

// unique code

});

}

2. 留意你开始分心的时候

当你发现本身在浏览facebook或微博、而不是在解决问题,这一般是一种你须要短暂休息的信号。离开办公桌,去喝一杯咖啡,或去跟同事聊5分钟。尽管这样作看起来有点反直觉,但长久去看,它会提升你的工做效率。

3. 不要匆忙赶任务而放弃原则

当带着压力去解决一个问题或修改一个bug,你很容易失去自制,发现本身匆匆忙忙,甚至彻底忘了一直坚持的重要的测试过程。这一般会致使更多的问题,会让你在老板或同事眼里显得很不专业。

4. 测试你完成的代码

你知道你的代码能作什么,并且试了一下,它确实好用,但你实际上须要充分的验证它。分析全部可能的边界状况,测试在全部可能的条件下它都能如期的工 做。若是有参数,传递一些预期范围外的值。传递一个null值。若是可能,让同事看看你的代码,问他们可否弄坏它。单元测试是到达这种目的的常规方法。

5. 代码审查

提交你的代码以前,找个同事一块儿坐下来,向他解释你作了哪些修改。一般,这样作的过程当中你就能发现代码中的错误,而不须要同事说一句话。这比本身审查本身的代码要有效的多得多。

6. 让代码更少

若是你发现写了大量的代码来解决一个简单的问题,你极可能作错了。下面的boolean用法是一个很好的例子:

if (numMines > 0)

{

enabled=true;

}

else

{

enabled=false;

}

这时你应该写成这样:

enabled = numMines > 0;

代码越少越好。这会使bug更少,重构可能性更小,出错的概率更小。要适度。可读性同等重要,你可不能这样作而使代码丧失可读性。

7. 为优雅的代码而努力

优雅的代码很是的易读,只用手边不多的代码、让机器作不多的运算就能解决问题。在各类环境中都作到代码优雅是很难的,但通过一段时间的编程,你会对 优雅的代码是个什么样子有个初步的感受。优雅的代码不会经过重构来得到。当你看到优雅的代码是会很高兴。你会为它自豪。例如,下面就是一个我认为是优雅的 方式来计算多边形面积的方法:

static public double GetConvexPolygonArea(Vector2[] vertices)

{

double area = 0;

for (int i = 0; i < vertices.Length; i++)

{

Vector2 P0 = vertices[i];

Vector2 P1 = vertices[(i + 1) % vertices.Length];

area += P0.Wedge(P1);

}

return area / 2;

}

8. 编写不言自明的代码

勿庸置疑,注释是编程中很重要的一部分,但可以不言自明的代码跟胜一筹,由于它能让你在看代码时就能理解它。函数名变量名要慎重选择,好的变量/方法名字放到语言语义环境中时,不懂编程的人都能看懂。例如:

void DamagePlayer(Player player, int damageAmount)

{

if (!player.m_IsInvincible && !player.m_IsDead)

{

player.InflictDamage( damageAmount );

}

}

能自我说明的代码不能代替注释。注释是用来解释“为何”的,而自我说明的代码是来描述“是什么”的。

9. 不要使用纯数字

直接把数字嵌入代码中是一种恶习,由于没法说明它们是表明什么的。当有重复时更糟糕——相同的数字在代码的多个地方出现。若是只修改了一个,而忘记了其它的。这就致使bug。必定要用一个命名常量来表明你要表达的数字,即便它在代码里只出现一次。

10. 不要作手工劳动

当作一系列动做时,人类老是喜欢犯错误。若是你在作部署工做,而且不是一步能完成的,那你就是在作错事。尽可能的让工做能自动化的完成,减小人为错误。当作工做量很大的任务时,这尤为重要。

11. 避免过早优化

当你要去优化一个已经好用的功能代码时,你颇有可能会改坏它。优化只能发生在有性能分析报告指示须要优化的时候,一般是在一个项目开发的最后阶段。性能分析以前的优化活动纯属浪费时间,而且会致使bug出现。

好吧,我说是10个,但你却获得了额外赠送的一个!

这些就是我要说的,我但愿它们能帮助你改进编程开发过程。

相关文章
相关标签/搜索