freedom

package module
v1.8.2 Latest Latest
Warning

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

Go to latest
Published: Sep 12, 2020 License: Apache-2.0 Imports: 11 Imported by: 8

README

freedom

License Go Report Card Build Status GoDoc

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

Overview

  • 集成iris v12
  • 集成普罗米修斯
  • 无侵入式Trace
  • 基于组件式的基础设施扩展
  • http2 server & client
  • 依赖注入 & 依赖倒置
  • CRUD & PO 代码生成
  • DDD & 六边形架构
  • 消息事件 & 事件重试 & 领域事件
  • 一级缓存 & 二级缓存 & 防击穿

安装

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

脚手架创建项目

$ freedom new-project [project-name]

脚手架生成增删查改和持久化对象

# 编辑 [project-name]/server/conf/db.toml 填入数据库地址
# freedom new-po -h 查看更多
$ cd [project-name]
$ freedom new-po

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 HandleBusMiddleware added in v1.7.4

func HandleBusMiddleware(worker Worker)

HandleBusMiddleware middleware processing.

func Logger

func Logger() *golog.Logger

Logger .

func Prepare added in v1.6.2

func Prepare(f func(Initiator))

Prepare .

func Prometheus added in v1.5.5

func Prometheus() *internal.Prometheus

Prometheus .

func SetConfigurer added in v1.6.9

func SetConfigurer(confer Configurer)

SetConfigurer .

Types

type Application

type Application interface {
	InstallDB(f func() (db interface{}))
	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)
	CallService(fun interface{}, worker ...Worker)
}

Application .

func NewApplication added in v1.0.5

func NewApplication() Application

NewApplication .

type BeforeActivation added in v1.7.1

type BeforeActivation = mvc.BeforeActivation

BeforeActivation is Is the start-up pre-processing of the action..

type Bus added in v1.6.2

type Bus = internal.Bus

Bus is the bus message type.

type BusHandler added in v1.6.2

type BusHandler = internal.BusHandler

BusHandler is the bus message middleware type.

type Configuration added in v1.6.9

type Configuration = iris.Configuration

Configuration is the configuration type of the app.

func DefaultConfiguration added in v1.6.9

func DefaultConfiguration() Configuration

DefaultConfiguration the default profile.

type Configurer added in v1.6.9

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

Configurer .

type Context added in v1.3.0

type Context = iris.Context

Context is the context type.

type DomainEventInfra added in v1.3.7

type DomainEventInfra = internal.DomainEventInfra

DomainEventInfra is a dependency inverted interface for domain events.

type Entity added in v1.3.7

type Entity = internal.Entity

Entity is the entity's father interface.

type Infra added in v1.3.0

type Infra = internal.Infra

Infra .

type Initiator

type Initiator = internal.Initiator

Initiator .

type LogFields added in v1.7.16

type LogFields = golog.Fields

LogFields is the column type of the log.

type LogRow added in v1.7.16

type LogRow = golog.Log

LogRow is the log per line callback.

type Repository

type Repository = internal.Repository

Repository .

type Result added in v1.3.0

type Result = hero.Result

Result is the controller return type.

type SingleBoot added in v1.1.9

type SingleBoot = internal.SingleBoot

SingleBoot .

type Starter added in v1.6.2

type Starter = internal.Starter

Starter is the startup interface.

type UnitTest added in v1.4.0

type UnitTest = internal.UnitTest

UnitTest is a unit test tool.

func NewUnitTest added in v1.4.0

func NewUnitTest() UnitTest

NewUnitTest .

type Worker added in v1.7.1

type Worker = internal.Worker

Worker .

func ToWorker added in v1.7.1

func ToWorker(ctx Context) Worker

ToWorker the context is converted to a worker.

Directories

Path Synopsis
example
base/adapter/repository
Package repository code generated by 'freedom new-project base' Package repository code generated by 'freedom new-project base'
Package repository code generated by 'freedom new-project base' Package repository code generated by 'freedom new-project base'
base/domain
Package domain generated by 'freedom new-project base'
Package domain generated by 'freedom new-project base'
base/domain/dto
Package dto generated by 'freedom new-project base'
Package dto generated by 'freedom new-project base'
base/domain/po
Package po generated by 'freedom new-project base'
Package po generated by 'freedom new-project base'
base/infra
Package infra generated by 'freedom new-project base' Package infra generated by 'freedom new-project base'
Package infra generated by 'freedom new-project base' Package infra generated by 'freedom new-project base'
base/server
Package main code generated by 'freedom new-project base'
Package main code generated by 'freedom new-project base'
event-example/server
Code generated by 'freedom new-project event-example'
Code generated by 'freedom new-project event-example'
fshop/domain/po
Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po'
Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po'
fshop/infra
Package infra code generated by 'freedom new-project base' Package infra code generated by 'freedom new-project base'
Package infra code generated by 'freedom new-project base' Package infra code generated by 'freedom new-project base'
fshop/server
Code generated by 'freedom new-project fshop'
Code generated by 'freedom new-project fshop'
infra-example/domain/dto
Package dto code generated by 'freedom new-project infra-example'
Package dto code generated by 'freedom new-project infra-example'
infra-example/domain/po
Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po'
Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po' Package po generated by 'freedom new-po'
infra-example/infra
Package infra code generated by 'freedom new-project base' Package infra code generated by 'freedom new-project base'
Package infra code generated by 'freedom new-project base' Package infra code generated by 'freedom new-project base'
infra-example/server
Code generated by 'freedom new-project infra-example'
Code generated by 'freedom new-project infra-example'
infra-example/server/conf
Code generated by 'freedom new-project infra-example'
Code generated by 'freedom new-project infra-example'
cmd
infra

Jump to

Keyboard shortcuts

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