Farseer-Go,一个模块化的完整基础设施框架

开发 架构
基于Golang模块化完整的基础设施框架,创建现代化Web应用和APIs。使用目前最为流行的组件,并用模块化技术来提供这些组件。

概述

  • 文档(国内)[1]
  • 文档(国外)[2]
  • 开源(Github)[3]

什么是farseer-go

基于Golang模块化完整的基础设施框架,创建现代化Web应用和APIs。

使用目前最为流行的组件,并用模块化技术来提供这些组件。

框架完美支持 DDD领域驱动​ 的战术设计,如仓储资源库、应用层事务、领域事件、应用层动态WebAPI。

它有一个.net core[4] 成熟版本,已经使用了10多年,非常棒

不用担心框架会让你依赖过多的包,farseer-go的组件都是独立的包,不使用的包不会下载到您的应用程序中

每个组件都是单独的包,因此版本号也是单独发布的

有什么特点?

  • 统一配置​:所有的配置被整合到./farseer.yaml
  • 优雅:所有的模块都遵循开发者体验优先为原则。
  • 模块化:供了完整的模块化系统,使你能够开发可重复使用的应用程序模块。
  • 领域驱动:帮助你实现基于DDD的分层架构并构建可维护的代码库。
  • 链路追踪(下个版本推出):如果您使用框架中的Orm、Redis、Http、Grpc、ES、MQ、EventBus、Task、FSS,将隐式为您实现链路追踪,并提供API请求日志、慢查询。

结合FOPS[5] 项目(自动构建、链路追踪控制台、K8S集群日志收集)支持代码无侵入的全链路实时监控。

集成的组件

包名

描述

地址

fs

基础核心包

​https://github.com/farseer-go/fs​

collections

数据集合

​https://github.com/farseer-go/collections​

webapi

web api服务

​https://github.com/farseer-go/webapi​

async

异步编程

​https://github.com/farseer-go/async​

mapper

对象转换

​https://github.com/farseer-go/mapper​

cacheMemory

本地缓存

​https://github.com/farseer-go/cacheMemory​

redis

client

​https://github.com/farseer-go/redis​

data

数据库ORM

​https://github.com/farseer-go/data​

elasticSearch

client

​https://github.com/farseer-go/elasticSearch​

eventBus

事件总线

​https://github.com/farseer-go/eventBus​

queue

本地队列

​https://github.com/farseer-go/queue​

tasks

本地任务

​https://github.com/farseer-go/tasks​

fss

分布试调度client

​https://github.com/farseer-go/fss​

utils

工具集

​https://github.com/farseer-go/utils​

如何开始

main.go

package main
import "github.com/farseer-go/fs"

func main() {
fs.Initialize[StartupModule]("your project Name")
}

在main函数第一行,执行fs.Initialize,开始初始化框架

运行后控制台打印加载信息:

2022-12-01 17:07:24 应用名称:your project Name
2022-12-01 17:07:24 主机名称:MacBook-Pro.local
2022-12-01 17:07:24 系统时间:2022-12-01 17:07:24
2022-12-01 17:07:24 进程ID:6123
2022-12-01 17:07:24 应用ID:193337022963818496
2022-12-01 17:07:24 应用IP:192.168.1.4
2022-12-01 17:07:24 ---------------------------------------
2022-12-01 17:07:24 加载模块...
2022-12-01 17:07:24 加载模块:webapi.Module
2022-12-01 17:07:24 加载模块:domain.Module
2022-12-01 17:07:24 加载模块:application.Module
2022-12-01 17:07:24 加载模块:interfaces.Module
2022-12-01 17:07:24 加载模块:data.Module
2022-12-01 17:07:24 加载模块:eventBus.Module
2022-12-01 17:07:24 加载模块:queue.Module
2022-12-01 17:07:24 加载模块:infrastructure.Module
2022-12-01 17:07:24 加载模块:main.StartupModule
2022-12-01 17:07:24 加载完毕,共加载 10 个模块
2022-12-01 17:07:24 ---------------------------------------
2022-12-01 17:07:24 初始化完毕,共耗时:1 ms
2022-12-01 17:07:24 ---------------------------------------
2022-12-01 17:07:24 [Info] Web服务已启动:http://localhost:8888/

参考资料

[1]文档(国内): https://farseer-go.gitee.io/

[2]文档(国外): https://farseer-go.github.io/doc/

[3]开源(Github): https://github.com/farseer-go/fs

[4].net core: https://github.com/FarseerNet/Farseer.Net/

[5]FOPS: https://github.com/FarseerNet/FOPS

本文转载自微信公众号「 程序员升级打怪之旅」,作者「王中阳Go」,可以通过以下二维码关注。

转载本文请联系「 程序员升级打怪之旅」公众号。

责任编辑:武晓燕 来源: 程序员升职加薪之旅
相关推荐

2018-12-05 09:00:46

DevOps持续交付持续集成

2021-11-11 09:00:00

IaC工具自动化

2021-05-12 10:52:06

云原生K3S命令

2013-07-25 10:06:20

云就绪分布式存储

2022-02-10 11:54:34

即时基础设施基础设施数字化转型

2016-12-01 14:09:59

2021-06-06 22:36:45

网络基础设施网络技术

2021-04-06 10:19:36

Go语言基础技术

2017-11-27 07:43:37

数字化交付基础设施IT

2021-01-28 10:28:33

云计算基础设施自动化IT

2022-06-15 11:01:24

云计算自动化IT

2020-12-25 07:28:13

GitOpsDevOps云基础架构

2022-01-17 13:34:30

Commvault

2009-12-18 16:56:42

管理VMware虚拟化

2009-07-15 19:23:29

VMware虚拟化Windows

2022-02-23 12:21:09

自动化云计算基础设施

2012-09-12 16:54:32

基础设施虚拟化云计算服务器虚拟机

2019-01-02 11:34:33

数字化企业转型互联网

2010-03-24 08:34:44

OSGiJava模块化

2019-02-11 14:35:59

Linux硬件监控工具命令
点赞
收藏

51CTO技术栈公众号