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 语言中函数的另一种写法)。 更改包中代码的布局不会影响编译时间。