freedom

package module
v1.8.6 Latest Latest
Warning

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

Go to latest
Published: Nov 15, 2020 License: Apache-2.0 Imports: 9 Imported by: 8

README

Freedom DDD Framework

License Go Report Card Build Status GoDoc GitHub release

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

Overview

  • 集成Iris v12
  • 集成普罗米修斯
  • 无侵入式Trace
  • 基于组件式的 Infrastructure
  • HTTP/H2C Server & Client
  • 依赖注入 & 依赖倒置
  • CRUD & PO Generate
  • DDD & 六边形架构
  • 领域事件 & MQ组件
  • CQS & 聚合根
  • 一级缓存 & 二级缓存 & 防击穿

安装

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

脚手架创建项目

$ freedom new-project [project-name]

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

# freedom new-po -h 查看更多
$ cd [project-name]

# 数据库数据源方式
$ freedom new-po --dsn "root:123123@tcp(127.0.0.1:3306)/freedom?charset=utf8"

# JSON 数据源方式
$ freedom new-po --json ./domain/po/shcema.json

Example

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ProfileENV = "FREEDOM_PROJECT_CONFIG"

ProfileENV The name of the environment variable for the profile directory

Functions

func Configure added in v0.0.3

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

Configure .

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)
	NewRunner(addr string, configurators ...host.Configurator) iris.Runner
	NewH2CRunner(addr string, configurators ...host.Configurator) iris.Runner
	NewAutoTLSRunner(addr string, domain string, email string, configurators ...host.Configurator) iris.Runner
	NewTLSRunner(addr string, certFile, keyFile string, configurators ...host.Configurator) iris.Runner
	CreateRunner(addr string, configurators ...host.Configurator) iris.Runner //become invalid after a specified date.
	Iris() *iris.Application
	Logger() *golog.Logger
	Run(serve iris.Runner, c iris.Configuration)
	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, metaData ...interface{}) error
}

Configurer .

type Context added in v1.3.0

type Context = iris.Context

Context is the context type.

type DomainEvent added in v1.8.6

type DomainEvent = internal.DomainEvent

DomainEvent .

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 command
Package main code generated by 'freedom new-project base'
Package main code generated by 'freedom new-project base'
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 command
Code generated by 'freedom new-project fshop'
Code generated by 'freedom new-project fshop'
http2/server command
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'
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 command
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