freedom

package module
v1.7.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 7, 2020 License: Apache-2.0 Imports: 14 Imported by: 8

README

freedom

License Go Report Card Build Status GoDoc

freedom是一个基于六边形架构的框架,可以支撑充血的领域模型范式。

Overview

  • 集成iris v12
  • 集成普罗米修斯
  • 集成gorm
  • 链路追踪
  • infra容器 基于组件的基础设施
  • http2 server & client
  • 依赖注入&依赖倒置&AOP
  • CRUD 代码生成
  • DDD&六边形架构
  • 消息事件&事件重试&领域事件

安装

$ go get github.com/8treenet/freedom/freedom

创建项目

$ freedom new-project [project-name]

生成crud 值对象

# 编辑 [project-name]/cmd/conf/db.toml 填入数据库地址
# 可指定配置地址和输出目录 freedom new-crud -h 查看更多
$ cd [project-name]
$ freedom new-crud

Example

基础教程
http2监听和依赖倒置
事务组件和自定义组件
消息事件和领域事件
一个完整的电商demo,包含CQRS、聚合、实体、领域事件、仓库、基础设施

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Configure added in v0.0.3

func Configure(obj interface{}, file string, must bool, metaData ...interface{})

Configure .

func Logger

func Logger() *golog.Logger

Logger .

func NewProxy added in v1.7.3

func NewProxy(proxyObj proxyInterface, target interface{})

func Prepare added in v1.6.2

func Prepare(f func(Initiator))

Prepare .

func Prometheus added in v1.5.5

func Prometheus() *general.Prometheus

Prometheus .

func SetConfigurer added in v1.6.9

func SetConfigurer(confer Configurer)

SetConfigurer .

Types

type Application

type Application interface {
	InstallGorm(f func() (db *gorm.DB))
	InstallRedis(f func() (client redis.Cmdable))
	InstallOther(f func() interface{})
	InstallMiddleware(handler iris.Handler)
	InstallParty(relativePath string)
	CreateH2CRunner(addr string, configurators ...host.Configurator) iris.Runner
	CreateRunner(addr string, configurators ...host.Configurator) iris.Runner
	Iris() *iris.Application
	Logger() *golog.Logger
	Run(serve iris.Runner, c iris.Configuration)
	InstallDomainEventInfra(eventInfra DomainEventInfra)
	Start(f func(starter Starter))
	InstallBusMiddleware(handle ...BusHandler)
	InstallSerializer(marshal func(v interface{}) ([]byte, error), unmarshal func(data []byte, v interface{}) error)
}

Application .

func NewApplication added in v1.0.5

func NewApplication() Application

NewApplication .

type BeforeActivation added in v1.7.1

type BeforeActivation = mvc.BeforeActivation

type Bus added in v1.6.2

type Bus = general.Bus

type BusHandler added in v1.6.2

type BusHandler = general.BusHandler

type Configuration added in v1.6.9

type Configuration = iris.Configuration

func DefaultConfiguration added in v1.6.9

func DefaultConfiguration() Configuration

type Configurer added in v1.6.9

type Configurer interface {
	Configure(obj interface{}, file string, must bool, metaData ...interface{})
}

type Context added in v1.3.0

type Context = iris.Context

type DomainEventInfra added in v1.3.7

type DomainEventInfra = general.DomainEventInfra

type Entity added in v1.3.7

type Entity = general.Entity

type GORMRepository

type GORMRepository = general.GORMRepository

GORMRepository .

type Infra added in v1.3.0

type Infra = general.Infra

Infra .

type Initiator

type Initiator = general.Initiator

Initiator .

type ProxyHandle added in v1.7.3

type ProxyHandle struct {
	// contains filtered or unexported fields
}

func (*ProxyHandle) Call added in v1.7.3

func (aopHandle *ProxyHandle) Call(fun string, args ...interface{}) (result []interface{}, e error)

type QueryBuilder

type QueryBuilder = general.QueryBuilder

QueryBuilder .

type Repository

type Repository = general.Repository

Repository .

type Result added in v1.3.0

type Result = hero.Result

type SingleBoot added in v1.1.9

type SingleBoot = general.SingleBoot

SingleBoot .

type Starter added in v1.6.2

type Starter = general.Starter

type UnitTest added in v1.4.0

type UnitTest = general.UnitTest

func NewUnitTest added in v1.4.0

func NewUnitTest() UnitTest

type Worker added in v1.7.1

type Worker = general.Worker

Worker .

func ToWorker added in v1.7.1

func ToWorker(ctx Context) Worker

Directories

Path Synopsis
example
fshop/adapter/repository
Code generated by 'freedom new-crud'
Code generated by 'freedom new-crud'
fshop/application/object
Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud'
Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud'
infra-example/adapter/repositorys
Code generated by 'freedom new-crud'
Code generated by 'freedom new-crud'
infra-example/application/object
Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud'
Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud' Code generated by 'freedom new-crud'
cmd
infra

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL