Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

一个只关注C端的快速原型化Node.js框架--vig #60

Open
calidion opened this issue Dec 6, 2016 · 0 comments
Open

一个只关注C端的快速原型化Node.js框架--vig #60

calidion opened this issue Dec 6, 2016 · 0 comments

Comments

@calidion
Copy link
Owner

calidion commented Dec 6, 2016

为什么会有vig框架

大部分情况下,人们都会比较热衷于全面的MVC框架,这本身是没有错的。但是过于关注MVC的结果就是框架能解决的事情会变的非常的有限。就连Web业务最基本的业务的问题通常都是没有办法解决好。有些框架,比如meteor与sailsjs,解决了很多的Web业务问题,但是他们特别重,就相当于一个黑洞,让你一进去就无法再出来。
vig框架作者本身也是sailsjs的用户,sailsjs提供了很多很便利的服务,但是Sailsjs将这些服务设定的非常死,从而让代码的扩展性与模块化能力会受到其影响。并且Sailsjs的理念还是受MVC约束的。所以基于突破sailsjs的限制的想法就有了vig框架。

vig试图解决什么问题?

vig框架试图让你即可以得到业务处理的便捷性,也可以得到应用框架的灵活性,选择的多元化。所以vig框架的终极目标是不限制服务器,不限制ORM,不限制模板。

对于基础架构express, koa, restify等都是vig支持的目标,但是目前以支持express为支持目标。
对于ORM来说,bookshelf, objection, orm, sequelize, waterline等都是潜在的支持目标。但是目前以waterline为首要支持目标。
对于模块来说,jade, ejs,nunjucks,swig等都是支持目标。但是目前以nunjucks为首要测试模板。

vig是什么?

所以vig不是Web框架,他是Web业务框架,简单来说就是将Web相关的常规处理简单化的框架。
常见的处理包括
1、输入检验
2、错误定义与返回
3、权限鉴定
4、文件云上传
5、微服务
6、OAuth
7、websocket/socket.io等长连接的处理
8、服务器的基本安全
9、API规范化
10、常规的后台脚手架
等。目前vig已经实现了其中的[1,2,3,4,9],下面还会继续完成优化。

vig会不会与我正在做的项目冲突呢?

vig目前是基于express开发的,并且已经在原来的express项目上进行了应用。vig对于原来的项目完全没有任何的干扰。只要URL没有冲突,vig就不会与原来的项目有任何冲突。目前vig的第一个实例就是将nodeclub项目的代码完全迁移到vig上来。中间有一些vig代码与nodeclub旧代码共存的时期,但是两者完全不会冲突。

为什么要使用vig?

vig的创建基于以下几个原则:
1、更少的代码
2、更加清晰的模块与结构
3、可共用的代码
4、更多的选择性。

如果这些理念与你的理念是共通的,那么vig将会帮助你达成。

利用vig,作者只花了不到一个星期就将nodeclub项目里所有的除非模板外的代码全部替换成了vig,并且已经可以运行。

示例地址:

http://forum.webfullstack.me/

由于openshift不是很稳定,所以有时候会访问不了。

有没有应用vig的案例?

vig的第一个安全就是对nodeclub代码应用vig框架,目前已经完成。代码在:

https://github.com/calidion/forim

如果你对迁移的过程感兴趣可以看看上面的代码提供过程。大部分的时间里修旧代码与新代码是共存的。所以可以了解vig框架的独立性是很强的。适合项目的任何阶段引入。

vig项目的源码

目前vig项目托管在github上,地址是:
https://github.com/calidion/vig

参与与讨论

vig项目是一个开源的项目,所以欢迎任何人参与提交PR。

也欢迎加入:Nodejs开源项目交流群: 312685910 进行交流讨论

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant