Go语言(golang)包设计哲学/原则与项目结构组织最佳实践
总结下Go的package设计哲学
项目结构组织的最佳实践 有两种类型的项目,一种是生成可运行程序的项目(application project),另一种是专门用于被其它项目引用的套件项目(kit project)。 vendor存放依赖包,internal存放本项目内部使用的包,cmd存放可运行的程序的代码,如果该项目有多个可运行程序,可以在cmd下建子目录。 注: internal可以被编译器识别,在internal下面的包是不能被其它项目引用的。 internal下面如果有很多包,并且它们需要用到一些相同的逻辑,比如加解密、网络请求等,可以在internal中建platform目录,存放内部使用的套件包,这样的结构: 注:platform下面的包如果成熟了,在未来它们你可以将其开源变成公有的套件项目,供别人的项目引用。 关于日志输出,公有的套件项目不要打印日志,因为它是要被其它项目引用的,打印日志的逻辑应该让可运行的项目自己来决定。 附上相关演讲视频:《Go语言面向包设计》 插播广告,go的http请求库req,让http请求简单到极致:https://github.com/imroc/req (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |