总体来说,使用Go语言开发,可以极大的提高生产力。
然而也有几处脑残设定,让人诟病不已。
声明与实现不分离
C++中,有.h、.cpp文件的概念。即可以做到声明与实现分离。
这种特性可以带来很多优点:
- 类结构清晰,方便阅读代码
- 支持模块间相互引用的问题
- 可以隐藏实现,只提供.h和.a的方式来提供库
上面的几个优点,可能对于大多数程序来说,这不是很平常的事吗,是语言不是都有这样的功能吗…
其实不是的。
Go语言的声明与实现是不可分离的(除了interface)。因此要实现上述功能。在Go中都需要做不少额外的事情。
模块间相互引用的问题
唯一的方法,设计接口类、工厂模式,来解耦2个模块间的相互引用问题。使用不当会增加不少多余的编码量提供库问题
唯一的方法,将Go库编译成C库(会自动生成.h文件)。然后再使用Go与C混合编程。这会极大的增加编码量
因此使用Go语言来进行游戏开发时,下面2件事情通常会是一个头疼的问题:
- 隐藏核心代码
- 添加子目录,整理归类代码文件 </