我有一个用 Go 编写的小型 Web 应用程序。它为更大的系统创建了一个基础,我希望它是可扩展的,可以添加/删除组件,而无需以任何方式修改此基础。
目前的结构是:
App
Modules
Core
... Core Files Here ...
app.go
main.go
app.go 将包含一个路由方法,它应该接受一个 Web 请求,并根据请求路径知道哪个模块负责处理请求。每个模块/组件都有其在控制器上。
每个组件都有自己的包名,所以我认为这是不可能的,因为 go 强制显式导入。
例如,我可以添加一个名为 say blog 的新模块/组件,例如:
App
Modules
Core
... Core Files Here ...
controller.go
Blog
... Blog Files Here ...
controller.go
app.go
main.go