- 5.1.1. 通过
import语句将代码排列到文件中
5.1.1. 通过 import 语句将代码排列到文件中
如果你按照包提供的内容来安排你的程序包,是否需要对 Go 包中的文件也执行相同的操作?什么时候应该将 .go 文件拆分成多个文件?什么时候应该考虑整合 .go 文件?
以下是我的经验法则:
- 开始时使用一个
.go文件。为该文件指定与文件夹名称相同的名称。例如:package http应放在名为http的目录中名为http.go的文件中。 - 随着包的增长,您可能决定将各种职责任务拆分为不同的文件。例如:
messages.go包含Request和Response类型,client.go包含Client类型,server.go包含Server类型。 - 如果你的文件中
import的声明类似,请考虑将它们组合起来。或者确定import集之间的差异并移动它们。 - 不同的文件应该负责包的不同区域。
messages.go可能负责网络的HTTP请求和响应,http.go可能包含底层网络处理逻辑,client.go和server.go实现HTTP业务逻辑请求的实现或路由等等。
贴士: 首选名词为源文件命名。
注意:Go编译器并行编译每个包。 在一个包中,编译器并行编译每个函数(方法只是 Go 语言中函数的另一种写法)。 更改包中代码的布局不会影响编译时间。
