提高代码的可读性.docx

提高代码的可读性.docx

ID:57705447

大小:39.69 KB

页数:9页

时间:2020-09-01

提高代码的可读性.docx_第1页
提高代码的可读性.docx_第2页
提高代码的可读性.docx_第3页
提高代码的可读性.docx_第4页
提高代码的可读性.docx_第5页
资源描述:

《提高代码的可读性.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、程序员,请优先提高代码的可读性现在,当有人提及“优化”一词时,他们通常是指“优化执行时间”,除非他们明确表明要优化GPU的内存消耗,网络流量等等。了解优化对象当我开始编程时,所拥有的处理器执行速度很慢,内存空间也非常有限——有时仅以KB衡量。因此,必须合理考虑内存的使用和优化。在大学里,我们知道了优化的两个极端情况:你可以牺牲空间来换取执行速度的提升,或者通过执行重复操作来换取内存消耗的优化。如今,没有人会太在意内存的使用(除了demoseners,嵌入式系统工程师,部分手游开发者),不仅是对于RAM空间,硬盘空间也是。试想一

2、下仅安装看门狗就耗费硬盘近25Gb空间。此外,我在谷歌浏览器选项卡中写这篇文章时,占用了130Mb的RAM空间。实际上需要优化的对象有很多:随着智能手机市场的增长,电量损耗的优化备受关注;优化可读性可以让代码易于阅读和调试,从而缩短开发周期,降低开发成本;还有很多优化类型,此处不再赘述……优化可读性——让代码更容易阅读、跟踪和理解。你应该明白,你在优化时难以兼顾各个方面。例如,当致力于性能优化时,你很可能让应用程序内存消耗增加,同时代码可读性也变差。为何优化可读性开发者大量工作时间并不是在编写代码,而是阅读代码,调试代码,查阅

3、他人提交的开发文档,学习新的库等。当阅读代码时,开发者实际上是充当代码解释器的角色(虽比不上计算机)——在他们的头脑中执行代码,并试图记住当前执行状态。这就是程序员在阅读代码过程中被打搅脾气暴躁的原因。时间==金钱你应该意识到一件很最重要的事,是你和你的同事浪费了大量时间。即使是一个努力工作的开发者,在做下面的事时仍然浪费了大量时间:实现一些现在不需要,以后也可能永远用不到的功能。做一些没有实际价值的改进。例如,花费一周时间优化一个函数的执行时间,而该函数在1小时内仅被调用10ms的时间。编写的代码难以调试,却还要试图从中找出

4、错误。编写的代码他人难以理解。注意,“他人”也可能是短短一周后的你。上述情况是假设遇到问题的开发者经验丰富并且熟知高效算法和简洁代码如何书写,否则要列出的情况要更多。优化可读性唐纳德·克努特说过一句名言。我敢打赌你听过很多次。“在编程中,过早优化是万恶之源。”——D.Knuth,1974我遇到很多知道这句话的人,但真正理解这句话的却很少。最常见的错误理解像这样:—为何这么简单的任务,代码却如此复杂?—我优化了X和Y,因为在将来……—难道你没听说过早的优化是万恶之源吗?—当然,但这并不是过早优化,我能肯定这样做程序执行效率会更高

5、。我想这是由于对过早优化这个词没有明确界定的原因。这就是这些人一点也不认为他们那么做属于过早优化的原因。那么,我们该如何界定这个词呢?过早优化——在工作系统中分析和运行测试前的任何优化尝试。除可读性之外任何修改都属于过早优化。所以,与其说一个人不应该做什么,不如说应该做什么。那么,这句引言可以这样理解:优先提高可读性。什么阻碍了开发者阅读代码好吧,我们一致认为,我们应该让代码更易于阅读,这样可以节约时间和金钱,对吧?但这究竟意味着什么?有迹象表明,下面两个基本方面极大地降低了开发者阅读代码的速度:代码晦涩难懂,代码难以跟踪。代

6、码艰涩难懂遗憾的是,人们并不能像软件解释器那样,可以不必理会将两个数相加并调用一个函数这部分代码的功能(机械式的编译)。为了查找代码异常的原因,程序员必须理解源程序中编写的代码实现了何种功能,编写的初衷是为了实现何种功能。什么让代码晦涩难懂?下面情况是对于经验丰富的开发者而言,这些开发者熟悉代码开发使用的语言和程序中使用的算法(即他们有足够的知识来理解这段代码)。代码不良。单个字母的奇怪变量和1000行代码的冗长函数。代码的格式不正确或不一致。代码中包含冗余代码。代码中包含未备注的低层次优化。代码过于高明。我将跳过前两条,因为

7、无论如何你不应该阅读不良代码。如果你所在的公司有人编写了不良代码,你应该纠正它们或者将其废弃。当然,你必须为你的整个代码库执行严格的编程规范。3.代码中包含冗余代码亦或所谓的行数优化。嵌套函数调用和条件运算符的长行代码难以剖析。当然,你可能会说这种观点是片面的。但这些人觉得源程序代码越短越好,不必考虑可读性。4.未备注地层次优化最初,代码的可读性很好,工作也很稳定,但有些人决定在某些方面对其进行优化。经过认真剖析,这可能是一个很好的优化,但此时的代码看上去像是数组、位运算和幻数的结合体。没有人知道代码在做什么,甚至代码应该做什

8、么,因为完成优化的人没有提交任何说明。也许你听说过优秀的代码不需要说明文档。但是经过优化的代码(特别是优化效果很理想的情况)必须要有说明文档。在你的代码库中,可能大部分的优化只是像这样的未备注行:1if(val!=val){...}5.代码过于高明作为软件开发者,我们掌握越来

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。