前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >farseer-go,一个模块化的完整基础设施框架

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

作者头像
王中阳Go
发布2023-01-08 14:14:24
3320
发布2023-01-08 14:14:24
举报
文章被收录于专栏:Go语言学习专栏Go语言学习专栏

概述

  • 文档(国内)[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

代码语言:javascript
复制
package main
import "github.com/farseer-go/fs"

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

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

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

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员升级打怪之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
    • 什么是farseer-go
      • 有什么特点?
        • 集成的组件
          • 如何开始
            • 参考资料
        相关产品与服务
        云数据库 Redis
        腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档