• 设计原则和思想:规范与重构


    为什么重构

    在保持功能不变的前提下,利用设计思想、原则、模式、编程规范等理论来优化代码,修改设计上的不足,提高代码质量。

    首先,重构是时刻保证代码质量的一个极其有效的手段,不至于让代码腐化到无可救药的地步。

    其次,优秀的代码或架构不是一开始就能完全设计好的,就像优秀的公司和产品也都是迭代出来的。

    最后,重构是避免过度设计的有效手段。在我们维护代码的过程中,真正遇到问题的时候,再对代码进行重构,能有效避免前期投入太多时间做过度的设计,做到有的放矢。

    重构什么

    大型重构指的是对顶层代码设计的重构,包括:系统、模块、代码结构、类与类之间的关系等的重构,重构的手段有:分层、模块化、解耦、抽象可复用组件等等。这类重构的工具就是我们学习过的那些设计思想、原则和模式。

    这类重构涉及的代码改动会比较多,影响面会比较大,所以难度也较大,耗时会比较长,引入 bug 的风险也会相对比较大。

    小型重构指的是对代码细节的重构,主要是针对类、函数、变量等代码级别的重构,比如规范命名、规范注释、消除超大类或函数、提取重复代码等等。小型重构更多的是利用我们能后面要讲到的编码规范。

    这类重构要修改的地方比较集中,比较简单,可操作性较强,耗时会比较短,引入 bug 的风险相对来说也会比较小。你只需要熟练掌握各种编码规范,就可以做到得心应手。

    什么时候重构

    别等烂透了再整,防止产生破窗效应,看到了有不妥的地方就要积极去处理。

    单元测试

    • 发现代码中的bug,提高准确率,提升信誉度
    • 帮助检查代码设计上的不足,越难编写单元测试说明设计的不够合理,可以帮助进行重构
    • 集成测试的有力补充
    • 阅读单元测试可以快速熟悉代码,通过测试用例可以快速了解该代码的功能、边界条件和特殊情况
    • 单元测试是测试驱动开发最好的落地方案,边写代码边写单元

    快速改善代码质量的编程规范

    命名

    • 作用域小的可以简化,作用域越大与应该命名清楚,不怕长
    • 利用上下文简化命名
    • 命名要可读、可搜索
    • 接口\接口实现的命名:Ixxxx\XxxxImpl

    注释

    • 类、接口、方法写清楚干什么的,怎么用
    • 内容中标明逻辑

    函数

    • 避免参数过多,超过四个建议封装成对象
    • 勿用参数控制逻辑,应该将需要控制的逻辑拆分,更有用参数是否为null控制逻辑,更应该避免
    • 职责要单一
    • 避免过深的层次嵌套:
      • 善于使用continue、break、return 提前推出嵌套
      • 调整执行顺序,减少嵌套
      • 封装部分函数减少嵌套
  • 相关阅读:
    HDU 1878 欧拉回路(DFS)
    HDU 2181 哈密顿绕行世界问题(DFS)
    HDU 1181 变形课(DFS)
    HDU 1029 Ignatius and the Princess IV(map应用)
    HDU 1242 Rescue(BFS)
    HDU 1027 Ignatius and the Princess II(STL)
    将项目部署到本地IIS时出现的奇怪问题
    [转]30个你必须记住的css选择器
    打开一个从网络上下载的chm文件时出现“已取消到该网页的导航”
    [转]使用Modernizr 检测HTML5和CSS3浏览器支持功能
  • 原文地址:https://www.cnblogs.com/xcgShare/p/16419190.html
Copyright © 2020-2023  润新知