对于golang语言,有一个特性,包之间不能循环引用,这个特性感觉让我在做业务的时候困惑好大
对于电商系统,各个模块都有关联,譬如购物车模块,订单模块,产品模块,都会涉及到交互,也就是相互引用其他模块的功能,
如果我分包,因为不能相互import,所以不行,这样就需要放入一个包中,如果放入一个包里面,那么大量的文件都在一个包里面,会造成这个包里面的文件几十个,维护起来比较麻烦。
对于golang这么牛的语言,肯定有方法解决这个问题,因此想问问各位golang大牛,对于这种相互关联的非常强的业务类型,在golang中如何分包呢?(类似于其他语言的分模块)
多谢!
不管用那个语言,你划分业务模块和包的方式看来都有问题。
以你的例子为例,实际上,
订单,产品,购物车压根是很独立的三个模块。
基础包不也是用来放这些乱七八糟的东西的。
给点提示:
以你的项目为例。你需要确定最小的通用概念,做成interface。
以常用的电商模块来说,基本是
1.用户。
2.产品(id,sku,price,是否可售)
3.用户提交原始信息
然后基于这些抽象的借口再写具体的实现。
以我之前写的php电商代码为例。
产品属于shop模块,订单属于payment模块,购物车属于前端自行解决的部分。
base模块提供了基础用户,基础流程和基础流程状态基础流程模块的概念。
基础包是用来引入概念由其他模块来实现的,不是用来放业务代码的。
#5
更多评论