团队应该一致同意采用一套简单的格式规则,可以运用将这些规则自动化的工具。
代码格式关乎沟通,而沟通是专业开发者的头等大事。
或许你认为“让代码能工作”才是专业开发者的第一优先级。你今天编写的功能,极有可能在下一版本中被修改,但代码的可读性却会对以后可能发生的修改行为产生深远影响。原始代码修改之后很久,其代码风格和可读性仍会影响到可维护性和扩展性。即便代码已不复存在,你的风格和律条仍存活下来。
向报纸学习
看看写得很好的报纸。从上到下阅读,在顶部,有头条,告诉你故事主题。然后第一段是大纲,接着细节渐次增加。
源代码应当一样,名称简单且一目了然。源文件最顶部应该给出高层次概念和算法。细节应该往下渐次展开,直到最底层的函数和细节。
报纸有许多篇文章,多数短小精悍。假若一份报纸只登一篇长篇故事,没人会去读它。
概念间垂直方向上的区隔
每一组代码行展示一条完整的思路,这些思路需要用空白行区隔开来。(国画中的留白!)
每一行都可以标识出新的独立概念,下面就是一个好个示例:
package fitnesse.wikitext.widgets;
import java.util.regex.*;
public class BoldWidget extends ParentWidget{
public static final String REGEXP = “’’’.+?’’’”;
private static final Pattern pattern = Pattern.compile(“’’’’(.+?)’’’”,
Pattern.MULTILINE + Pattern.DOTALL);
Public BoldWidget(…) throws Exception {
…
}
}
垂直方向上的靠近
正因为空白行隔开了概念,靠近的代码行则暗示了它们之间的紧密关系。这有助于对代码的理解。
垂直距离
关系密切的概念应该互相靠近。应避免迫使读者在源文件和类中跳来跳去。
变量声明尽可能靠近其使用位置。相关的函数也应遵循从上及下的思路来排列。
垂直顺序
被调用的函数应该放在执行调用的函数下面,建立一种自顶向下贯穿的良好信息流。
像读文章一样,最重要的概念先出来,最底层的细节最后出来。自最前面的几个函数获知要旨,而不至于迷失于细节中。
水平方向的区隔与靠近
空格字符可以把相关性较弱的事物分隔开。如:
int lineSize = line.length();
lineWidthHistogram.addLine(lineSize, lineCount);
缩进
程序员相当依赖缩进模式来看清楚自己在什么范围工作,这样可以快速跳过与当前关注的情形无关的范围。
团队规则
在团队中,规则由团队说了算。好的软件系统是由一系列读起来不错的代码文件组成的,它们需要一致和顺畅的风格。不同的风格,会增加代码阅读和维护的复杂度。
分享到:
相关推荐
《广东省太阳能光伏发电发展规划(2014-2020年)》摘录-太阳库.pdf
不是剽窃 只为积分 不是剽窃 只为积分 不是剽窃 只为积分 不是剽窃 只为积分
源码 博文链接:https://ghost-fly.iteye.com/blog/97204
《智慧城市--大数据、互联网时代的城市治理》 中央党校金江军、郭英楼合著,2018年第四版。 读书笔记
本文摘抄自三个大师的三部经典著作:编程之道、代码大全、人月神话。
《强化学习导论》摘录之强化学习与有监督学习、监督学习的区别; Reinforcement Learning: An Introduction; The differences between reinforcement learning and supervised learning, unsupervised learning.
数据结构高分笔记精彩摘录---关于树数据结构高分笔记精彩摘录---关于树
部分摘录自-WhyProbabilityandSt.pptx
webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录质
AR路由器配置内网通过公网IP访问内网服务器(域内NAT).docx Box 310&610连接TOUCH失败.png BOX310可以可管理加入SMC2.0吗.docx CloudVC 21.0解决方案介绍进阶课程.txt FAQ-SMC2.0和SMC2.0手动级联配置方法.pdf ...
摘录【3-6岁儿童学习和发展指南】(中班).doc
摘录之星的特点包括: 摘录,一步到位:按下一个热键(Ctrl+S,可重新定义)就自动完成内容的命名、保存、归并目录等诸多事项,并且自动记忆其它重要参考信息,如页面网址、摘录时间、应用程序名等。 摘录,一键通:...
文章摘录如下 -------------------------- 这是去年秋天利用工作至于空暇时间写的一篇关于CVS的文章,因为是word格式的文章,发布不方便,今日放上来,希望对所有想了解和学习CVS的朋友有所帮助。 文章以CVSNT+...
缠论中关于MACD的记录-摘录
资料-UL1598标准摘录.zip
关于-初夏唯美句子摘录.docx
好书推荐 ---- 《软技能-代码之外的生存指南》及摘录、思考-附件资源
自己边学VB.NET边摘录的一些技巧。本人不是学IT的,可能代码不是很通用。我主要用作工程计算,给大家分享一下!