Lessgo v0.7.0 发布,性能与稳定性全面提升

henrylee2cn
 henrylee2cn
发布于 2016年06月01日
收藏 79

Lessgo v0.7.0 发布了,Lessgo是一款Go语言开发的简单、稳定、高效、灵活的 web开发框架。它的项目组织形式经过精心设计,实现前后端分离、系统与业务分离,完美兼容MVC与MVVC等多种开发模式,非常利于企业级应用与API接口的开发。当然,最值得关注的是它突破性支持运行时路由重建,开发者可在Admin后台轻松配置路由,并实现启用/禁用模块或操作、添加/移除中间件等!同时,它以ApiHandler与ApiMiddleware为项目基本组成单元,可实现编译期或运行时的自由搭配组合,也令开发变得更加灵活富有趣味性。



lessgo v0.7版对框架内部做出大量更新与优化,降低gc时间与内存占用,显著提升了性能与稳定性:

一、Context相关更新:

1. 移除Context接口封装并精简多个字段;
2. 移除Request结构体二次封装;
3. 优化Bind,增加bindForm()对ptr和struct类型的安全判断;
4. 优化文件缓存功能;
5. Context.JSONMsg()和Context.JSONPMsg()在参数info为nil时,输出的json忽略info字段。

二、路由更新:
1. 路由改用知名的httprouter,提升路由稳定性(性能与原来的echo路由保持相当水平);
2. 虚拟路由信息改用配置文件存储,不依赖数据库更加便携;
3. 路由URL按照字母排序,在swagger自动API文档中呈现时更清晰整洁;
4. 系统预注册的路由信息均统一采用和项目中一致的方法注册,便于统一管理与维护;
5. 新增支持自由注册静态路由。

三、操作与中间件更新:
1. ApiHandler.Method支持 "GET|POST" 或 "GET POST" 形式的多方法注册,当发生冲突时 WS > GET > *
2. ApiHandler和ApiMiddleware统一只保留Reg()方法用于注册自身
3. ApiMiddleware完美支持参数动态配置

四、扩展包更新:
1. lessgoext扩展包增加uuid、barcode(生成各种条码)、otp(TOTP/HOTP);
2. 将cache、token算法、dbservice以及一些通用工具均移至lessgoext扩展包;
3. 其中dbservice同时支持xorm和gorm两种流行的数据库通用引擎。

五、其他优化更新:
1. 调整项目组织目录,model模块与handler分离,文件名采用全小写;
2. 框架内部凡涉及string与[]bytes类型互转的代码,尽量采用底层指针转换的方式进行,转换效率提升百倍以上;
3. 允许配置文件中log::asyncchan配置为0;4. 精简代码,提高代码可读性。

当前版本特色:

  • 使用简单、运行稳定高效(核心架构来自对echo真正意义的二次开发)

  • 兼容流行系统模式如:MVC、MVVC、Restful...

  • httprouter真实路由配合强大的虚拟路由层,不仅性能优秀更可同时支持在源码或admin中动态配置

  • 多异构数据库支持,且用户可以选择xorm或者gorm两种引擎(当然愿意,用户还可以同时使用两种引擎)

  • 优化的项目目录组织最佳实践,满足复杂企业应用需要

  • 集成统一的系统日志(system、database独立完整的日志)

  • 提供Session管理(优化beego框架中的session包)

  • 强大的前端模板渲染引擎(pongo2)

  • 天生支持运行时可更新的API测试网页(swagger2.0)

  • 配置文件自动补填默认值,并按字母排序

  • 支持热编译

  • 支持热升级

  • 另外灵活的扩展包中还包含HOTP、TOTP、UUID以及各种条码生成工具等常用工具包

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Lessgo v0.7.0 发布,性能与稳定性全面提升
加载中

最新评论(12

s
sky3380
good work
逝水巟言
逝水巟言
mark
thanatosx
thanatosx
……
_xwc520
_xwc520
33
LarryYan
LarryYan

引用来自“xiaolei123”的评论

看到gc我就没兴趣了111

引用来自“henrylee2cn”的评论

无语了,你用c写web的吗?golang自带gc好不好

引用来自“jackchanxj”的评论

他们一定是用c/c++撸web的
好屌,大神请收下我的膝盖
jackchanxj
jackchanxj

引用来自“xiaolei123”的评论

看到gc我就没兴趣了111

引用来自“henrylee2cn”的评论

无语了,你用c写web的吗?golang自带gc好不好
他们一定是用c/c++撸web的
xiaolei123
xiaolei123

引用来自“xiaolei123”的评论

看到gc我就没兴趣了111

引用来自“henrylee2cn”的评论

无语了,你用c写web的吗?golang自带gc好不好
别bb
henrylee2cn
henrylee2cn

引用来自“xiaolei123”的评论

看到gc我就没兴趣了111
无语了,你用c写web的吗?golang自带gc好不好
j
jirodobiw
gc
xiaolei123
xiaolei123
看到gc我就没兴趣了111
返回顶部
顶部