有疑问加站长微信联系(非本文作者))
这是一个创建于 2022-02-10 10:38:40 的文章,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
铁子们都出来唠一唠啊
感觉大概还需要4-5个版本迭代才能用的比较顺畅的样子
提几点看看,看看我的观点是否有点太老了。
以我自己写的一个用来在虚拟机的windows和主系统的linux之间共享文件的webdav服务为例,结构大概是这样的
https://github.com/herbrhythm/herbwebdavd
我这个大概有过3个大版本的迭代的,才差不多稳定下来
首先感谢回复和建议, 下面针对说明一下:
项目目录在readme里面有解释, 是参考通用的Go程序布局 设计的, src目录基本上是gopath模式开发遗留下来的习惯, 目前不太建议使用, 至于其后的 resources/ systems 目录我不太明确他的意义, 或者可以麻烦解释下? doc 目录是我个人的api文档喜欢用自搭的yapi之类托管工具, 不太喜欢写接口文档放在项目里;
config文件单独存放是应该的, 我这里是写了个样例放在这个目录下方便使用, 项目初始化是可以用过 -config configPath 的方式来指定配置文件路径, 正常工作中config文件也不应该直接放在项目里(除本地开发使用), 可以通过etcd或者config项目等管理;
这是个好建议, 后面我会让他再支持toml等配置格式, 目前来说json还是大部分人可以接受的;
/internal 实际上是业务层, 为了便捷我把 api 目录从internal 中迁移出来, 相关驱动组件都在/pkg 目录下
我觉得这个不算框架,应该叫模板参考
以你引用的layout为例
然后,doc目录是项目文档目录,不是API文档
如果你是参考这个布局的话,你又有个非常大的问题了。
main.go不该出现在根目录下
应该在 /cmd 下,这是个很复杂的问题。
对于你的项目结构来说。别的不论
main.go的位置,config模板文件的位置,缺乏build/发布脚本,缺乏doc目录是比较明显要修正的问题。
除了入口代码,所有的go文件应该都在/pkg和/internal里
/api目录放的不因改是代码,应该是用来生成api的原始数据
/rpc /domain两个目录也不应该有
6楼 @pluszero1982 感谢解惑;
正如你所说, 我引用这个布局就应该尽量按照他的规则来:
这些会在下次commit 中体现, 再次感谢
或者应该叫项目模板, clone下来就能直接进行业务开发
1
我也是做了个这种项目,平时都是想起来什么就往上面加点什么还在维护 https://github.com/gphper/ginadmin
一样一样