`

10 个编写出更好代码的技巧

阅读更多

好代码可以定义为易读、易懂、易调试、易改,最重要的还要少缺陷。显然,要想敲出一手好代码,是要花不少时间,但这在长久来看是有意义的,因为你可以花更少时间及精力去维护和复用你的代码。 

事实上,我们可以将好代码等同于可复用的代码,这也是下面提到的重要原则之一。代码可能只是完成了编程工作中短期目标的特定功能,但如果没人(包括你自己)愿意复用你的代码,这代码在某种程度上可以说是不足且有缺陷的。要么太复杂、要么太具体、要么在不同情况下极有可能崩掉,或者其他程序员可能不相信你的代码。

下面无论你的经验水平如何,如果你始终如一地将下面的妙招应用到你的代码中(包括你的实验或者原型),那么一手好代码随手可得。 

1、 遵循单一责任原则 

函数在程序员的库中是单一最重要的抽象形式。可以被复用的机会越多,你要写的代码就越少,这些代码就越可靠。遵循单一责任原则的小小函数更有可能被重新使用。 

2、最小化共享状态 

应该将函数之间的隐式共享状态最小化,无论它是文件作用域变量还是对象的成员字段,这有利于显式地将所需的值作为参数。当明确函数实现所需结果时,代码变得容易理解和重用。 

对此可以得出一个结论,你应该优先选择静态无状态变量而不是对象的成员变量。 

3、本地化副作用 

理想的副作用(例如打印到控制台、记录、改变全局状态、文件系统操作等)应该放置在单独的模块中,而不是分散在整个代码中。功能上的副作用往往违反了单一的责任原则。 

4、优先选择不可变的对象 

如果一个对象的状态在其构造函数中设置一次,并且不再次更改,则调试变得容易得多,因为一旦构造正确就保持有效。这是降低软件项目复杂性的最简单方法之一。 

5、多用接口少用类 

接受接口的函数(或C++中的模板参数或概念)比在类上操作的函数可重用性更强。 

6、对模块应用良好的原则 

将软件项目分解成更小的模块(例如库和应用程序),以实现模块化重用。模块的一些关键原则是: 

  • 最小化依赖关系
  • 每个项目都应该有一个单一明确的功能
  • 不要重复

你应该努力让你的项目保持小巧和明确。 

7.避免继承 

在面向对象编程中,继承,特别是虚拟函数在可重用性方面往往是一个死穴。我很少能成功地使用能覆盖类的库。 

8.同设计和开发一样进行测试 

我并不是测试驱动开发的铁杆拥护者,但在你开始编写测试代码时,编写测试自然遵循了许多指导方针。它也有助于早点将错误暴露出来。避免编写无用的测试,良好的编码意味着更高级的测试(例如,单元测试中的集成测试或功能测试)在显示缺陷方面更有效。 

9.优先选择而不是手写标准库 

我无法告诉你需要多久才能看到一个 std :: vector 或 std :: string 更好的版本,但它几乎总是浪费时间和精力。除了一个显而易见的事实,那就是你正在把 bug 引入一个新的地方。(见技巧10)其他程序员不太可能重用您的代码,而不是那些被广泛理解、支持和测试的代码。 

10.避免写新代码 

最重要的一点是,每位程序员应遵循:“The best code is the code that isn’t written”(最好的代码是不用被复写的代码)。你的代码越多,缺陷就越多,找到并修复 bug 就越困难。 

在编写一行代码之前先问问自己,有没有一个工具,函数或库已经做了你所需要的功能?你真的需要自己去实现这个功能,而不是调用另一个已经存在的功能吗? 

总结 

编程就好比是一种艺术形式或者一项运动,你只有通过不断地练习,不断地向他人学习,才能不断地提高代码的质量,这些都将有利于你成为更加高效的程序员。

 

 

http://www.iteye.com/news/32627

分享到:
评论

相关推荐

    Html代码编写技巧

    本文将基于提供的部分知识点进行深入解析,帮助开发者更好地掌握HTML代码编写技巧。 #### 1. 控制页面滚动条显示 通过设置`<body>`标签中的样式属性,可以控制页面水平或垂直滚动条的显示。 - **去除垂直滚动条**:...

    Java编写的简单代码统计程序原代码

    标题中的“Java编写的简单代码统计程序原代码”表明这是一个使用Java编程语言开发的软件工具,其主要功能是统计代码量。这样的程序通常用于帮助开发者分析项目中的代码结构,了解不同模块的代码复杂性,或者在团队...

    微软四大名著之编程精粹:编写高质量C语言代码.doc.rar

    总的来说,《编程精粹:编写高质量C语言代码》作为微软四大名著之一,会深入剖析C语言的各个方面,提供实用的编程技巧和最佳实践,帮助读者构建坚实的C语言基础,从而编写出更高效、更稳定、更易于维护的代码。...

    如何编写可读性好的代码

    通过遵循以上准则,开发者可以养成编写可读性好代码的习惯,使得代码更易于理解、调试和维护,从而提升整个项目的质量和效率。在实际开发中,不断练习和改进这些技巧,将会对个人和团队的工作产生积极影响。

    如何编写整洁代码.pdf

    在《如何编写整洁代码》这一资料中,作者很可能会探讨编写整洁代码的方法论、实践技巧以及最佳实践。 ### 知识点二:代码注释的规范性 从提供的部分内容中可以看出,文档中包含了Java语言的示例代码。其中有一段...

    vb编写记事本,附带源代码,可跟着学习制作

    描述中提到的“附带源代码,可跟着学习制作”,意味着提供者分享了完整的源代码,学习者可以通过阅读和理解这些代码来学习VB编程技巧,尤其是如何创建一个简单的GUI(图形用户界面)应用程序。这种实践方式对于编程...

    编写高效代码手册

    ### 编写高效代码手册——C++代码优化指南 #### 引言 在软件开发过程中,编写高效且可维护的代码至关重要。对于嵌入式系统、高性能计算以及其他...希望本文提供的技巧能够帮助开发者在实践中更好地优化他们的C++代码。

    编写可读性代码的艺术.docx

    书中还探讨了简化循环和逻辑,以及如何在较高层次上重新组织代码,以实现更好的理解和维护。 本书分为四个部分:第一部分关注代码表面的改进,如命名和注释;第二部分讲解如何简化循环和逻辑;第三部分讨论如何在...

    如何编写高效代码

    尽管在接口编程中,使用泛型接口具有更好的灵活性和可扩展性,但在追求性能的场景下,具体类的使用更为高效。 4. **代码优化与重构**:定期对代码进行审查和重构,消除代码冗余,优化算法复杂度,是提升代码效率的...

    编写快速的MATLAB代码.rar_Matlab代码_编写快递的MATLAB代码

    在MATLAB编程中,效率是至关重要的,尤其是在处理大规模数据或执行复杂算法时。本资料“编写快速的...查阅“编写快速的MATLAB代码.pdf”文档,将深入探讨这些技巧并提供实际示例,帮助你更好地掌握和应用这些知识。

    编写优化、高效、无错地代码

    在编程领域,编写优化、高效、无错的代码是每个开发者必须掌握的核心技能。C语言作为一门基础且强大的系统级编程语言,对于理解和提升这些...通过深入学习和实践,你将能够更好地驾驭C语言,创造出更优秀的软件产品。

    嵌入式软件代码书写的十个技巧

    以下是一些关于编写更易维护嵌入式软件代码的十个技巧: 技巧1:避免使用汇编语言 虽然在低端的PIC微控制器上你可能没有选择,而在高端的ARM处理器上你可能不需要使用汇编语言,但是在两者之间存在大量的平台,它们...

    很有趣的javascript编写的代码

    通过学习和理解这些代码,我们可以更好地掌握JavaScript的核心概念,同时也能从中获得乐趣,激发对编程的热情。在研究这些代码的过程中,我们不仅能够提升自己的编程技能,还能了解到如何在代码中注入幽默和创意,...

    vc 编写小技巧

    在VC++(Visual C++)开发环境中,编写高效且易维护的代码是每个开发者追求的目标。以下是一些关于VC++编程的小技巧,可以帮助你提升开发效率和代码质量: 1. **利用MFC(Microsoft Foundation Classes)框架** ...

    提高代码可读性的10个注释技巧

    ### 提高代码可读性的10个注释技巧 #### 技巧1:逐层注释 逐层注释是指为代码的不同层级提供相应的注释。这种做法有助于增强代码的可读性和可维护性。例如: - **针对每个类**:应该包含类的功能概述、作者信息、...

    PHP精粹 编写高效PHP代码pdf

    《PHP精粹 编写高效PHP代码》这本书是PHP开发者的重要参考资料,旨在帮助读者提升PHP编程技巧,优化代码性能,从而编写出更高效、更可靠的PHP应用。在深入理解PHP语言特性和最佳实践的基础上,我们可以从以下几个...

    更好的代码:使用单元测试

    标题中的“更好的代码:使用单元测试”提示我们讨论的核心是单元测试在软件开发中的重要性和实践。单元测试是一种软件质量保证方法,它允许开发者对程序的各个独立组件(即单元)进行验证,确保它们按预期工作。这...

    编写高效的Android代码

    ### 编写高效的Android代码 在移动应用开发领域,特别是在Android平台上进行开发时,编写高效、性能优化的代码是至关重要的。...通过不断学习和实践,我们可以逐步提高自己的代码质量,为用户提供更好的体验。

    汇编编写com病毒的代码

    在IT领域,汇编语言是一种低级编程语言,它与计算机硬件紧密相关,允许程序员直接控制计算机的硬件...现代计算机系统已经发展出更复杂的安全机制来防止此类病毒,但了解其历史可以帮助我们更好地理解和对抗新的威胁。

Global site tag (gtag.js) - Google Analytics