英文:
Is it a good idea to use global variables to store DB handles in a Go web application?
问题
官方指南表示可以使用全局变量来缓存模板:
http://golang.org/doc/articles/wiki/
首先,我们创建一个名为templates的全局变量,并使用ParseFiles进行初始化。
全局变量可以用来存储数据库句柄和存储库对象吗?还是它们必须在每个请求中进行初始化?
非常感谢。
英文:
Official guide says it's okay to use a global variable to cache templates:
http://golang.org/doc/articles/wiki/
> First we create a global variable named templates, and initialize it
> with ParseFiles.
Can global variables be used to store DB handles and repository objects? Or do they have to be initialized for every request?
Thanks a lot
答案1
得分: 3
是的,那完全没问题,它在官方的Go包中被广泛使用。如果你要从处理程序中修改这些对象,你需要使用互斥锁,这样就不会出现竞争条件。
英文:
Yes, that's perfectly fine, it's used in the official Go packages all over the place, now if you gonna modify these objects from your handlers, you will have to use a mutex so you wouldn't run into races.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论