美文网首页
编写可读代码的艺术-抽取不相关的子问题

编写可读代码的艺术-抽取不相关的子问题

作者: DZQANN | 来源:发表于2022-03-27 20:52 被阅读0次

    这一节讲的是抽取代码,怎样压缩一个函数

    代码块

    包括for、if、try等等,代码块里面的内容应该只有一个方法,因为本身if这些已经是一些逻辑了,如果代码块里还有其它的业务逻辑,就说明这个函数没有做一件事

    工具代码

    对于写一个工具其实我们还是需要谨慎的。一提到工具类,至少我的第一反应就是静态,而且写这种工具方法的难点就在于判断它应不应该是一个静态方法。

    我觉得静态工具方法,首先要满足的一个要求就是不会变化。这一点其实是相对于单例Service来看的。Spring管理的单例Service相比于直接使用静态方法,优点就是可以方便修改实现。比如在我们的代码里,碰到要向MQ里发消息的逻辑的时候,会用到对应的MQ Service。这里就可以将业务代码和测试代码分别写一个实现,在两个地方分别注册实现。这样就可以非常方便的实现测试不会依赖环境。

    静态方法比起我们的service,最大的好处就是方便好写。如果要写service的话还需要到指定的配置类中进行注册,所有的service都在那一个地方注册,就很容易发生代码冲突。静态方法就完美解决了这个问题,包括我最开始接手扩展的一些接口,都是用静态方法做的service。

    静态方法我觉得最好还要满足实现简单。如果一个静态方法的实现用了几百行,那很大概率会出现一个void的update函数的情况。这种时候其实不如把里面的实现都抽到一个类里面去,放弃静态。

    创建大量通用代码

    我觉得这里就是我们的项目可以优化的地方。我们的很多Utils会通过业务放在了很多零散的地方,DateUtil就有2~3个。这样就很容易写出重复的代码。最好可以聚拢现在的Utils,规范代码的位置。(好像已经开始做了)

    相关文章

      网友评论

          本文标题:编写可读代码的艺术-抽取不相关的子问题

          本文链接:https://www.haomeiwen.com/subject/mfhmjrtx.html