欢迎来到天天文库
浏览记录
ID:21850477
大小:25.50 KB
页数:5页
时间:2018-10-25
《编写简练代码是程序员职业修养之本》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、编写简练代码是程序员的职业修养之本我曾经接受过一个关于优秀代码标准的电话采访。当时,我脑海中闪过的第一个念头就是:可维护性。如果代码难以被其他开发人员理解,维护或是扩展,都不能称其为优秀的代码。然后,我想到另外一些标准:高效,优雅(简练,适当运用语言结构,环境适用性),模块化,适当的面向对象设计,等等。 当然,能够在没发生错误和没有安全漏洞等问题的情况下运行代码,这是优秀代码理所当然拥有的特质。 在《CodeComplete》一书中,作者SteveMcConnel在代码的可维护性上充分地支持了我的观点: 这本书所要做的另外一件事情就是,强调代码的易读性。而在独立编写代码的
2、背后,其实隐藏着能与其他开发者顺利沟通的深层次目标。 计算机可不管你的代码是否好懂,虽然它看起来是能读懂你的程序,事实上计算机是在二进制环境下运行程序的。而编写可读性强的语言,则有利于其他开发者读懂你的程序。所以下这些对代码的可读性有着积极的影响: 1、易于理解性 2、复查性 3、错误率 4、Debug 5、可修改性 6、开发时间-上述因素的总和 7、扩展质量-上述因素的总和 编写可读性强的代码,事实上也不会花费更多的时间,至少在开发的最后阶段是这样的。可读性强的代码能让你更容易看懂自己写了些什么,这也是为什么要如此做的重要原因。而且,我们在查看代码时往往会顺
3、便检查代码,这样也有利于纠正错误。可读性强的代码在阅读时会被修正,也更容易使别人把你的代码应用到类似的程序中。 …… 编写可读性强的代码是开发过程中的不二选择。倾向花费大量时间写代码,却忽视阅读上的便利性,本身是一种错误的体制。开发人员应该尽力编写优秀的代码,因为这是一劳永逸这事,也不必因为糟糕的代码而花费更多精力。 另外,来自MSDNENDBRACKET栏目的作者PaulDiLascia,也列出了优秀代码应有的物质: 不管你用什么语言进行开发,所有的优秀代码都会展示出共有的经典品质:简练,易于理解,模块化,层次性,设计良好,高效,优雅,并且清晰。 简练。这意味着能用
4、五行代码解决的问题,绝不用十行代码。这也意味着,必须花费更多的精力来保证代码的简练,而不是生产令人费解的代码;这还意味着,你所厌恶的事情,是连篇累牍的开放性代码和函数。简练——即结构好,可执行,设计优秀——可以让你的代码更易于理解,也减少了错误的发生。 可读性强。正如其字,这说明你的代码应该更能让其他人看懂。要做到可读性强,就得多写注释,符合大众习惯,不要自作聪明地命名变量,比如说,用taxrate代替rt。 模块化。这意味,你得像宇宙的构成一样来开发程序。世界是由分子构成的,而这些分子又同原子,电子,核子,夸克,和连线(如果你相信的话)组成。类似的,优秀的程序也是由小模块
5、建立成大的系统,而这些小模块又由更小的部分来组成。你完全可以只使用移动,插入和删除三个简单的应用,来编写一个文本编辑器。就像原子的构成方式一样,软件的组件也应该具有复用性。 层次性。程序得像蛋糕内部一样层次分明。应用运行在框架之上,框架运行在系统之上,而系统又运行在硬件之上。就算是应用程序的内部,也应该有层次。高级层访问低级层,而且事件正好相反(向下访问,向上返回),低级层不应该知道高级层在干些什么。事件/反馈的基本特性,就是向上发出无指向性通知。如果你的文档直接访问了框架,那可就有危险了。模块和层次由API来定义,这样就限定了各自的运行范围。因此,设计就变得由为重要了。
6、设计良好。在开发程序之前,要先花些时间来设计你的程序,因为思考的代价要小于调试。优秀的开发准则就是,花一半时间来设计。你得写一份功能说明(这个程序是用来干嘛的)和一个深层蓝图,而API的功能也应该整理成文。 高效。程序不但要运行快,而且要节省资源,它不能牵扯到文档,数据连接等等。程序只做它该做的事,不能胡乱地装载和撤销线程。在运行层上,你可以在测试之后才优化程序;但是在高级层,你必须先计划好执行过程。如果设计中要求服务器有大批量的延迟,最好用一个DOG(DataOutputGate,数据输出门)。 优雅。和漂亮是一个概念,它难以描述却显而易见。优雅综合了简练,高效和简明等概
7、念,同时还能让人感受到高贵的气质。举个例子,优雅就是使用表格,或者是用递归来编写程序: { returnn==0?1:n*factorial(n-1); } 清晰。清晰是优秀代码的基本,也是其他要素的品质保证。相对于普通机械,计算机建立更为复杂的系统的能力要强得多。对于编程来说,最基础的挑战就是减少复杂度。简单、可读性强、模块化、层次、设计良好、高效、优雅,都是久经考验达成简练代码的方法,这些可以有效地减少代码的复杂度。 清晰的代码,良好的设计,明确的目标,你必须真正地了解到自己在
此文档下载收益归作者所有