关于好的代码(Aspects to good code)

简介: 我常常思考是什么造就了好的代码 (good code).使用最新的语言特性、最佳的模式(best pattern)、最好的层次化设计(best layered design)、使用最少内存、亦或最佳的执行性能(performs the bes...

我常常思考是什么造就了好的代码 (good code).使用最新的语言特性、最佳的模式(best pattern)、最好的层次化设计(best layered design)、使用最少内存、亦或最佳的执行性能(performs the best)?很明显,这些项目都会在设计时考虑,但它们是首先要最主要的原因吗(the first things you think of)?或许并不是!


那什么呢?经过一段冥思苦想之后,我有了结论.显然代码或系统应当可裁剪(scalable),正确(correct ,no bugs),完整 (complete, 成功交付), 可扩展(extendable, 可以用系统地增长),并且有好的文档化(well documented),但最终它需要存在很长一段时间,并且会有不同人为它工作,就像击鼓传化(drum roll). 所以它需要便于维护(be easy to maintain),当然需要高质量的代码(good quality,比如有单元测试).



                         (大图)

什么是好的代码?(What is good code then)

我觉得好的代码就是让"所有人(everyone)"都理解.它要易于修改,增加和重构.需要尽可能的简单(而不只是相对简单) (be as simple as possible (but no simpler)),还要尽量减少与其它系统间的耦合(as loosely coupled to other systems).


为什么要写好代码(Why should we write good code?)

基本上项目中的写代码的人也会有周期性的变化.人员离职,出车祸,迁走他乡,坐牢了等等(反正没好事),一旦发生了,其他人就要顶上来维护代码.绝大多的维护人员要么想完全重写代码,要么就惧怕动到任何东西(最好什么都别动),因为系统确实太复杂了.这两种情况都不是什么好事.理想情况下(ideally),如果所有项目都像"Ubuntu"那样充满激情(spirit) (比如为了支持者无私的进行编码),即便在很长的时期内,事情会运转得很好


并且,如果我们一开始就正确地保证质量(比如运用TDDunit test), 它就会让人们易于修改代码,因为他们可以有通过一系统的测试树立信心 (前提是测试能抓到一些没考虑到的副作用(side effect)).

   

                                       (大图)

后来我们为一些公司做了代码审计(code audits).纳入了关于软件开发的许多不同 的角度.如下表:

  Architecture and design (架构与设计)

    • Scalability (可裁剪性)

    • Integration points and methods (整合点和方法)

    • Flexibility (系统弹性)

    • Performance and monitoring (性能和监控)

    • Database layout and schema (数据库规划)

   Code quality (代码质量)

    • Follows coding style (遵循一定的代码风格)

    • Commented and “JavaDoc”ed (注释及代码归档工具)

    • Simple as possible design

    • Patterns implemented (实现模式)

   Documentation (文档)

    • Architecture documentation (UML, Context diagram,etc.)

    • Specification of some sort

    • Technical specification

    • Non-functional requirements (load, performance,etc..) (非功能性需求)

   Testing (测试)

    • Unit tests

    • Load tests (负载测试)

    • Performance testing and monitoring

   Change control processes (变更管理)

    • Source control implemented (源代码管控)

    • Processes around change management (变更管理流程)

    • Continuous build environment (持续编译环境)

    • Issue management process 


原文地址: http://www.stevevandermerwe.net/blog/?p=83

转载请注明出处:http://blog.csdn.net/horkychen

目录
相关文章
|
存储 编解码 监控
G-Code 详解
玩过一段时间3D打印机的朋友,都会接触到G-code文件。所谓G-code文件, 指的是3D模型在进入3D打印机实际打印之前,必须要经过切片器处理而成的一种中间格式文件。
4536 0
|
1月前
|
监控
常用T-code使用总结
常用T-code使用总结
12 1
|
Linux C++ iOS开发
VS Code 使用
作为一款开箱即用的产物,尽量不做过多额外配置。
177 0
VS Code 使用
|
Ubuntu 安全 IDE
被VS Code牢牢圈粉了!
一款得心应手的IDE,能够让开发者效率和幸福感得到极大的提升。 而VS Code这两年迅速的发展,使它俘获一大批忠实的用户。 本文,将从扩展、主题、图标等全面的介绍如何配置一款让人爽到起飞的VS Code。
被VS Code牢牢圈粉了!
|
前端开发 JavaScript IDE
VS Code 真的会一统江湖吗?
在选择用哪种工具时,我们最看重之一的那就是软件寿命 。学习软件是一项投资,如果以后不得不切换到其他应用程序,那你的投资可能就损失了一部分。
VS Code 真的会一统江湖吗?
|
JSON Java 程序员
code S: code style & code standard
关于代码风格与代码规范的二三事
202 0
how to get line number of given ABAP source code
how to get line number of given ABAP source code
103 0
how to get line number of given ABAP source code
使用代码判断某个note是否已经implemented
使用代码判断某个note是否已经implemented
102 0
使用代码判断某个note是否已经implemented

热门文章

最新文章