当前位置: 首页 > news >正文

做网站如何找广告商软件设计是干什么的

做网站如何找广告商,软件设计是干什么的,企业公示信息查询系统广西,济南网站建设认可搜点网络Golang在项目结构上没有强制性规范,虽然这给了开发者很大的自由度,但也需要自己沉淀一套可行的架构。本文介绍了一种项目布局,可以以此为参考设计适合自己的 Golang 项目组织模式。原文: Golang Project Layout Go 有很多强制的或是约定俗成的…

Golang在项目结构上没有强制性规范,虽然这给了开发者很大的自由度,但也需要自己沉淀一套可行的架构。本文介绍了一种项目布局,可以以此为参考设计适合自己的 Golang 项目组织模式。原文: Golang Project Layout

Go 有很多强制的或是约定俗成的规范,但在项目架构方面,就只能靠自己了!对我来说,这很令人困惑,但我们需要的只是一个有效且可以重复使用的架构。下面将展示我是怎么做的,也许你会采用不同的方法,都没有关系。Go 项目的架构有很多,但我最喜欢这个架构,并且已经用它构建了很多东西:)

布局

这是正在进行的一个个人项目的根(root)布局:

alt

/.github/workflows

alt

如果有人感兴趣,我很乐意分享这些工作流代码。这三个文件可以确保我的 PR 自动运行测试,并确保合并到 main 分支的版本会被容器化并推送到容器仓库。目前我都是手动部署修改,所以这些就是所需的全部工作。

/api

alt

很抱歉我隐藏了一些内容,但重点应该很明确,此文件用于 api 接口。这是 http API,所有端点都定义在这个文件夹中,并通过其他文件夹中的代码来提供响应。我在这里定义了中间件,支持结构化日志、跟踪和度量。

/cmd/server

alt

这是应用程序启动的位置,是服务的 main 方法。所有路由、逻辑和服务器启动代码都放在 server.go 文件中,而且将中间件与路由结合起来。这篇文章不会涉及这些文件的实际内容,这篇文章更关注项目布局,而不是如何实现的具体细节。

/decks

alt

decks 目录用于存放打算从 postgres 中存储和检索的模型或数据。该目录包含数据库模型 deck.go、仓库和测试(container_test.go 用于测试)。测试是通过一个名为 testcontainers 的库在 docker 上运行。

/groups

alt

该目录与 /decks 目录非常相似。怎么说呢,我喜欢简单易复制的开发模式。这个文件夹涵盖了项目中的群组概念。你会看到两个仓库,虽然这看起来像是混淆了文件夹(folder)和群组(group)的概念,但我向你保证,我对这种设置很满意,而且很有效。这些都是 postgres,而且我是在 docker 容器上进行测试的--测试只需要 3 秒钟,所以虽然比简单的单元测试慢一些,但几乎和典型的"集成测试"一样快。

/mocks

这个文件夹是由 https://github.com/vektra/mockery[1] 生成的,它从项目中获取接口并自动生成一些桩,可以在测试中使用这些桩。我知道有些人看了会想吐,但这让测试变得简单明了。

/pkg/tools

alt

这个模块提供了几个助手工具,可以测试一些副作用更大的东西。在我的测试中,控制生成的时间和 uuid 对测试很有帮助,因此这个包创建了一个接口和实现,可以在任何地方使用,并在测试中模拟。有些人觉得不应该有 utilstools 模块,但我不在乎。

/seed

其中包含一些用于本地测试的 sql 脚本:)

/users

alt

看起来很熟悉吧?编程其实并不难......好吧,你看到的服务并没有复杂的代码,但我向你保证,这种架构远远超出了简单的项目。这是另一个用于存储和检索用户的存储库。

结语

你会发现这个项目中缺少服务逻辑,目前我还没有发现有必要分离业务逻辑,所以没有专门的文件。我曾在生产服务和个人项目中使用这种架构,它用途广泛且简单,基本上任何项目都可以重复使用,而且可以避免大多数常见的陷阱(如循环依赖关系),你试一下就知道了。


你好,我是俞凡,在Motorola做过研发,现在在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。为了方便大家以后能第一时间看到文章,请朋友们关注公众号"DeepNoMind",并设个星标吧,如果能一键三连(转发、点赞、在看),则能给我带来更多的支持和动力,激励我持续写下去,和大家共同成长进步!

参考资料
[1]

mockery: https://github.com/vektra/mockery

本文由 mdnice 多平台发布

http://www.yayakq.cn/news/573468/

相关文章:

  • 商务网站开发设计结论青岛企业建设网站公司
  • 无锡网站制作哪些上海最好网站建设公司
  • 简述企业网站推广的策略北京网站优化体验
  • 截图京东图片做网站长春 万网 网站建设
  • 本科网站开发毕业设计网站本地化怎么做
  • 上百度推广 免费做网站布展设计收费标准
  • 园林工建设有限公司网站宁波手机网站开发
  • 众筹网站开发周期网站建设方案 评价
  • 海拉尔建设局网站厦门国外网站建设公司排名
  • 新乡市网站建设公司江西人才网
  • 常用的网站建设技术有wordpress widgets 插件
  • 网站做电商销售需要注册吗怎么找网站做宣传
  • 兰州今天的新消息湖南网站推广优化
  • 购物网站建设流程网站初始开发的步骤
  • 网站如何做宣传推广怎么样编辑wordpress
  • 网站开发整套视频各大网站vip接口建设
  • 刚做的网站为什么百度搜不到东莞比较好的设计公司
  • 图书馆网站建设wordpress分类随机文章
  • 有哪些招聘网站怎么开发ios软件
  • 电子商务网站设计的原则html产品介绍网页设计代码作业
  • 网站开发朋友圈威海好的网站建设公司
  • 漳州网站设计如何自己做一个网址
  • 网站都有什么费用上海高端网站建设服务公
  • 深圳网站建设亿联时代电子商务网站建设与管理试题及答案
  • 做网站怎么安装数据库网页模板怎么设计
  • 网站服务器租用报价建设食品商购网站
  • 天津网站seo服务老闵行的房子值得买吗
  • 网站规划建设实训报告书网站主题及风格
  • 济南自助建站模板网站开发项目管理
  • 网页编程用什么语言免费网站优化怎么做