golang 项目目录组织

作者: 大漠狼道 | 来源:发表于2019-04-20 11:06 被阅读0次
app
  - cmd
    - cmd1
    - cmd2
  - cron
  - env
  - conf
    - conf_test.xxx
    - conf_prod.xxx
  - domain
  - facade
  - transport
    - http
    - grpc

domain就是各种业务逻辑
facade:facade模式,不同domain可能以组合模式对外提供服务,就在这层
transport:http服务还是grpc服务
=====
实践
=====
基于六边形架构,面向接口编程,所有的依赖和提供的服务都以接口形式提供,domain尽可能的pure,便于测试.
举个简单的例子:
订单系统:
创建订单服务:

Order.New
    // 创建订单
    // 持久化
    // 发送订单创新消息

持久化和发送消息可以用接口来处理,这样测试的时候,就可以通过mock这两个系统,而不用需要引入第三方组件,例如mysql,kafka等

对于domain,尽可能依照solid原则,最最最基本的是要满足s,单一原则,便于维护、分工等
而facade层,一种是先在router中快速实现,单发现有多个router都要用到同一组服务的时候,可以抽出一个公共的服务,放入facade层

参考
adapters-architecture
ddd上下文

相关文章

  • golang 项目目录组织

    domain就是各种业务逻辑facade:facade模式,不同domain可能以组合模式对外提供服务,就在这层t...

  • Golang 专栏

    简介 整理 Golang 相关文章,方便大家阅读。 目录 golang 编程规范 - 项目目录结构[https:/...

  • Golang包和项目构成

    工作目录 先来说说Golang的工作目录,安装好Golang后,需要做的一件事情就是设置工作目录,所有的项目、工具...

  • Golang web开发目录结构说明

    通常开发项目开发时目录结构可以随意设计,但好的目录结构能让代码显得更加清晰。 Golang web 项目通用目录结...

  • 前端项目目录如何组织

    背景 最近看了 antd pro 发现其项目的目录结构组织的不错。然后再按照自己的项目经验,对其项目的组织进行修改...

  • golang学习资源

    • golang官方文档• golang官方指南• golang官方指南目录版• 怎样编写golang代码• 地道...

  • golang笔记

    golang环境搭建 GOPATH是你的工作目录。 注意:你的go项目文件,都是放在工作目录里面的src下面的,一...

  • 2019-02-27

    golang学习图 golang创建项目goland创建项目

  • 再记录一下vscode配置golang开发的一些注意事项

    M$推出vscode之后,感觉世界真美好。于是从liteide转到vscode了。但是golang组织代码的目录管...

  • protobuf 导入另一文件夹下的proto

    环境: protobuf2 ,golang 项目test下 存放proto的目录结构 cs.proto ss.pr...

网友评论

    本文标题:golang 项目目录组织

    本文链接:https://www.haomeiwen.com/subject/ikskgqtx.html