- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
提高代码的可读性
程序员,请优先提高代码的可读性
现在,当有人提及“优化”一词时,他们通常是指“优化执行时间”,除非他们明确表明要优化GPU的内存消耗,网络流量等等。了解优化对象
当我开始编程时,所拥有的处理器执行速度很慢,内存空间也非常有限 —— 有时仅以KB衡量。因此,必须合理考虑内存的使用和优化。
在大学里,我们知道了优化的两个极端情况:
你可以牺牲空间来换取执行速度的提升,或者通过执行重复操作来换取内存消耗的优化。
如今,没有人会太在意内存的使用(除了demoseners,嵌入式系统工程师,部分手游开发者),不仅是对于RAM空间,硬盘空间也是。 试想一下仅安装看门狗就耗费硬盘近25Gb 空间。 此外,我在谷歌浏览器选项卡中写这篇文章时,占用了130Mb的RAM空间。
实际上需要优化的对象有很多:
随着智能手机市场的增长,电量损耗的优化备受关注;优化可读性可以让代码易于阅读和调试,从而缩短开发周期,降低开发成本;还有很多优化类型,此处不再赘述……
优化可读性——让代码更容易阅读、跟踪和理解。
你应该明白,你在优化时难以兼顾各个方面。 例如,当致力于性能优化时,你很可能让应用程序内存消耗增加,同时代码可读性也变差。为何优化可读性
开发者大量工作时间并不是在编写代码,而是阅读代码,调试代码,查阅他人提交的开发文档,学习新的库等。
当阅读代码时,开发者实际上是充当代码解释器的角色(虽比不上计算机)—— 在他们的头脑中执行代码,并试图记住当前执行状态。 这就是程序员在阅读代码过程中被打搅脾气暴躁的原因。
时间== 金钱
你应该意识到一件很最重要的事,是你和你的同事浪费了大量时间。 即使是一个努力工作的开发者,在做下面的事时仍然浪费了大量时间:
实现一些现在不需要,以后也可能永远用不到的功能。做一些没有实际价值的改进。 例如,花费一周时间优化一个函数的执行时间,而该函数在1小时内仅被调用10ms的时间。编写的代码难以调试,却还要试图从中找出错误。编写的代码他人难以理解。 注意,“他人”也可能是短短一周后的你。
上述情况是假设遇到问题的开发者经验丰富并且熟知高效算法和简洁代码如何书写,否则要列出的情况要更多。优化可读性
唐纳德·克努特说过一句名言。 我敢打赌你听过很多次。
“在编程中,过早优化是万恶之源。 ” —— D.Knuth,1974
我遇到很多知道这句话的人,但真正理解这句话的却很少。 最常见的错误理解像这样:
—为何这么简单的任务,代码却如此复杂?—我优化了X和Y,因为在将来……—难道你没听说过早的优化是万恶之源吗?—当然,但这并不是过早优化,我能肯定这样做程序执行效率会更高。
我想这是由于对过早优化这个词没有明确界定的原因。 这就是这些人一点也不认为他们那么做属于过早优化的原因。 那么,我们该如何界定这个词呢?
过早优化——在工作系统中分析和运行测试前的任何优化尝试。
除可读性之外任何修改都属于过早优化。 所以,与其说一个人不应该做什么,不如说应该做什么。 那么,这句引言可以这样理解:
优先提高可读性。什么阻碍了开发者阅读代码
好吧,我们一致认为,我们应该让代码更易于阅读,这样可以节约时间和金钱,对吧?但这究竟意味着什么?
有迹象表明,下面两个基本方面极大地降低了开发者阅读代码的速度:
代码晦涩难懂,代码难以跟踪。
代码艰涩难懂
遗憾的是,人们并不能像软件解释器那样,可以不必理会将两个数相加并调用一个函数这部分代码的功能(机械式的编译)。
为了查找代码异常的原因,程序员必须理解源程序中编写的代码实现了何种功能,编写的初衷是为了实现何种功能。什么让代码晦涩难懂?
下面情况是对于经验丰富的开发者而言,这些开发者熟悉代码开发使用的语言和程序中使用的算法(即他们有足够的知识来理解这段代码)。
代码不良。 单个字母的奇怪变量和1000行代码的冗长函数。代码的格式不正确或不一致。代码中包含冗余代码。代码中包含未备注的低层次优化。代码过于高明。
我将跳过前两条,因为无论如何你不应该阅读不良代码。 如果你所在的公司有人编写了不良代码,你应该纠正它们或者将其废弃。 当然,你必须为你的整个代码库执行严格的编程规范。3. 代码中包含冗余代码
亦或所谓的行数优化。 嵌套函数调用和条件运算符的长行代码难以剖析。 当然,你可能会说这种观点是片面的。 但这些人觉得源程序代码越短越好,不必考虑可读性。4. 未备注地层次优化
最初,代码的可读性很好,工作也很稳定,但有些人决定在某些方面对其进行优化。 经过认真剖析,这可能是一个很好的优化,但此时的代码看上去像是数组、位运算和幻数的结合体。 没有人知道代码在做什么,甚至代码应该做什么,因为完成优化的人没有提交任何说明。
也许你听说过优秀的代码不需要说明文档。 但是经过优化的代码(特别
您可能关注的文档
- 我国地下水资源在开发利用程度上各地极极不平衡.doc
- 我国的国家政体与国家结构形式的特点和影响因素.doc
- 我物理化学答案12.doc
- 我的公考经验.doc
- 戒烟的方法及戒烟短期和长期的好处.doc
- 战豆吧15种花式豆浆食谱.doc
- 截断钢筋处理方案.doc
- 房地产信贷论文房地产信贷风险防范个人信用金融监管次贷危机.doc
- 房地产百强企业_华侨城经营数据分析2013版(九舍会).doc
- 房地产竞争分析.doc
- springbooot+vue基于java的房屋维修系统毕业论文.doc
- 中国消防救援学院《单片机系统实验》2023-2024学年第一学期期末试卷.doc
- 2025年溧阳纺织化学品项目申请.pptx
- 景区门票包销合同模板(3篇).docx
- 【股票技术指标学习指南】第七章第三节货币需要量的测算.doc
- 2025春 _ 人教版七年级英语下册【unit4】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit5】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit6】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit7】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit8】看音标写单词.doc
文档评论(0)