V 1.0.26 2020-08-11

1.增加项目上线后,运维监控方案文档,终于,本项目从开发到上线运维形成了闭环。

V 1.0.25 2020-07-31

1.增加在线演示系统 ,V1.0 基本完成开发,后续将继续优化、深度开发相关功能,更好的测试 GoSkeleton 综合性能指标。

V 1.0.24 2020-07-23

1.Websocket 完善更多错误捕获,增加写入超时配置参数。

V 1.0.23 2020-07-16

1.SQL 场景继续增强,将预编译命令独立,主要解决大批量sql重复执行,导致预编译sql太多,mysql拒绝继续执行命令的错误。 2.封装了事务操作,补充相关的 sql单元测试 .

V 1.0.22 2020-07-09

  1. redis 增加单元测试示例,并修复配置文件一处bug。

2.调整程序异常log打印方式,由 log.Panic 调整为 log.Println , 代码出错尽量不退出程序。

V 1.0.21 2020-06-23

1.goCurl 包版本更新,采集不同编码类型的简体中文网站时,更加友好。

V 1.0.20 2020-06-08

1.增加 AOP 面向切面编程功能,简洁高效地实现控制器相关函数的BeforeAfter 回调。 2.本项目骨架实现 Aop 通过匿名函数+巧妙的回调模拟实现,非常轻巧。 3.增加项目骨架启动时,检查程序依赖的必须目录、文件,主要有:config/config.yaml、Public、Storage/logs/

V 1.0.19 2020-06-05

1.增加函数级别的发布、订阅功能,该模式主要将与主业务有弱关联关系的一组子业务进行了简单解耦。备注:如果只是一个子业务需要异步,没有必要用这种方法。 2.增加 nginxsupervisor 部署相关的文档。

V 1.0.18 2020-06-03

1.jwt增强,控制一个账号、密码同时能拥有有效的token数量,以便支持一个账号多人登录。 2.详细配置参见 app\global\consts\consts.go,JWT部分。 3.token部分与tb_users逻辑交互代码更新,主要有登录生成token、刷新token、用户更改密码,重置相关的token使之失效,用户删除数据,同步删除相关的token表数据。 4.dataBase\db_demo_mysql.sql同步更新,增加tb_oauth_access_tokens表,数据库必须及时更新此表。 5.特别提醒httpClient包的引用地址发生变更,主要为了解决和原库命名冲突,如果下载的项目骨架报错,请更新代码重新运行。

V 1.0.17 2020-05-28

  1. rabbitmq本次更新主要解决消费者端在阻塞状态处理消息时可能发生断网、服务端重启导致客户端掉线的情况。

2.增强了消费者端断线自动重连逻辑,增强程序自身的稳定性,增加错误回调函数。 3.针对消息队列编写了全量的单元测试.

V 1.0.16 2020-05-25

1.Cli命令模式包(Cobra)集成完成,可以创建非常强大的非http接口类服务。

V 1.0.15 2020-05-23

1.消息队列rabbitmq开发完成,为了更好的使用rabbitmq我们编写了非常详细的使用指南,可以快速上手使用消息队列。

V 1.0.14 2020-05-13

1.修复bug:表单参数验证器在一次请求之后没有及时释放上次请求相关的属性值。

V 1.0.13 2020-05-12

1.增加 goCurl ,基于goz改造,感谢goz(github.com/idoubi/goz.git)原作者提供了大量的基础代码,相比原版特色如下: 1.1 增加了文件下载功能,支持超大文件下载。 1.2 GetBody()返回值由原版本中的string格式数据调整为io.ReaderCloser ,将专门负责处理流式数据,因此代码逻辑处理完毕,必须使用io.ReaderCloser 接口提供的Close()函数手动关闭。 1.3 原版本的GetBody()被现有版本GetContents()代替,由于是文本数据,一次性返回,程序会自动关闭相关io资源。 1.4 删除、简化了原版本中为数据类型转换而定义的ResponseBody,本版本中使用系统系统默认的数据类型转换即可。 1.5 增强原版本中表单参数只能传递string、[]string的问题,该版本支持数字、文本、[]string等。 1.6 增加请求时浏览器自带的Headers默认参数,完全模拟浏览器发送数据。 1.7 增加被请求的网站数据编码自动转换功能,采集网站时不需要考虑对方站点的编码类型(gbk系列、utf8),全程自动转换。

V 1.0.12 2020-05-08

