这篇文章要介绍的,是我作为专业程序员这些年来学到的能真正提高我的代码质量和整体工作效率的11件事情。
1. 永远不要复制代码
不惜任何代价避免重复的代码。如果一个常用的代码片段出现在了程序中的几个不同地方,重构它,把它放到一个自己的函数里。重复的代码会导致你的同事 在读你的代码时产生困惑。而重复的代码如果在一个地方修改,在另外一个地方忘记修改,就会产生到处是bug,它还会使你的代码体积变得臃肿。现代的编程语 言提供了很好的方法来解决这些问题,例如,下面这个问题在以前很难解决,而如今使用lambdas却很好实现:
/// <summary>
/// 一些函数含有部分重复代码
/// </summary>
void OriginalA()
{
DoThingsA();
// unique code
DoThingsB();
}
/// <summary>
/// 另外一个含有部分重复代码的函数
/// </summary>
void OriginalB()
{
DoThingsA();
// 没有重复的代码
DoThingsB();
}
现在我们重构含有部分相同代码的函数,用delegate模式重写它们:
/// <summary>
/// Encapsulate shared functionality
/// </summary>
/// <param name="action">User defined action</param>
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出现。
分享到:
相关推荐
这堂“如何提高代码质量的培训课(2)”旨在深入探讨如何通过有效的方法和技术来提升代码质量,从而构建更加可靠、可维护和高效的软件系统。我们将从源码管理和工具应用两个核心方面进行详细阐述。 首先,源码管理...
【提高代码质量】是软件开发中的核心议题,无论是个人还是团队,都需要关注代码的质量,因为高质量的代码直接影响到项目的可持续发展、维护成本以及整体效率。本文将深入探讨提高代码质量的三大要素:可读性、可维护...
提高PHP代码质量的36计,是一份针对PHP开发者提升代码质量和编程效率的指南,尤其适合初学者和希望精进技能的中级开发者。本文将详细解读其中的几个关键点,帮助开发者理解并实践这些规范。 ### 1. 避免使用相对...
本文将总结如何提高代码的书写效率和练习方法。通过分析常见的编程错误和解决方法,我们可以总结出两大关键点:养成好的编程习惯和针对自己的工作提高自己的知识含量。 一、好的编程习惯 1. 写程序前打个草稿,...
文档《提高代码质量的三要素》、《如何提高代码质量.docx》和《如何提高代码质量-代码复查docx.docx》中提到,良好的代码质量体现在可读性、可维护性和可扩展性上。遵循编程规范,使用清晰的命名,避免过度复杂的...
总的来说,这款“源代码质量评审工具”提供了一种高效、全面的代码质量检查方案,适用于多语言环境,能够帮助开发团队提高代码质量和开发效率。通过自动化的评审和易于理解的报告,它可以成为任何开发流程中的有力...
SonarQube的使用不仅有助于提升代码质量,还能提高团队协作效率,减少后期维护成本。通过持续监控和改进,开发团队可以建立一套稳定的代码质量标准,确保软件产品的稳定性和可靠性。对于大型项目和企业来说,...
让开发自动化 用 Eclipse 插件提高代码质量1” 【描述】:本文探讨了如何利用Eclipse插件自动化代码质量检查,包括CheckStyle、PMD的CPD、Coverlipse、JDepend和Eclipse Metric插件,以提升开发效率和代码质量。 ...
实施严格的代码审查流程,确保每段代码都经过至少一位同行的检查,是提高代码质量不可或缺的步骤。 #### 4.2 持续集成与自动化测试 持续集成(CI)是一种软件开发实践,旨在频繁地将代码集成到主分支中,并自动进行...
通过深入理解和灵活运用GitHub提供的各项功能,开发者可以显著提高个人和团队的工作效率,同时确保代码的质量和项目的可持续发展。随着对GitHub工具链的不断熟悉和实践,将能够在软件开发领域取得更大的成就。
Sonar和Jenkins结合构建代码质量自动化分析平台是一种常见的DevOps实践,旨在提高软件开发的质量和效率。Sonar是一款强大的开源代码质量管理工具,它能够自动分析代码中的缺陷、漏洞和不良编码习惯,支持多种编程...
标题中的“5 个有用的插件来自动化代码质量”指的是在软件开发过程中,有五个能够帮助提高代码质量、实现自动化检查的工具或插件。这些工具通常集成在开发环境中,如Eclipse,可以帮助开发者遵循最佳实践,减少错误...
综上所述,提高代码质量是一项系统工程,涉及到多个层面,需要开发者具备扎实的技术基础,良好的编程习惯,以及对软件工程原则的理解和应用。通过不断学习和实践,我们可以编写出更高质量的代码,为软件项目奠定坚实...
标题:程序员如何提高效率 描述:本文探讨了程序员提高工作效率的方法,强调...同时,重视代码质量和复用性,将有助于长期的职业发展。总之,效率提升是一个综合性的过程,需要从多个维度出发,持之以恒地实践和优化。
总的来说,CheckStyle是提高代码质量的有效工具,它通过检查代码规范,帮助开发者养成良好的编程习惯,促进团队协作,同时减少潜在的错误,提升软件的整体质量。因此,对于任何Java项目来说,CheckStyle都是一个值得...
通过规范编码、错误处理、单元测试、集成测试、黑盒测试、白盒测试、基准测试和性能测试,可以显著提高代码的可靠性和效率,从而提高整个项目的工作质量和效率。因此,开发者应当重视并熟练掌握这些方法,以提升 ...
提高软件开发效率需要从多方面入手,包括提高项目成员工作技能、制定适当的研发流程和部门协作流程、总结经验反省过错、项目成果复用和标准化、使用成熟的系统开发平台和有效的项目管理工具等。 首先,提高项目成员...
7. **项目经济效益**:探讨通过提高代码质量和采用敏捷方法,如何减少后期维护成本,提升项目的整体经济价值。 这份文档对于想要提升Java开发质量和实践敏捷方法的开发者来说,应该具有很高的参考价值。通过学习...
在当今高度数字化的工作环境中,技术平台如GitHub正在探索如何更好地利用人工智能(AI)来增强团队协作并提高整体工作效率。本篇文章将根据给定文件的信息,深入探讨GitHub如何通过整合AI技术来促进更高效的团队合作...
代码评审是指同行之间相互审查代码的过程,有助于发现潜在的问题并提高代码质量。重构则是对现有代码进行优化,改善其结构而不改变功能。 1. **代码评审**: - 开展定期的代码评审会议,鼓励团队成员提出意见和...