加入收藏 | 设为首页 | 会员中心 | 我要投稿 烟台站长网 (https://www.0535zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

20大常见安全漏洞与配置错误

发布时间:2021-02-11 14:14:46 所属栏目:评论 来源:互联网
导读:四 为什么要写单测? 1 异(che)常(huo)场(xian)景(chang) 相信大家肯定遇到过以下几种情况: 测试环境没问题,线上怎么就不行。 所有异常捕获,一切尽在掌控(你以为你以为的是你以为的)。 祖传代码,改个小功能(只有上帝知道)。 ..... 要想故障出的少,还得单

四 为什么要写单测?

1 异(che)常(huo)场(xian)景(chang)

相信大家肯定遇到过以下几种情况:

  • 测试环境没问题,线上怎么就不行。
  • 所有异常捕获,一切尽在掌控(你以为你以为的是你以为的)。
  • 祖传代码,改个小功能(只有上帝知道)。
  • .....

要想故障出的少,还得单测好好搞。

2 优点
 

Q1:好代码应具备可读性,可测试性,可扩展性等等,那么如何写出好代码?

A:设计思想 & 编码规范。

二 设计思想&设计原则&设计模式

1 设计原则(S.O.L.I.D)

SRP 单一职责原则

  • 软件模块应该只有一个被修改的理由。在大多数情况下,编写Java代码时都会将单一职责原则应用于类。单一职责原则可被视为使封装工作达到最佳状态的良好实践。更改的理由是:需要修改代码。
  • 单一原则,类、方法只干一件事。

OCP 开闭原则

  • 模块、类和函数应该对扩展开放,对修改关闭。
  • 通过继承和多态扩展来添加新功能。开闭原则是最重要的设计原则之一,是大多数设计模式的基础。
  • 软件建设一个复杂的结构,当我们完成其中的一部分,就应该不要修改它,而是在其基础上继续建设。

LSP 里式替换原则

  • 在设计模块和类时,必须确保派生类型从行为的角度来看是可替代的。
  • 使用父类的地方都可以用子类替代。
    • 父类最好为抽象类。
    • 子类可实现父类的非抽象方法,尽量不要覆盖重写已实现的方法。
    • 子类可写自身的方法,有自身的特性,在父类的基础上扩建。
    • 子类覆盖重写父类方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松,后置条件(返回值)要更严格。

ISP 接口隔离原则

  • 减少了代码耦合,使软件更健壮,更易于维护和扩展。
  • 客户端不应该依赖它所不需要的接口。

DIP 依赖倒置原则

  • 高级模块不应该依赖低级模块,两者都应该依赖抽象。
  • 抽象不应该依赖于细节,细节应该依赖于抽象。

DRY 原则、KISS 原则、YAGNI 原则、LOD 法则

  • DRY:不要干重复的事儿。
  • KISS:不要干复杂的事儿,思从深而行从简。
  • YAGNI:不要干不需要的事儿,尺度把握尤为重要,超越尺度则会有过度设计之嫌。
  • LOD:最小依赖。

设计模式

设计模式最重要的点还是在于解耦和复用,创建型模式将创建代码与使用代码解耦,结构型模式是将功能代码解耦,行为型模式将行为代码解耦,最终达到高内聚,松耦合的目标,设计模式体现了设计原则。

附:我们经常说的“高内聚 松耦合”究竟什么是高内聚,什么是松耦合?

  • 高内聚:相近功能放在同一类中,相近功能往往会被同时修改,放到同一个类中在修改时,代码更易维护(指导类本身的设计)
  • 松耦合:类与类之间的依赖关系简单清晰,一个类的代码改动不会或者很少导致依赖类的代码修改(指导类间依赖关系设计)

Q2: 那么如何验证代码是好代码呢?

A: CR & 单测(下面进入正题^_^)

三 什么是单测?

单元测试(unit testing),指由开发人员对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

(编辑:烟台站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读