• 丁丁历险记
    2019-11-04
    笔记:
    个人理解,代码质量评判
    1 机器的运行效率 (往往还和可读性相冲突,但又非绝对冲突) , 有时候算法在没优化好的时候,时间空间是可以一起省下来的。
    2 代码可管理行数。 好的代码,层次分明,职能分明,让人感受到代码品味。
      
    2 最常用的评价标准。
        这块我一直没细分好,经常和同事开玩笑说“代码品味”(尊重大脑的特性,写出可便于维护的代码。程序 = 数据结构+算法 算法分control 相关和logic 相关。 合理的把control 相关与logic 相关进行分离就是非常好的套路 ,时间久了,看到违和感重的代码就很敏感了,主要是要求别把代码写死写散, 像dry 等基础原则都没遵守的,烂用全局变量的,创建对象没用框架的createObj 的,没支持依赖注入的,直接code review 时会指出 )
    如何才能写出高质量的代码?
        做中学。 我只说我自己,我在每完成一份工作后,都要拿出很大一部分时间来优化重构,自己改自己的代码。 【主要套路来源,代码整洁之道,重构-改善即有代码设计】 这算是我自律的一部分,我很珍惜工作中的开发实践。纯理论的东西学多了,人会飘飘乎乎的,需要实操来落地。
     
    展开
     5
     117
  • aof
    2019-11-04
    “思从深而行从简,真正的高手能云淡风轻地用最简单的方法解决最复杂的问题。” —— 这句话是写代码的精髓
     2
     67
  • 时光勿念
    2019-11-05
    好看的代码千篇一律,垃圾的代码花样百出
     5
     55
  • 深藏Blue
    2019-11-05
    我理解的好代码:
    1. 当你读我代码的时候,我已经不在了,但你依然能够清楚清晰的明白我要传递的信息
    2. 当程序出错时,一方面我汇报的错误信息能够帮你找出你的错误在哪; 另一方面,你能准确告诉我,我到底错哪了,而不是说:"xx接口报错了,你看下怎么回事"
    3. 当你需要造个轮子的时候,我的代码能够作为现成的轮毂,你只需要再配上其他的组装一下就行
    
     36
  • 小北
    2019-11-05
    除了小争哥提到的七个评价标准,我认为还有一个评价标准:易debug。在日常工作中,经常要追查各种线上case,代码是否易于debug,会非常影响工程师的追查效率。比如是否有打印详细的日志,是否有debug干涉点可以在debug模式下打印详细的线上请求信息便于快速定位问题。当然,这一点也可以放在可维护性中。
     3
     19
  • burning ‍微信超級...
    2019-11-04
    稳定性很重要 尤其在前后端分离开发时。说好了按约定的接口规则开发 可联调时各种出错 甚至接口崩溃报异常。前端成测试了
     5
     12
  • 郑童文
    2019-11-12
    个人感觉,有的时候为了提高代码的可扩展性和可复用性 就会抽象出好多的接口,类和方法。 然后代码的简洁性和可读性就降低了。不知道我这样的感觉对不对?请问老师如何看待这个问题?

    作者回复: 是的,扩展性和可读性有的时候是相冲突的,后面会讲到的。

     1
     8
  • 斐波那契
    2019-11-06
    在上一家公司提到一个标准 就是写的单元测试不能依赖于环境 不能在你的机子上能跑换到别的机子上就不能跑了 当时项目中跑测试的时候都是直接在内存中创建需要的表 然后把测试用到的数据插入进去然后在一条一条跑
     1
     7
  • 于留月
    2019-11-06
    你觉得还有哪些其他的代码评价标准非常重要?
    健壮性:程序应该具备较强的鲁棒性,极低地线上崩溃率,流畅的应用体验,高并发高承载能力,错误处理:日志上报或者现场恢复等等;
    安全性:涉及到支付、金融、社交私密信息、商业等领域的安全,及反编译反逆向;

    聊一聊你心目中的好代码是什么样子的?

    除了具备文中提到的7个标准,应该明晰代码的边界,适用场景等。
    展开
    
     7
  • Jackey
    2019-11-05
    大道至简,一次面试中,我写了半页纸的代码被面试官3行实现的事对我打击很大…
     6
     7
  • 小毅
    2019-11-06
    借用clean code中的标准,code review时WTF/min是最好的评判指标😏
    个人理解好代码最重要的标准就是可读性,相对于可扩展和灵活,由于很多项目一开始并不清楚后续迭代的方向,过早引入过多的设计,反而会让项目臃肿,可读性特别差,后续反而更不好维护~
    另外,对于一个team来说,我觉得好代码有一个非常重要的标准就是风格一致性,代码写的像一个人写的那这个team就是真的很厉害
     1
     6
  • 赌神很低调
    2019-11-04
    好代码就像一篇好文章,层次分明,用词贴切,简洁素雅,形象化抽象,脉络化复杂,而且有趣,吸引你通宵看完,然后合上书本,意犹未尽。
     1
     6
  • 汤小高
    2019-11-04
    老师,怎么感觉您说的可维护性和可拓展性是同一个东西,都是让未来修改某个功能,某个bug或者新增功能需求更简单?
    是不是维护性更针对于现有功能的维护修改,拓展性更针对与未来新增需求的修改?

    作者回复: 扩展主要是指添加功能,维护更广些,添加、修改...可读性和可扩展性都影响到代码的可维护性。除此之外,这些判定标准本身就有点重合,文章中也提到了。

    
     5
  • SweetyTang
    2019-11-04
    争哥,好的代码是不是也得考虑错误处理

    作者回复: 是的!

     2
     5
  • xiong
    2019-11-11
    所在的公司也很少有code review 的流程,所以有时候都无法评估自己写的代码是好还是坏。这种情况该如何去提高自己的code 水平呢?

    作者回复: 多去看看开源优秀的代码如何写的,我觉得比较有帮助。

     2
     4
  • 仙道
    2019-11-04
    我觉得最好是能把注释尽可能的写详细,最好能举几个例子。
    因为员工之间水平层次不齐,哪怕是再好的代码,在他眼里就是垃圾
    遇到爱扯皮的同事,真的很难受
     10
     4
  • 条
    2019-11-08
    写代码其实也可以像写故事一样,每个方法就当成一个情节来描述,方法不要太大,想表述的东西也要单一,当然要有个主线,就是主方法,让读代码的人一眼看下去就有了一个大概的了解,知道这段代码大致做了什么,这样阅读起来也会比较愉悦
    
     3
  • 岁月如歌
    2019-11-07
    我对好代码理解:
    1、具备统一的代码规范:类、方法、变量命名达意;代码核心逻辑注释清晰;(可以遵循《阿里巴巴 Java开发手册》)
    2、代码模块分层清晰:类似框架层面controller、service、handler、mapper各司其职。 而在单独的业务开发中也应该借鉴,如争哥说的高内聚、低耦合的特点。
    3、每个方法代码不易过长,复杂的业务逻辑应该拆分成多个职责单一对方法,进而降低难度,也即保证可读性和灵活性。
    4、详尽的wiki文档 和 业务主流程图。很多互联网公司最流行的就是“口口相传”,对刚接锅的兄弟简直是场灾难,只能一点点啃代码,极大降低工作效率。
    5、单元测试junit test。高质量代码必备,该点与第2、第3点是息息相关。个人觉得能写出好的junit test case 才能真正显示码代码功力。
    展开
    
     3
  • 编程界的小学生
    2019-11-05
    可扩展,可读性,健壮性
    我认为mybatis做的很到位,小巧简单,功能强大。健壮稳定可扩展。正是有了这么好的代码,才使得有很多框架可以无缝集成进来,比如spring-mybatis,再比如sharding-jdbc
    
     3
  • lijun
    2019-11-04
    Jdk源码和spring源码写的非常棒,可惜目前还看不懂。
     1
     3
我们在线,来聊聊吧