• 好代码的伪科学定义


    郝萌主倾心贡献。尊重作者的劳动成果,请勿转载。

    假设文章对您有所帮助,欢迎给作者捐赠。支持郝萌主,捐赠数额任意,重在心意^_^ 

    我要捐赠: 点击捐赠

    Cocos2d-X源代码下载:点我传送

    游戏官方下载:http://dwz.cn/RwTjl

    游戏视频预览:http://dwz.cn/RzHHd

    游戏开发博客:http://dwz.cn/RzJzI

    游戏源代码传送:http://dwz.cn/Nret1

    你怎样定义好的代码?本文通过咨询65个开发者同一个问题从而得出了一个伪科学的答案。

    首先我们相信写好代码是非常重要的。为什么呢?首先,好代码比差代码更有趣,成本更低。其次,代码好,就意味着你正在构建的产品有可能会更好。第三。也是非常关键的一点,写出好的代码是我们的职责:毕竟,我们的工作就是写代码。

    Good code measure is wtf/minute by osnews

    方法

    由于此65名开发者都是我们某个职位的应聘者,所以这意味着这些样品开发者大多偏向于使用Java或Scala技能,而且通常有着5年及以上的工作经验。

    问题统一:“怎样写好代码?你怎样定义好代码?”而且在面试时由同一人(面对面或通过电话),历时约1年。从2014年1月至2015年1月,来运行此地调查。

    梳理这些问题的答案之后。可以分为31个不同的类,每组至少有2个类似的答案。

    比如。以下这些答案通通归纳为可读一类:
    可读。

    • 人脑可阅读。

    • 能自我解释。
    • 人们能读懂。
    • 非常easy理解。
    • 不用5分钟就能了解。
    • 没有文档。你也可以阅读并理解。
    • 可读,新来的开发者也可以理解。
    • 就如同文本一样可读。
    • 易于阅读,直线化的思维。

    结果

    这65位开发者的答案总共统计出288条不同的内容。平均一个人4.43条。

    当然,眼下最常见的答案是,代码必须可读(78.46%),差点儿10分之8的开发者觉得,好的代码应该易于阅读和理解。

    然后是可測试的/測试过的(29.23%),这说明好的代码应当是经过自己主动化測试的(或至少是有可能运行測试的)。25%的受訪者觉得,良好的代码还应该是简单的——只是于复杂,当然还应该是可以工作的,意味其可以依照我们的意愿正常运行功能。前五条是,代码应该是可维护的(21.54%)。

    奇怪的是,我们发现有两项内容是关于同一主题的:文档和代码凝视。

    有的开发者觉得代码应该自文档化(不须要用文档解释)。而有些开发者则表示应该在代码中着重于注解,说明代码目的。

    其它的,如,可扩展的/可反复使用的,恰当的命名规律,代码解耦或者称为小方法的重要性——当然这个“小”在不同开发者的眼中概念还不一样:“10-15行”到“<50行”莫衷一是。

    Characteristics of good code

    探讨

    面试中的回答给了我们非常多有趣的可用于分析的定量数据,而有些数据非常值得一提。

    以下这些是我们点赞量最多的答案,有的让我们会心一笑,有的有理有据值得深思:

    • 再怎么測试也不会发生崩溃。

    • 不要创建那些并不须要的玩意儿。
    • 不论什么人都须要写点凝视。好不好以后自然会知道。
    • 你看到它。它才有意义。
    • 你须要了解业务目的。
    • 你须要做的不只是写代码。
    • 不须要太过于特立独行。

    • 差的代码也能做非常多事情。但就是通通做不好。

    开发者重视代码的可读性和可理解性并不奇怪。

    可是令人有一点点吃惊的是,其余的回答却差点儿相同至少有50%的差异。

    How to write good code by xkcd

    以下这四条就属于让人吃惊的后者:

    • 可维护:由于我们大多数人都有过维护别人代码的经历(或者一段时间以后维护自己的代码),而且非常有可能度过了一段非常悲慘的日子。所以,我们期待很多其它的开发者可以编写出可维护的代码。可能有的人假设代码可读,那么一定易于维护。所以就忽略了这一条。
    • 可工作:编写代码的目的。就是可以为他人提供价值。

      编写可工作的代码,是我们的首要任务之中的一个。所以我们非常吃惊为什么并非每个开发者的答案中都囊括这一条。

    • 可測试/已測试过的:測试的重要性在这里我就不多说了,相信大家已经听到过不知道几百遍了。
    • 高效:话说,答案中包括“高效”的开发者比强调“不可过早优化”的开发者。要多两倍。而众所周知,“过早的优化是万恶之源”,所以,这太让人纳闷了。

    最后,我们总结出好代码的定义:

    “好的代码是可读的,可理解的,覆盖了自己主动化測试的。只是于复杂,而且能办好我们须要它做的事情。”

    听起来就相当美,right?

    郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。

    假设文章对您有所帮助。欢迎给作者捐赠。支持郝萌主。捐赠数额任意,重在心意^_^ 

    我要捐赠: 点击捐赠

    Cocos2d-X源代码下载:点我传送

    游戏官方下载:http://dwz.cn/RwTjl

    游戏视频预览:http://dwz.cn/RzHHd

    游戏开发博客:http://dwz.cn/RzJzI

    游戏源代码传送:http://dwz.cn/Nret1

  • 相关阅读:
    Feign调用文件上传服务接口样例
    Feign调用文件下载服务接口样例
    使用Spring Security的Basic Auth认证后Postman的POST请求不成功的可能原因
    Spring Boot应用的Controller返回的集合类数据是XML格式的可能原因
    Eureka Server增加Spring Security后的服务端和客户端配置
    Spring Data支持的关键字
    JPA(Hibernate)代理类的hibernateLazyInitializer属性系列化异常
    Spring Boot中fastjson的@JSONField(format = "yyyy-MM-dd HH:mm:ss")失效可能原因
    使用Java代码配置MyBatis Generator
    CentOS8.1中搭建Nexus3服务器
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7258211.html
Copyright © 2020-2023  润新知