你会说西班牙语吗?在我的博客中查看西班牙语版本
我们已经接近2022年的尾声,这意味着我已经作为一名Golang开发人员全职工作了一年。在这一年的工作中,我发现了一些新的工具,可以帮助你在开发流程和文档编写方面更加高效,同时也找到了一种新的组织项目的方式,使它们能够健康地扩展。
技术栈 🧱
我们将对为该模板带来生命的工具进行简要介绍,并了解我目前使用它们的原因。
- 路由器🚀:对于路由器,我选择使用Fiber,因为它在框架内部开发了多种工具,并且因为它的路由声明方式更加直观。
- 数据库💾:对于数据存储,我选择了MongoDB,因为它易于部署,而且2022年和2021年我开发的大多数项目都要求我使用此数据库。
- 文档编写📄:在专业领域开发项目时,最重要的部分之一是文档编写,记住你将与更多的开发人员合作。为此,我们将使用Swag,这是一个Go包,允许我们基于注释生成文档。
- 日志记录⚡️:关于日志记录,它是项目中开发的工具和我在服务器上使用的Zap的组合。
- 测试💀:在测试中,我使用了本地Go库,结合gomock模拟库,以自动生成我的接口的模拟。
- 容器🐳:目前,我仍在使用Docker进行容器部署,我正在探索新的选择,如果你有任何建议,请在评论中留言。
- 部署🐙:对于CI,我非常喜欢Github actions及其潜力,我选择Github Actions,因为它与你的仓库集成非常容易。
文件结构📂
我们将Go的著名“Go标准布局”与Hexagonal架构文件夹结构的包结构相结合。
在包中,我们可以看到internal/user文件夹中有3个文件夹application、domain和infrastructure。为了使功能尽可能易于理解,我为每个功能分别创建了文件。
如果你想更详细地了解并实现整个登录和身份验证系统使用JWT,请将此项目作为模板放在Github上。
结论🤔
如果你不断地启动新项目,那么每年你作为开发人员的提高将呈指数级增长,它帮助你思考:当你开始这个项目时,你会做些什么不同的事情?你会使用哪个工具代替另一个工具?并且应用它们,你逐渐迭代,直到找到你完美的“模板”来开始一个项目。目前,这是我的,我希望它能帮助你,这样你就可以根据自己的需求创建自己的模板。
评论(0)