高质量代码方法论

    在评价代码质量时,通常会有很多术语,从笼统的”写得好“,到更加专业的”易扩展“,”可读性“,“模块化”,”“鲁棒性",高内聚低耦合",”简洁",”清晰“,”优雅"等。

    同时,在设计及优化代码时也会有一系列术语,”抽象“、”继承"、“多态",”面向接口编程"、“多用组合少用继承“,单一职责"、”依赖倒置“、”工厂“、”策略“、“代码规范”、重构"等。
在这里插入图片描述

    一份高质量代码,伴随如此多特征,作为一名开发人员,该从何入手?
    我们先对这些术语做一些分类总结。
    第一类,评价代码质量术语(特征),从笼统到具体,从整体到局部,有很多维度可以评价,语言十分丰富。我们可以从中选取少量常用且重要的评价标准,作为日常Code Reivew的标准,包括可维护性、可读性、可扩展性、灵活性、简洁性、可复用性、可测试性。
    第二类,设计及优化代码术语,是为了写出满足第一类评价术语而产生的,可细化、落地为五种方法论,包括面向对象设计范式、设计原则、设计模式、代码规范、重构技巧;
在这里插入图片描述

    ​作为开发人员,需掌握每种方法论的实现项与代码标准之间的关系,根据需求选择方法论合适的实现。

​    但方法论的实现选择有很多,与之对应的代码标准关系也很难掌握,仍然没有解决从何入手的问题。
    我们继续分析五种方法论,尝试从中找找入手点:

  • 面向对象编程

    具有丰富的特性(封装、抽象、继承、多态),可以实现很多复杂的设计思路,是很多设计原则、设计模式编码实现的基础。

  • 设计原则

    指导代码设计的一些经验总结。[抽象]

  • 设计模式

    针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路。

  • 代码规范

    主要解决的是代码的可读性问题。编码规范相对于设计原则、设计模式,更加具体、更加偏重代码细节。

  • 重构
    ​持续重构是保持代码质量不下降的有效手段,能有效避免代码腐化到无可救药的地步。而重构的工具就是我们前面罗列的那些面向对象设计思想、设计原则、设计模式、编码规范。实际上,设计思想、设计原则、设计模式一个最重要的应用场景就是在重构的时候。
    在这里插入图片描述

    通过对五种方法论的分析,面向对象是底层实现基础,而设计原则是方法论的中转核心,从设计原则可以渗透到更加具体的设计模式、代码规范,也能为重构提供思路。(也存在设计原则渗透不到的代码规范。不过此类规范,通过代码质量插件工具,大部分都能覆盖到)。
    因此,从设计原则与评价标准入手,再到具体实现类的方法论,可以简化入手点的选择。
    1.明确编写/重构代码需要的主要特征(评价标准);
    2.匹配与之对应的设计原则;
    3.选择设计原则对应的具体实现方法论
     一般复杂度的功能及小型重构(类、函数、变量),通常结向对象与代码规范足已。
     复杂功能及大型重构(系统、模块、代码结构、类间关系),还需要结合设计模式总和考虑;

示例:
1.编写一个函数时,想要可读性高、易维护,单一职责的初衷就为此,具体实现可对应到代码规范-代码整洁之道-函数-只做一件事、无副作用、分割指令与询问;

2.设计一个复杂功能时,想要代码易可扩展,正是开闭原则的拿手好戏,可对应到设计模式的策略、模板;

3.重构时,不符合设计原则的地方,可以作为入手考虑点。如一个名为详情功能(Api接口/函数),同时承担了初始化、保存、详情三个功能,违反了单一职责原则,可以从此出拆分职责,提高代码的可读性和维护性。

    为此,对于每一种设计原则 (单一职责,开闭原则,接口隔离,依赖倒置这四种,基本能保证代码质量下限),我们需要掌握它的设计初衷,能解决哪些编程问题,有哪些应用场景
在这里插入图片描述参考资料
《代码整洁之道》
《重构》
《设计模式之美》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值