您的位置:首页 > 其它

FIS 与 FIS-PLUS 的渊源

2016-06-16 09:50 127 查看


FIS vs FIS+

FIS 和 FIS-PLUS(下面简称 FIS+)的概念混淆诞生之初就开始了,用 FIS 的同学一上来就会问“ FIS 和 FIS+ 有什么区别呀?”。鉴于此,大概说一下 FIS 及 FIS+ 的历史及其区别。

FIS 产生之初定位就是做一个内核,提供一套编译体系以及一套静态资源管理的设计思路及其本地调试。编译体系可以简单通过配置 + 插件的方式任意扩展。

FIS+ 就通过扩展实现了一套适合于后端是 PHP+Smarty3 的编译体系,然后在后端实现了静态资源管理,提出了诸如
quickling
i18n
fis-plus(default)
之类的解决方案。这块值得说明以下的是解决方案
fis-plus
其实它和编译体系的命令包取了相同的名字。下面详细说明编译体系和静态资源管理。


目录规范

整个编译体系还有很大一块内容是目录规范,还有一块是以文件类型为基础的插件体系。

FIS 是没有目录规范的,你源码怎么放产出也怎么放
FIS+ 有一套成型的目录规范,规定了 js 怎么放,css 怎么放,以及模块如何划分,模块之间如何引用资源,如何引入 js 等等。


插件

当然为了满足后端 php+smarty3 的以及静态资源管理,FIS+ 提供了一些插件。比如 extlang,require-async 用来分析被标签{script}{/script}包裹的 js,smarty-xss 是用来自动 XSS 转义的等。

说到这里在整个编译体系,FIS+ 扩展了 FIS,可以比喻成长方形和正方形的关系。


框架(静态资源管理)

FIS 提供了一套思路,用产出的 map.json 作为实现的基础,但它没有做实现
FIS+ 里面真正实现了这个思路,引出了后面诸多解决方案以及自动打包


本地调试

FIS 集成了一个本地调试服务器,小巧劲爆。解决了一切不会搭建服务器以及感觉搭建服务器费时费事的同学的所有需求
FIS+ 扩展自 FIS,额外提供了本地数据模拟,URL 模拟转发(小路由),以及能够提供本地跑起项目的测试框架(别被这个字眼吓到,就是一个 display 模板功能)

当然这个思路也包含在 FIS 的集体架构中,参见什么是 FIS


综述

FIS+ 之于 FIS 是一个针对业务场景在编译工具、框架层面进行扩建,适用于后端是 php/smarty 的架构体系。而如果后端是 Java 亦或是 Python,那么可以像 FIS+ 这样扩展 FIS,扩展一整套的方案,可以叫 fis-java,fis-python 疑惑其他。整个定制的过程文档,都会在 FIS 官网扩展一栏相继推出。当然 FIS 小组后续也会推出不同后端架构下的成套方案。

如果说 fis 是 webkit 的话,fis-plus 就是 chrome
如果说 fis 是 android 的话, fis-plus 就是 miui

fis-plus is a distribution of fis. You can think of fis as the engine that powers fis-plus, similar to how WebKit is the engine that powers Chrome or Safari. (Browser geeks, please allow me the affordance of this analogy and I ’ ll buy you a beer later.)




编外话

为啥会给大家带来这么大的困惑呢?

主要的原因是名字取的不好,其实 fis-plus 的前身叫 fis-pc,随着业务的发展 fis-pc 不单单能满足 PC 的各种需求,连无线都包揽,这样依赖不得不改名字了。为了向下兼容(fis-pc 时代命令行就是 fisp)。就拍脑袋叫 fis-plus 了。大概寓意是作为第一个官方定制版的意思。如果取名为 orra,trigger,secret,boluo,nana 之类的就不会有这个问题了

为啥 FIS 官网开始宣传 FIS+ 了呢?

受到上一个问题的影响,FIS-PLUS 也要开源,总不能同时维护一个 FIS 一个 FIS-PLUS 的官方网站吧。这样一来带给内部人员困惑给外部人员也是个困惑。虽然可以说明,但依然少不了需要重复说明的囧况。而且,如果没有静态资源管理这套方案,真的无法体现 FIS 的无比强大。正如官网提到,不管你用 grunt 也好,用 gulp 也好,用 make 也好只要实现了 FIS 说到的那几块,那么它就是一个 FIS。

其他感想

假设 FIS 起初就是一个 kernel,无法跑起来,需要通过扩展的 FIS+ 才能跑起来会不会让大家更好理解。比如 pngquant 的图片压缩库 libimagequant 。

转载出处:http://fex.baidu.com/blog/2014/03/fis-plus/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: