farseer-go团队发布v0.7.0版本

147 阅读5分钟

farseer-go是基于Golang模块化完整的基础设施框架,创建现代化Web应用APIs

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

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

距离上一次v0.6.0版本,经历51天,今天终于发布v0.7.0版本啦。这次发布更新的内容比较多

farseer-gov0.7.0 by 2023.03.03

fs              v0.6.0 -> v0.7.0 / 2023.03.03
collections     v0.3.0 -> v0.4.0 / 2023.03.03
mapper          v0.2.0 ->
cache           v0.1.1 -> v0.2.0 / 2023.03.03
cacheMemory     v0.1.0 -> v0.2.0 / 2023.03.03
redis           v0.1.0 -> v0.2.0 / 2023.03.03
data            v0.1.1 -> v0.2.0 / 2023.03.03
eventBus        v0.1.0 -> v0.2.0 / 2023.03.03
queue           v0.1.0 -> v0.2.0 / 2023.03.03
tasks           v0.1.1 -> v0.2.0 / 2023.03.03
utils           v0.2.0 -> v0.3.0 / 2023.03.03
webapi          v0.2.0 -> v0.3.0 / 2023.03.03
etcd            v0.1.0 -> 
rabbit          v0.1.0 -> v0.2.0 / 2023.03.03
fShedule        v0.0.0 -> v0.1.0 / 2023.03.03
async           v0.1.0-alpha ->
elasticSearch   v0.1.0-alpha -> 

本新迭代新增了fShedule模块,是调度中心2.0的客户端。感兴趣的可以看官方文档

同时FShedule调度中心2.0完整使用了farseer-gov0.7.0github开源,也可以帮助大家更好理解farseer-go的使用。

fs v0.7.0 / 2023.03.03

  1. 新增:IsDtoModelIgnoreInterface函数
  2. 新增:事件通用接口
  3. 新增:container.ResolveIns将现有中实例内的字段做注入操作
  4. 新增:日志等级判断
  5. 新增:增加毫秒打印
  6. 新增:时间轮算法
  7. 新增:控制台颜色打印输出
  8. 新增:GetSubNodes增加对环境变量的支持
  9. 新增:ResolveAll从容器中获取所有实例
  10. 新增:健康检查,不通过则直接退出应用
  11. 调整:flog.panic,err非nil时才执行
  12. 调整:配置设置默认值时,增加GetSubNodes读取
  13. 调整:将事件参数移到fs模块
  14. 调整:订阅函数统一到fs模块
  15. 调整:打印日志,取消使用chan
  16. 调整:框架启动回调,增加标题
  17. 调整:error日志增加源文件、行号输出
  18. 调整:日志输出格式
  19. 修复:types.GetRealType获了取真实类型时,需判断值是否为nil
  20. 修复:容器增加读写锁,解决并发读写问题

collections v0.4.0 / 2023.03.03

  1. 新增:List集合增加AddRange方法
  2. 新增:ReadonlyDictionary对象
  3. 调整:序列化实现
  4. 修复:json反序列时,lock为nil的问题
  5. 修复:判断是否为空时,同时判断锁是否初始化过

cache v0.2.0 / 2023.03.03

  1. 增加:设置定义将缓存定时同步
  2. 调整:抽象出ICacheManager接口,并注册到容器中
  3. 调整:重新设计缓存模块
  4. 调整:注册缓存时,增加ICacheManage返回值
  5. 调整:修改cacheId为any类型

cacheMemory v0.2.0 / 2023.03.03

  1. 调整:抽象出ICacheManager接口,并注册到容器中
  2. 调整:增加Lock锁
  3. 调整:重新设计缓存模块
  4. 调整:SetProfiles函数返回cache.ICacheManage[TEntity]类型
  5. 调整:EnableItemNullToLoadALl重命名为EnableItemNullToLoadAll
  6. 调整:time.After方式,避免内存泄露

redis v0.2.0 / 2023.03.03

  1. 新增:订阅功能
  2. 新增:RegisterEvent函数,可以通过core.IEvent接口获取
  3. 新增:获取原生的客户端
  4. 新增:Redis健康检查
  5. 新增:选举功能
  6. 调整:cache缓存
  7. 调整:SetProfiles增加增加ICacheManage返回值
  8. 调整:configure.ParseConfig -> configure.ParseString函数名称
  9. 调整:ToEntity增加exists返回值
  10. 调整:Redis使用方式,改为redis.IClient接口方式使用
  11. 调整:time.After方式,避免内存泄露
  12. 调整:修改cacheId为any类型
  13. 调整:统一使用fs.Context

data v0.2.0 / 2023.03.03

  1. 新增:UpdateOrInsert方法
  2. 新增:批量写入
  3. 新增:数据库健康检查
  4. 新增:自动创建表功能
  5. 调整:configure.ParseConfig -> configure.ParseString函数名称
  6. 调整:time.After方式,避免内存泄露
  7. 调整:异常时,不使用panic
  8. 调整:数据找不到时,不提示
  9. 调整:日志输出格式
  10. 调整:空闲连接数为最大连接的1/3
  11. 调整:重写数据库open逻辑

eventBus v0.2.0 / 2023.03.03

  1. 新增:RegisterEvent函数,可以通过core.IEvent接口获取
  2. 调整:PublishEvent、PublishEventAsync 增加error返回
  3. 调整:增加try以避免事件函数出现panic异常。
  4. 调整:事件注册到core.IEvent接口,与redis共用一个接口。

queue v0.2.0 / 2023.03.03

  1. 新增:读写锁防止并发读写问题

tasks v0.2.0 / 2023.03.03

  1. 优化代码

utils v0.3.0 / 2023.03.03

  1. 调整:httpRequest增加statusCode返回
  2. 调整:httpRequest取消打印错误消息
  3. 调整:httpRequest取消重试
  4. 调整:httpRequest自动转换[]byte
  5. 调整:修改http错误时的说明文字
  6. 调整:exec/shell ctx 默认第一个参数
  7. 修复:httpRequest x-www-form-urlencoded错误的body组装
  8. 修复:有可能导致panic

webapi v0.3.0 / 2023.03.03

  1. 新增:增加https的支持
  2. 新增:DTO模式下的json Tag自定义字段名称
  3. 新增:对外使用http包的Request和Response
  4. 新增:minimalApi入参为dto模式时,支持interface注入
  5. 新增:开启pprof功能
  6. 新增:实现多开实例
  7. 新增:实现API函数自动容器注入
  8. 调整:invoke接口用时
  9. 调整:构造Action入的函数名为BuildActionInValue
  10. 调整:注册失败时os.exit改为panic
  11. 调整:Run函数取地址不再判断第一个参数是否为空
  12. 调整:改为使用自定义ServeMux对象
  13. 调整:移除init方法
  14. 调整:httpContext.Header改为只读字典类型
  15. 调整:BodyString赋值,交由callResult处理
  16. 调整:Method支持多个类型,用|分隔,如(POST|GET|PUT|DELETE)
  17. 调整:修改HttpRequest字段命名
  18. 优化:优化中间件初始化过程,大幅提升每次API请求的性能。
  19. 优化:提前确定基础类型,减少运行时判断
  20. 修复:异常时,无法转换exp为string的错误
  21. 修复:routing中间件未过滤OPTIONS引起CORS失败的问题

rabbit v0.2.0 / 2023.03.03

  1. 调整:time.After方式,避免内存泄露
  2. 修复:日志格式错误