10

7月28日的日常学习记录

高质量代码三要素:可读性,可维护性,可变更性

可读性强:

  • 不要编写大段代码

  • 将段落封装成一个又一个函数

  • 在编写代码的工程中养成不断重构的习惯

  • 函数设计遵循的原则:职责驱动设计

  • 从上往下的编写:每个被分出去的程序,可以暂时只写一个空程序而不去具体实现功能,当主程序完成以后,再一个个实现它的所有子程序。

  • 当一个函数的代码行数达到15-20行,开始考虑是否需要重构代码。

  • 一个类不应当有太多的函数,函数过多要考虑分为多个类,一个包也不应该有太多的类

  • 释义名称:new/add , edit/mod , del , find/query

  • 释义名称:get开头的函数仅仅用于获取类属性

  • 注释:职责驱动设计,首先描述该类的职责

  • 注释:编写的是一个借口 or抽象类,在@author后添加@see,将该接口的抽象类的所有实现类列出来

可维护性:适应软件在部署和使用中的各种情况

  • 代码不能写死(路径为相对路径 or 通过属性文件修改 )

  • 预测可能发生的变化

  • 将某些条件设置为可配置的,需要必要的注释

可变更性:因需求变化而对代码进行修改

  • 提高代码的可复用性

  • 对模型进行分析,用例模型,领域模型,分析模型,正向工程,逆向工程

  • 利用设计模式提高可变更性:经典的32个模式

    • if...else : (重构一下,保证不修改原有代码,仅仅增加新的代码就能应付选项的增加):写成父类方法

    • 选项较多,并且增加选项的可能性很大的情况下可以使用工厂模式

    • 策略模式:解决继承出现的问题,减少类的继承,在类中增加某些方法的策略来代替继承,可以无限制的增加策略

    • 适配器模式:设计的系统要与其他系统/模块交互,可能调用接口或交换数据。我方的接口按照某个协议编写,保持固定不变,在于真正对方接口时,在前段设计一个适配器类,对方协议变更,可以更换适配器。(启发:类似于rank中的service层,传的参数也同样尽量不要限制,而是传递数组)(通过适配器接受数据or传输数据)

    • 模板模式:通常有一个抽象类,在抽象类中有一个主函数,按顺序调用其他函数(启发:类似于JdbController extends Controller),比较个性的步骤由其继承类完成。父类的主函数应当是final,其中的函数可以是可选步骤,称为【hood】,在编写时,抽象类中并不是抽象函数,而是一个空函数,继承类可以重载,也可以什么也不写,为空执行。

  • 职责驱动设计(RDD) & 领域驱动设计(DDD)

  • 根据职责分配行为和函数

  • 根据需求进行用例分析,根据用例绘制领域模型和分析模型

  • 《UML和模式应用》:RDD以职责为中心分配行为,软件对象与现实世界尽量保持一致(低表示差异)

  • 《领域驱动设计》:领域模型,需求分析阶段建立领域模型

代码质量评价:低耦合,高内聚(功能,元素除了职责任务,没有其他工作)

其他概念:

  • 高内聚低耦合

  • 领域模型

  • 工厂模式 based on 多态

  • 用例模型

参考:url-link


niecprea
871 声望54 粉丝

Hello world!