跳到主要内容

1 篇博文 含有标签「数据库访问」

查看所有标签

使用Provider机制改造goner/xorm

· 阅读需 20 分钟

缘起

最近在给 goner增加测试代码,提高项目的测试覆盖率。改到goner/xorm时,发现存在两个主要问题:

1.原来的设计比较复杂

goner/xorm是gone框架中较早提供的组件,其演进历程如下:

  • v1.0版本:完全基于Goner机制实现

  • v1.2版本:引入Provider机制,为支持多数据库和集群场景做了增量改造

目前的情况是Goner机制和Provider机制的实现同时存在:

  • 默认配置的数据库:基于Goner机制注入

  • 集群数据库或多数据库:使用Provider机制注入

这种双机制并存的设计增加了代码的复杂性和维护难度。

2.测试不够友好,比较难做覆盖。

代码的设计职责不够清晰,组件边界不够分明,导致测试编写困难,难以实现良好的测试覆盖率。