在gorm orm上为golang的微服务创建顶级软件包

问题描述 投票:0回答:1

我们是一家新兴的科技公司。我们将Golang用作微服务的主要语言,并将gorm orm作为连接到PostgreSQL数据库的接口。

[目前,我们有多个微服务,其中有多个开发人员在工作。但是,问题在于,由于gorm中有很多方法可以完成一件事情,因此每个人都有自己的方式来在数据库上编写查询。因此,有些人使用.Table()函数进行查询,而其他人只是通过.Model()来计算表本身。

所以现在代码不是标准的,我们希望有一种标准的方式来对数据库进行查询。我们认为,如果我们可以拥有像库这样的程序包,该程序包为我们提供orm的接口供使用(因此,如果我们想更改orm或不使用任何接口,则无需更改所有代码)来解决问题。

但是我们从来没有创造过这样的东西,我们基本上不知道如何解决这个问题,如果有任何一个图书馆做过这样的事情?同样,我们也在努力寻找在Golang中进行查询的标准方式,因此,如果您可以就如何开发这样一种甚至有可能被宣布为公众的系统分享自己的见解,我们将不胜感激。

database go gorm
1个回答
0
投票

我认为包装象gorm这样的复杂东西是一项复杂的任务,如果您不清楚如何处理它,则最好避免这样做。

[通常,我建议首先确定要执行的内容,然后再考虑明确的要求,然后决定要执行的操作。在您不知道自己真正想做什么之前抢一把工具是使事情变得更糟而不是更好的可靠方法。您可以按照以下步骤操作:

  1. 首先记录您的代码标准,并在不遵守代码的情况下指导人们进行代码审查;
  2. 自动检查可以正式检查到持续集成管道中的所有内容(GitHub Actions,GitLabCI,TravisCI,CircleCI等);
  3. [并且仅当以上操作不起作用时,请考虑创建自己的包装程序,以强制开发人员使用特定的样式。

    到最后一步,您应该已经对确切缺少的东西有了相当不错的了解,然后找出解决方法会容易得多。

© www.soinside.com 2019 - 2024. All rights reserved.