美文网首页
代码精进之路_Note

代码精进之路_Note

作者: 诸葛渔夫 | 来源:发表于2021-04-09 23:38 被阅读0次

    《代码精进之路:从码农到工匠 》:

    链接:https://pan.baidu.com/s/1naOeBlMnc3axGT3piD7euw
    提取码:p4ak

    image-20201219123154450

    命名

    好的命名要考虑事物本质,沿袭认知习惯,遵循编程规范,并且能尽可能自我表达。

    代码即文档,好的代码能自我表达。

    变量名应该是名词,在其作用域内便于区分其含义。

    字面值应该定义成常量,提高可搜索性。

    函数命名是要体现业务语义上要做什么,而不是技术细节。

    类是数据和操作的封装,分为实体类和辅助类,实体类紧贴业务,辅助类辅助实体类实现业务,实体类命名体现业务含义,辅助类名称为对应实体加后缀名,后缀名表明其辅助范围,不能太笼统。

    包是对类的分组,名称分隔符间为一个单词。

    模块名体现架构层次。

    统一业务语言和技术语言,保持概念的表述词唯一,减少沟通障碍。

    自明的代码

    通过中间变量名称,将计算过程显性化表达出来。

    用设计模式通用命名表示设计意图。

    注释不要复述功能实现细节,要解释意图。

    规范

    编码规范

    编码风格一致,可以减少认知成本。

    空行可以分隔不同功能的代码。

    日志规范

    ERROR表示自己无法恢复的致命错误,要打印异常堆栈、上下文信息。

    WARN表示可预知的业务异常。

    INFO表示业务执行过程和状态。

    DEBUG表示调试信息,线上关闭。

    异常规范

    异常处理不统一的复杂性:

    • 把正常逻辑和异常混杂在一起,影响可读性。

    • 异常处理和错误码混乱

    设定业务异常和系统异常,均为unchecked exception。

    checked exception 破坏了开闭原则。

    业务代码只管抛出异常,用AOP 统一处理异常,打印日志,返回错误码。

    函数

    用函数将逻辑显性化表达出来。

    函数参数不要超过三个。

    函数要短小而职责单一。

    精简辅助代码,凸显业务码。

    组合函数模式:公有函数体现执行概要,实现细节放在私有函数里。组合函数内抽象层次必须在一个层次。

    设计原则

    SOLID:

    • 单一指责原则
    • 开闭原则
    • 里氏代换原则
    • 接口隔离原则
    • 依赖倒置原则

    instanceOf 和强制类型转换,破坏了里氏代换原则。

    避免子类覆盖父类方法,会破坏里氏代换原则。

    不要提前设计,某个功能代码,重复出现3次以内,直接复制,3次以上再进行抽象重构。

    真正的简单,不是不思考,而是先发散思维后收敛,自下而上的归纳,自上而下的设计,把握住问题的核心。

    模型

    模型是对现实世界中关注的方面进行简化和抽象。

    物理模型是对拥有体积和质量的物理形态的抽象。

    数学模型可以定量的描述事物间的关系。

    概念模型将现实世界中物体抽象为信息结构,与具体实现无关。

    思维模型解决问题的套路。

    思想

    抽象就是寻找事物的共性,共性越宽泛,包涵的事物越广泛,抽象层次就越高,反之抽象层次越低。

    分治:

    • 分治算法
      • 归并排序
      • 二分查找
    • 函数分解
    • 分治模式
      • 职责链模式
    • 分层设计
      • 架构分层
      • 网络分层
    • 横切纵切
      • 数据分库

    相关文章

      网友评论

          本文标题:代码精进之路_Note

          本文链接:https://www.haomeiwen.com/subject/amkgkltx.html