加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 编程 > 正文

代码就是你的犯罪证据

发布时间:2021-03-12 11:16:33 所属栏目:编程 来源:互联网
导读:写的 if 就是你的犯罪证据 业务的复杂性,导致了架构的复杂性。在这些代码故事里,发生得最多的地方就是 if 语句。所以,你可以从大部分的 if 语句里,看到一些代码上的坏味道。 业务条件复杂 你先写了一个 if 语句里面只有一个条件,没问题。但是后来的人,

写的 if 就是你的犯罪证据

业务的复杂性,导致了架构的复杂性。在这些代码故事里,发生得最多的地方就是 if 语句。所以,你可以从大部分的 if 语句里,看到一些代码上的坏味道。

业务条件复杂

你先写了一个 if 语句里面只有一个条件,没问题。但是后来的人,又加了一个条件,因为业务上确实需要这么做。于是,后来,又不得加了一个if 语句,导致了这个条件变得更加复杂。
 

所以,完了,这些代码越来越难以维护。

于是,我们应对于这类条件判断,有两种做法:提取变量和提取方法。当你的判断条件是一个方法的时候,你可以想象一下它的架构是多么的复杂。

难以阅读的字符串判断

开始的人加了一个简单的条件判断,因为当时真的只有这么一种业务场景。你又不能过度设计,成一个 switch-case。但是,后来又多了好多个场景。
 

针对于有限的 if 语句来说,可以转为 switch case(在 IDEA 里只需要 alt + enter 就可以自动完成)。

随着时间的推移我们的条件越来越复杂,我们的 if 语句会越来越复杂。

多层嵌套 if 语句

随着 if 条件进一步扩大化,我们的条件语句就变成了一个多层嵌套的循环语句。每多一层嵌套代码复杂度就 * 2,它的阅读难度就越来越大。于是乎:



 

我们的 if 方法随之变得越来越长,于是尝试去抽成一个方法。但是,当你又遇到一个新的场景时,你又加了一个 if 语句。后来,又又加了一个 if 语句。你才发现说,『咦,不对,这些 If 语句违反了开闭原则』。

于是,你尝试把代码重构成多态以替换 if 语句。

你开心的话,还可以转为 Factory + Strategy。

你开心的话,你也可以将它转为 HashMap 。

但是,在你写下第一个 if 的时候,你并不知道它会变成什么样的。所以,不要提前去把它转为这么复杂的架构。

上帝 if

如果你的业务场景真的超级复杂,那么你可能会看到一个非常长的 if 代码。它可能有几十个条件,有几百行到几千行的规模。

那么,你可以尝试使用注册表模式+ 注解,通过反射的方式来重构你的 if 语句。

重构

在你进一步修改代码之前,让我们来又双叕明确一下什么叫重构

重构(Refactoring)就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

换句话来说,重构只是在改善现有的代码,使其更易于阅读,换句话来说就是:Clean Code。而当我们说整洁的代码(Clean Code),说的是易于理解、修改和测试的。易于理解和修改意味着:

  • 易于理解整个系统的架构
  • 易于理解整个应用程序的执行流程
  • 易于理解不同对象如何相互协作
  • 易于理解理解每种方法的作用
  • 易于理解每个表达式和变量的目的是什么

    (编辑:惠州站长网)

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

推荐文章
    热点阅读