认识到代码必须易读

  最近遇到一个事情让我大为不解。一个" style="line-height: 1.6;">程序员自豪的宣称他完全看不懂自己一周前写的任何代码。我真的想探明他的这种自豪感从何而来,但无解。他是在骄傲每天写如此多的代码吗?有人会愿意聘请这样的人去写程序吗?

  首先让我明确的阐明我对此事的观点:不能理解一周前或一年前自己写的代码,这对一个职业程序员来说是不可饶恕的。

  我就把话放这。现在,让我详细的说一下。我已经兢兢业业的编程编了15年。很早我就接受了一些编程习惯,至今没有改变。我能轻松的看懂我一年前写的代码,甚至2年前,12年前。各种语言的代码,在各种业务领域里。算法,解析器,web应用,嵌入式控制器,脚本,链接,所有你能想到的。即使有些很早的代码,理解起来有些困难,但我仍然能从中看出一些模式的影子。

  我能做到这些,主要的方法是认识到代码必须易读。自己易读,别人也易读。代码如果不可读,那就会跟不可用的代码一样糟,甚至更糟。如果一段时间后你看不懂你自己写的代码,别人就更不可能看懂了,没有这种可能。不会有任何一个软件产品会因为你而值得骄傲。

  我无法用更大的声音强调,让自己的代码易读、易理解是何等的重要。不仅仅是它能让你的软件产品更好,更容易被别人维护,同时,这些代码也将成为你自己的私人工具箱,你将会在今后的职业生涯里使用、反复的使用它们。拥有这样一个工具箱,你将变得超级的强大,这将是你区别于其他编程高手的重要特征之一。我己经记不清有多少次,当面对一些似曾相识的问题时,我通过回忆,在我的历史代码库里搜寻,轻松快速的就能找到或整编出问题的解决方案。很显然,你不能理解的代码是进入不了这样的工具箱里的。

  这样结束这篇文章似乎有点玩世不恭,我应该解释一下是如何练就这样的功力的。坦率地说,这很难用文字描述,但我尽力。

  我非常确信,我的这种方法也被作家们(以及任何从事创新性职业的人)使用。一旦你写完一段代码(越小越好),你需要停下来,看看它是否易读、易懂。读它,反复的读它数次。跳出你对这个问题熟知的环境,想象那些完全不知道上下文情况的人在读这段代码。这样的一个人能读懂吗?如果不能,是因为什么?从你的由《代码大全》等好书丰富而成的“代码可读性”百宝箱里找出所有可以的技巧,应用它们,直到你确信这段代码变得易读为止。

  一旦你满意了,再读一遍。几天后再读一遍。这让我想起了我写一些高深技术的文章时,每一个句子,我都要读上20遍,重写5次。我写代码也经常是如此。完美可以因天赋而成,也可通过无情的重复和实验实现。因为我不具有前者,我就一直坚持着后者。

  最后,重构,无畏的改进。如果你遇到一段可以更清晰的代码,那就让它更清晰。改进代码质量是我们这种职业中一种难以把握的附加任务,但当你遇到一个持续一、两年,涉及多人的大型项目后,你自然就会领悟其重要。

时间: 2024-09-21 19:23:25

认识到代码必须易读的相关文章

