资讯专栏INFORMATION COLUMN

ThinkJS 3.0 正式版发布!

suosuopuo / 2906人阅读

摘要:是一款拥抱未来的框架,致力于集成项目最佳实践,规范项目让企业级团队开发变得更加简单,更加高效。中使用更优雅的解决异步问题,这个理念和是完全一致的。同时,提供一套进程之间通信的方式,如通知其他进程执行某个任务,代码在线更新后重启所有的子进程。

ThinkJS 是一款拥抱未来的 Node.js Web 框架,致力于集成项目最佳实践,规范项目让企业级团队开发变得更加简单,更加高效。我们的 Github 地址是:https://github.com/thinkjs/th... 欢迎大家 star~

在 ThinkJS 2.x 发布的时候,虽然我们带来了很多非常棒的功能,但我们也意识到本身的不足。针对这些问题,开发团队经过几个月的紧张开发,我们很高兴的宣布,ThinkJS 迎来了新的大版本 3.0。目前该版本已经在线上多个项目中使用,简单一个命令就可以让你下载使用它:

npm install -g think-cli 
有哪些更新?

正如之前所说,为了解决之前遗留的不足问题我们开发了新版本,下图为我们新版的架构图。

除了引进了新的架构,对框架进行高度解构外,我们还增加了很多新的功能,优化了老版为人诟病的用法,下面就让我们来具体看看有哪些更新吧。

基于 Koa 重构框架架构

相较于之前使用自身集成架构,3.0 最大的改变就是将底层架构基于 Koa 重构。重构之后的 ThinkJS 3.0 版本能完全兼容 Koa 的中间件。使用 Koa 重构主要有下面几个原因:

Koa 现在已经比较稳定,洋葱模型的中间件更能满足多维度的需求,同时中间件生态已经慢慢成熟。这些都是 ThinkJS 之前所不具备的,基于 Koa 后就可以站在巨人的肩膀上,可以做的更好。

Koa 2.0 中使用更优雅的 async/await 解决异步问题,这个理念和 ThinkJS 是完全一致的。借助 Babel 在 ThinkJS 2.x 版本中就可以使用这些 ES next 语法功能。随着 Node 8.x LTS 的即将发布, async/await 被原生支持后我们就可以不用借助 Babel 转译直接在生产环境中使用了。

精简核心,支持扩展和适配器

ThinkJS 2.x 版本内置了很多功能,这些功能基本上是很多项目的最佳实践,但并不一是每个项目都需要这些所有的功能,但基于 2.x 的架构要实现这个需求就非常困难。所以 ThinkJS 3.0 版本基于 Koa 重构后在这块做了精简,不再提供丰富的功能,而是提供一个最基本的核心,然后通过扩展满足更多的需求。

多进程模型

ThinkJS 2.x 单进程是可选配置,且框架设计较为简单,很多功能需要开发者手动处理。我们在 3.0 中开发了 think-cluster 模块直接内置了多进程模型,最大限度的利用多核 CPU 提高响应速度。 同时,提供一套进程之间通信的方式,如::通知其他进程执行某个任务,代码在线更新后重启所有的子进程。

智能的错误提示

Node.js 开发中一个比较头疼的问题就是错误处理问题,遇到问题后查错和定位问题后比较麻烦,尤其是使用了 Babel 转译之后,为此我们专门开发了 think-trace 模块用来跟踪错误问题,能够更加友好的捕捉显示错误堆栈信息。

还有!

除了刚才说的一些功能,我们还有一些其它的更新要告诉大家:

增加 think-crontab 模块,强化框架的定时任务功能

重构日志功能,基于 think-logger3 模块构建框架日志系统

重构框架数据库操作逻辑,增加 think-model, think-mongoose, think-sequelize 模块完善框架数据库操作功能

感谢

最后感谢所有使用 ThinkJS 框架的用户,感谢你们多年来的支持,是你们的存在让我们有了更进一步的勇气。当然还需要感谢所有为 ThinkJS 项目做过贡献的贡献者,包括代码贡献和文档贡献,你们的努力让 ThinkJS 变的越来越棒!如果没时间帮助贡献代码想用其它方式支持我们也可以通过捐赠的方式支持我们,你们的捐赠会用来帮助 ThinkJS 推广。感谢你们所有人,让我们一起拥抱 ThinkJS,期待更美好的未来吧!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85218.html

相关文章

  • ThinkJS 作者李成银:择善而从之,笃行致远

    摘要:非常有幸邀请到李成银老师,进行一期图灵专访。具体工作中,技术能力可能只占了,软素质方面的能力却高达。大数据处理随着大数据处理越来越热门,很多项目都要在前端进行大数据处理和展现。提案可以大大提升在大数据处理方面的性能。 非商业转载请注明作译者、出处,并保留本文的原始链接:http://www.ituring.com.cn/article/260246 李成银,奇虎360前端技术专家,Th...

    alin 评论0 收藏0
  • 使用 vue + thinkjs 开发博客程序记录

    摘要:一入冬懒癌发作,给自己找点事干。之前博客程序写过几次,的写过两次,用写过,随着版本从升级到之前的博客程序也做过升级。这里主要记录一下开发过程中遇到的问题和解决方法。后端使用守护进程即可。 一入冬懒癌发作,给自己找点事干。之前博客程序写过几次,php 的写过两次,nodejs 用 ThinkJS 写过,随着 ThinkJS 版本从1.x 升级到 2.x 之前的博客程序也做过升级。但是因为...

    Mike617 评论0 收藏0
  • Web框架的常用架构模式(JavaScript语言)

    摘要:只能在不同的时候选用不同的假设和不同的理论来解释问题,许来西的文章讲到科学一定程度上通过放弃一贯性换取了实用性,放弃自洽性换取了它洽性。然而遗憾的是本身只提供了模块和洋葱模型的最小封装。 在写干货之前,我想先探(qiang)讨(diao)两个问题,模式的局限性?模式有什么用? 最近看到一篇文章对我启发很大,许来西在知乎的回答《哲学和科学有什么关联?》,全篇较长,这里摘录我要引出的一点:...

    loostudy 评论0 收藏0

发表评论

0条评论

suosuopuo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<