美文网首页
聊聊golang的clean architecture项目结构

聊聊golang的clean architecture项目结构

作者: go4it | 来源:发表于2021-03-13 22:16 被阅读0次

    本文主要研究一下golang的clean architecture项目结构

    clean architecure

    image

    clean architecture定义了四层结构,最内层是entities(enterprise business rules),再往外是use cases(application business rules),接着是interface adapters(比如controller、presenters、gateways),最外层是frameworks & drivers(比如web、ui、db、devices、external interfaces)

    app

    go-cleanarchitecture-sample/src/app

            ├── domain
            │   └── user.go
            ├── glide.lock
            ├── glide.yaml
            ├── infrastructure
            │   ├── router.go
            │   └── sqlhandler.go
            ├── interfaces
            │   ├── controllers
            │   │   ├── context.go
            │   │   ├── error.go
            │   │   └── user_controller.go
            │   └── database
            │       ├── sqlhandler.go
            │       └── user_repository.go
            ├── server.go
            └── usecase
                ├── user_interactor.go
                └── user_repository.go
    

    domain层定义了领域模型及相关领域方法;usecase层定义了业务用例方法及相关接口,然后进行编排实现;infrastructure层是对一些基础服务/类库的管理;interfaces层这里对输入输出进行适配实现use case层定义的接口

    小结

    clean architecture主要是分了4层结构,domain层,有的会把repository接口放在这一层,然后domain service会调用repository;use case层对应ddd的application层,主要是业务编排,有的也把repository接口放在这一层;interfaces adapters层会对输入和输出进行适配,实现use case定义的方法,类似ddd的interfaces层;infrastructure层主要是对基础服务/类库的管理,有些工程把对repository的实现也放这里了,貌似不太妥当。

    doc

    相关文章

      网友评论

          本文标题:聊聊golang的clean architecture项目结构

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