猎豹浏览器教你一键将博客和文章变得简洁易读

  观看博客和文章时广告多?排版乱怎么办?小豹教你只需单击一下鼠标,就能一键将博客和文章变得简洁易读. 1.打开猎豹浏览器点击左上角头像→猎豹应用市场(http://store.liebao.cn/) 2.搜索"悦读" 3.点击"印象笔记·悦读"应用安装 4.打开所需要一键转换的博客or文章 5.点击"印象笔记·悦读"图标将一键将博客和文章变得简洁易读

求推荐,不用写代码,易操作的UI自动化测试工具

问题描述 求推荐,不用写代码,易操作的UI自动化测试工具 求推荐,不用写代码的,不用搭建框架,易操作,维护成本较低的UI自动化测试工具,除了qtp ,selenium.非常感谢! 解决方案 开发者眼中最好的 22 款 GUI 测试工具 http://www.oschina.net/news/52531/22-gui-testing-tools

编写易读的代码

成功的开发团队要求队伍中的每一位成员遵守代码重用规则,这些规定把代码的重用性推到极至同时却不会显著降低开发人员的创造力和开发效率.如果编写和使用代码的开发人员遵守共同的程序命名规范代码和代码注释要求,那么代码的重用性就会得以大大提升.这些标准的起点是系统结构级的.你的功能规范应该在类.属性的名字.函数返回值以及其他关键程序元素的定义中反映这些标准.本文将就基本的命名规则和注释提出一些可行的建议,意图帮助读者开发自己的代码重用标准. 大小写标准 在我们开始讨论各类程序要素命名的正确方式之前,先让我

PHP如何编写易读的代码_php技巧

成功的开发团队要求队伍中的每一位成员遵守代码重用规则,这些规定把代码的重用性推到极至同时却不会显著降低开发人员的创造力和开发效率.如果编写和使用代码的开发人员遵守共同的程序命名规范代码和代码注释要求,那么代码的重用性就会得以大大提升.这些标准的起点是系统结构级的.你的功能规范应该在类.属性的名字.函数返回值以及其他关键程序元素的定义中反映这些标准.本文将就基本的命名规则和注释提出一些可行的建议,意图帮助读者开发自己的代码重用标准.  大小写标准 在我们开始讨论各类程序要素命名的正确方式之前,先让

如何写一份全面易读的交互说明文档?

  交互说明文档,是交互设计师 的输出物中必不可少的一项,它关系着设计方案能否最大程度的被实现.交互新人,大多会烦恼如何写交互文档,今天来聊聊这个话题. 交互文档,写给谁看 交互文档可以看做交互设计师 输出的"产品",它面向的"用户"是下游的同事--视觉设计师.测试工程师.开发工程师.他们会根据文档中的线框图.交互细节说明等等,来输出视觉设计稿.写测试用例.用代码实现产品设计方案,并以此为依据完成验收测试等工作. 交互文档,写什么内容 最初写交互文档时,很多人会有疑

如何设计实用易读的图表

  数据可视化时代不会图表设计就落伍咯!今天阿里的刘颖同学来个简单高效的教程,分两步走,先教你精准表达图表数据,再帮你提高图表的易读性,内含大量实战案例,干货满满! 一.图表的目的和价值 图表设计是数据可视化的一个分支领域,是对数据进行二次加工,用统计图表的方式进行呈现.数据是事实或观察的结果,是对客观事物的逻辑归纳,通常一个具体的数字比一个模糊的说法更加具有可信度和说服力.但单纯的数字本身并不能提供足够的影响力,假设一个淘宝女装卖家3月份的成交金额是50万,这个数据本身并不能说明什么问题,但是

C# 2.0:使用匿名方法、迭代程序和局部类来创建优雅的代码

程序|创建 本文基于 Microsoft Visual Studio 2005 的预发布版本,它以前的代码名称为"Whidbey".此处所包含的任何信息都可能会改变. 本文讨论: • 遍历集合 • 跨文件类定义 • 与委托一起使用的匿名方法 • Visual Studio 2005 中的其他 C# 新功能 本文使用下列技术: • C# 和 Visual Studio 可以在此下载代码: • C20.exe (164KB) 本页内容 迭代程序 迭代程序实现 递归迭代 局部类型 匿名方法

SSMS中使用自动换行功能读取T-SQL代码

当创建具有冗长T-SQL代码的T-SQL脚本时,你只能从两种方法中选择一种:要么使用水平滚动条,要么在不同点上创建换行符,这样才能在不使用滚动条的情况下使代码行易读.利用滚动条或者必须加入换行符需要花费时间而不能专注于编码.如果有自动换行或者类似的选项那就太好了.在SQL Server Management Studio中有哪些方法可以用来处理自动换行呢? 正如SSMS中许多新的功能一样,微软也解决了自动换行问题.你可以很容易地在SSMS查询窗口中启用这个功能,只要你按照下面的步骤就可以启动.

没有对比就没有伤害,优秀的代码VS糟糕的代码

可持续开发不仅在于项目架构设计,还与代码质量密切相关,代码的整洁度和质量成正比.-- Robert C. Martin, "Clean Code" 如果你还没有发现代码质量的区别,如果你从未见过优秀的代码,或者从未见过糟糕的代码,那么本文将以直观地对比,告诉你代码质量究竟会有多大的区别. [ 代码量 ] 我们知道代码量显示着功能的复杂程度,例如Windows XP的代码量超过2000万行,Linux内核有1500万行(2012年).然而代码量和功能数量之间并非线性关系. 优秀的设计中,