美文网首页
一行改动半小时

一行改动半小时

作者: 真海 | 来源:发表于2020-05-25 23:53 被阅读0次

今天工作中遇到一个问题,在支付成功回调时支付系统中校验金额报错,需要在校验金额时给定一个参数,做一下转换,核心逻辑一共只有几行,但是修改了半个多小时,主要时间花费在以下几点。

首先是参数模型需要定义多套,系统的框架采用的是插件方式,如果涉及到比较定制的逻辑需要在各自的插件中完成,需要制定一个扩展点(接口中新增一个方法),定制扩展点的入参与返回值,这些定义都放在一个公共二方库中,而系统的核心模块中(领域模型)不依赖外部接口,因此需要进行依赖倒置,对于二方库中定义好的模型需要在核心模块中重新实现一遍,而两套模型的字段一摸一样,如果后续需要修改模型,同样两个地方都需要修改一遍。DIP是一个典型的场景,DIP系统中内部模型不依赖外部模型,因此即使使用了外部模型,也会重新定义一套非常相似或者完全一样的模型,目的是为了自洽,屏蔽外部变化,但是在后面的变化中,往往两套模型都是同步修改。除了DIP之外分层也会导致这个问题,之前同一个系统分了多个模块,每个模块都有自己的对外模型(接口,入参,返回值),结果就是同一个模型在不同层之间传递时层层复制,修改一个字段往往修改很多地方,对象的转换更是眼花缭乱。

调用的不断传递,一个接口获取的数据,通过了多个接口的层层转发,每个接口中都需要定义一套相似的方法,而接口中逻辑只是简单的传递与转换。

难以找到类的位置,当新增一个模型时,不是很方便就很定位到应该放到何处,同一个接口中不同方法的返回值被放到了不同的模块中,被放置不同模块的类之前差异并不明显,导致需要徘徊类该放置到何处。

除了修改花费时间之外,由于依赖的二方库较多(功能不一),导致打包部署也很繁琐,让人望而生畏。

相关文章

  • 一行改动半小时

    今天工作中遇到一个问题,在支付成功回调时支付系统中校验金额报错,需要在校验金额时给定一个参数,做一下转换,核心逻辑...

  • 一个关于开屏页和引导页的demo

    《优雅的插入开屏广告》-- 不改动任何一行代码在这个基础上再添加了引导页,====================...

  • #Xcode 8 的锅# Xcode 8天坑汇总贴

    貌似每改动一行代码,所有的 Swift 文件就都全部被编译一次? 终于找到 Apple Developer For...

  • 第一行代码笔记——ChoosePicTest

    ChoosePicTest 第一行代码的拍照和选择图库照片,有改动 演示 笔记 点击拍照 创建file存储图片 F...

  • 改动

    1、加删除页面 页面html改动部分(1)表格改动地方 (2)帖子改动部分 2、个人新增和改动部分 3、设置 9/...

  • 改动

    车水马龙的城市 心灰意冷 我在虐风四起的荒野 安身立命 孤独不听话 还有一些寂寞 下落不明 微风吹皱了湖水 夜色掩...

  • 改动

    《改动》 我想,还有什么最后可以改动一下,这一天 当我最后终于将自己甩到床上,像甩一摊讨厌的泥巴 还有什么可以改动...

  • GreenDao(2) ---- 数据库升级 onUpgrad

    1APP开发期间的数据库改动(APP未上线) 直接上DaoMaster的代码 注意看第一行注释:WARNING: ...

  • flutter 自定义TextField,加减数量输入框

    自定义TextField,加减数量输入框,可以根据自己的需求任意改动 先看效果 实现方式 为一行 ,左边一个按钮右...

  • 「代码改动」删改问题

    每次改动代码的时候我们改之前要了解我们改动为什么要改动,怎么改动,改动导致结果。在思考完后保存已经完善的代码后再进...

网友评论

      本文标题:一行改动半小时

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