2015-05-26 13:18:45 +08:00
..
2015-05-26 13:18:45 +08:00
2015-05-21 20:49:05 +08:00

文档

详细文档请见 http://thinkjs.org/doc.html

2.0需要改进的功能

强化websocket封装socket.io, sockjs等几种常用的websocket库

1.x的websocket是基于websocket-driver模块来实现的没有对应的浏览器端js库有些用户可能不习惯。他们还是想直接用成熟的socket.io之类的库。

可以针对这些库做个adapter支持。

强化ORM, 支持mysql, mongodb等多种数据库

可以考虑使用一个第三方的orm库

强化Rest

1.x里支持rest需要在route.js里添加配置不太友好。

可以根据识别哪些controller是继承rest.js来判断

完善单元测试官网文档。多写DEMO

一定要多写demo

文档改版支持单一页面查看方式。更改文档书写格式分为使用和开发2种

支持generator function

thinkjs代码里使用任何的generator代码但需要支持项目里的generator代码。

调用项目里的方法或者函数时,通过下面的方式包装:

var appFn = function*(){}
var fn = think.co.wrap(appFn);
fn(arg1, arg2).then(function(data){
    
})
//如果appFn是一个类的方法则需要重新bind this
fn.bind(instance)(arg1, arg2).then(function(data){
    
})
//或者通过call也可以
var fn = think.co.wrap.call(instance, appFn);

去除全局变量

已经去除但thinkit模块下的方法是否写如到全局变量中可以通过一个配置来判断。

服务启动时自动安装缺少的依赖库

有些依赖的模块并不在依赖列表里这样可以减少安装thinkjs所花的时间。但如果用户改了配置后在服务启动时需要自动安装依赖模块

支持国际化

添加common/config/local/en.js配置各个模块下是否需要支持这样的配置

考虑移动端的支持方式换module?

可以加个middleware通过配置自动更换module

对1.x系统的兼容方案

主要是全局变量和一些接口调用的问题

tag -> hook, behavior -> middleware, driver -> adapter

将tag修改为hook, 并提供think.hook 和 this.hook方法

behavior改为middleware使用middleware容易被接受

driver改为adapter

think.config, this.config

支持模块下有独立的config文件主要是让不同模块下可以自动调用不同的config。所以的配置在服务启动时直接读到内存中避免用户请求时在产生文件io。

打包支持, grunt gulp

提供一套给grunt或者gulp的打包配置方便外面的用户使用

权限认证

1.x里有auth.js需要对其完善并且可以支持其他类型的权限认证。

添加一个adapter

增加文件名检测机制

windows和mac文件名不区分大小写但linux区分。需要增加文件名大小检测的机制。

避免上线后才出现文件找不到的情况。

logic

增加参数默认值的通用处理

命令行模式下Model执行完后数据库连接自动关闭

2.0开发规范

  • 缩进使用2个空格文件顶部添加use strict
  • 文件名全部使用小写和下划线
  • 所有代码都要写单元测试
  • 所有注释必须使用英文
  • 完全基于ES6来开发