1.根据大家反馈,按照golang 项目标准布局梳理项目组织结构,相比原来结构稍显复杂,但是当项目业务较大时,这种布局会更加灵活。 2.入口文件位置调整:Cmd/Web/Main.go,建议用于后台管理类站点使用;Cmd/Api/Main.go,建议用于门户网站类站点使用; 3.相关文档随着项目结构调整同步更新。

V 1.0.11 2020-04-30

1.SqlServerMysql驱动初始化代码相似度比较高,因此进行了优化合并。 2.SqlServerMysql操作基类进一步完善,规范日志记录。

  1. 增加项目骨架使用文档。

V 1.0.10 2020-04-29

1.websocket功能开发完成,特色如下: 1.1 屏蔽底层繁琐的基础设置,使用超级简单,对于开发者只需要关注OnOpenOnMessageOnErrorOnClose 事件即可。 1.2 严格按照websocket协议实现,服务器、浏览器自动隐式维护心跳,开发者只需要关注业务的核心数据交互,无需额外维护任何形式的心跳数据包。 1.3 websocket服务模块默认不开启,若有需要请在配置文件config/config.yaml 中开启。 2 SqlServer数据库驱动以及相关Api封装完成,像其他数据库一样具有完善的连接池,无感知调用。

V 1.0.09 2020-04-25

1.增加用户token刷新接口,精简刷新逻辑代码。 2.完善用户密码加密存储方式,同步更新dataBase/db_demo_mysql.sql文件。

V 1.0.08 2020-04-24

1.增加SnowFlake算法,用于全局生成唯一ID,便于业务使用。 2.封装MD5函数,方便快速调用。 3.文件上传公共模块完善,存储文件自动使用SnowFlake、MD5算法生成全局唯一名称存储。

V 1.0.07 2020-04-23

1.自定义错误常量包名调整:Errors——>MyErrors,避免和系统错误包名称混淆。 2.文件上传公共模块示例代码完善。 3.路由增加静态资源处理以及相关说明。 4.验证器示例代码进一步简洁清晰化、同时增加了最常用的注释说明(参见:app\http\validator\users\register.go)。

V 1.0.06 2020-04-22

1.完善文件上传公共模块,增加文件上传最大值限制,允许的文件mimetype类型设置。 2.文件上传验证器同步增加验证条件相关的代码、全部错误代码、提示消息、yaml配置项等。 3.验证器初始化加载顺序由原来的验证器调用时加载调整为程序启动时加载。 4.增加跨域,默认开启,该功能与 nginx 跨域二选一。

V 1.0.05 2020-04-20

1.增加json统一返回逻辑。 2.用户模块核心逻辑全部完成(注册、登录、token授权、token认证、CURD等操作)。 3.全局常量增加CURD常用的列表。 4.增加Service层逻辑,并提供相关的示例代码。 5.继续精简代码,使本项目骨架逻辑主线更加清晰,快速上手。 6.更新本项目所必须的数据库db_demo_mysql.sql文件。 7.精简代码,基本的业务操作只保留tb_users表的完整操作示例代码。 8.增加文件上传公共模块,供任何有需要上传文件的业务模块调用。 9.日志存储路径调整为全局变量统一定义。

V 1.0.04 2020-04-19

1.路由——>中间件——>表单验证器——>控制器 上下文数据一致性开发完成。 2.验证器结构调整,将业务部分和系统核心部分分离,开发者只需更多关注业务即可。 3.增加项目骨架所需的demo数据库。

V 1.0.03 2020-04-17

1.增加linux环境chan signal监听信号值,使程序在退出时,更加优雅,资源的释放更加完善。

V 1.0.02 2020-04-16

1.容器、事件注册器调整命名规范,增加模糊处理函数。

V 1.0.01 2020-04-15

1.增加容器,将一些比较繁琐的功能模块率先注册在容器,方便后续调用。 2.表单参数验证器首先注册在容器,避免在路由模块不停地引入表单验证器造成该文件过于庞大。 3.函数类事件精简代码,删除原有的一个键对应多个事件的逻辑,目前设置为键值一一对应关系。 4.Mysql、Redis数据库连接的释放统一注册在函数事件管理器,由程序退出时统一释放。 5.容器存储变量修改为sync.map,避免了并发情况下发生bug。

V 1.0.00 2020-04-14

1.基于gin框架的web项目骨架. 2.开发单体应用基本的功能模块全部已经封装完毕.