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

我常常思考是什么造就了好的代码 (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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值