2 回答

TA贡献1796条经验 获得超4个赞
首先寻找灵感的地方是Go 标准库。Go 标准库是关于“好的”Go 代码应该是什么样子的一个很好的指南。库与应用程序并不完全相同,但它绝对是一个很好的介绍。
一般而言,您不会将每个方法分解到其自己的文件中。Go 倾向于喜欢涵盖某个主题的较大文件。不过,3000 行似乎相当大。就连net/http server.go也只有2200行,还挺大的。
全局可变变量在 Go 中与在任何语言中一样糟糕。由于 Go 非常依赖并发编程,因此全局可变变量非常可怕。不要那样做。一个常见的例外是sync
像sync.Pool
orsync.Once
这样的结构,它们有时是包全局的,但也被设计为并发访问。有时也有结构的“默认”版本,例如http.DefaultClient
,但您仍然可以将显式版本传递给函数。再次查看 Go 标准库,看看什么是常见的,什么是罕见的。

TA贡献1804条经验 获得超7个赞
只是一些您希望有用的提示:
按功能而不是按层将代码组织成多个文件和包。您的应用程序越大,这变得越重要。
controllers
带有一两个控制器的包可能没问题,但是将数百个不相关的控制器放在同一个包中没有任何意义。下面这篇文章解释得很好:http : //www.javapractices.com/topic/TopicAction.do?Id=205全局变量有时会使代码更容易编写,但应谨慎使用。我认为记录器、调试标志等未导出的全局变量是可以的。
- 2 回答
- 0 关注
- 229 浏览
添加回答
举报