写点什么

拔赤谈前端:KISSY 的自成体系是一种趋势

  • 2013-07-18
  • 本文字数:2046 字

    阅读完需:约 7 分钟

Kissy 是阿里前端自己开发的前端框架,目前最新的版本是 Kissy 1.3.0,下一个版本 1.4.0 计划将在今年十月发布。在最近的阿里技术嘉年华上,InfoQ 编辑对淘宝前端工程师李晶(拔赤)进行了采访,了解有关Kissy 框架和他分享的Kissy Mobile 相关的一些信息。

嘉宾简介:李晶,花名拔赤,淘宝前端工程师,具有多年前端开发经验,在团队协作、组件开发、移动Web App 等方面有深入研究,曾经参与淘宝首页、KISSY 等项目开发。他翻译过《JavaScript Web 富应用开发》、《JavaScript 权威指南(第六版)》。

InfoQ:先简单的介绍一下 Kissy 吧。在你看来,最初开发 Kissy 的时候已经有了 jQuery,淘宝自己也在用 YUI2,为什么还会开发这样一套框架呢?

拔赤:KISSY 是阿里前端自己开发的开源前端框架,根据阿里自己的业务有很多定制和本地化,力争大而全。KISSY 最初是由玉伯发起,最开始是一款设计精密的编辑器控件,后来提供一个轻的核心代码集合,为了弥补 YUI2 在语法、编程模式和代码复用模式上的缺失。YUI2 和 jQuery 在当时都有一些棘手的缺陷是无法满足淘宝团队协作的场景。

1)YUI2 体积过大,在完成同样功能的情况下页面 JS 体积要比 KISSY 多一倍,5 年前网速没有像现在这么快,这样的体积严重影响页面载入速度。所以当时我们需要体积更小的库。

2)jQuery 虽然提供基础的 Ajax 和 Dom 封装,但缺少 Loader,这样就无法管理团队协作和多人开发,而淘宝从 08 年开始团队协作就已经是主流了。

因此,体积小巧、支持团队开发在当时看来是最迫切的需求,而当时的开源类库都无法满足(YUI3 之后才内嵌了 Loader、像第三方 JS 加载器 requirejs 和 labjs 在几年以后才陆续出现),所以 KISSY 从开始就走了一条自主探索的道路,一直到今天。

InfoQ:你主要参与的 Kissy 组件有哪些?能说说你是怎么参与到里面的吗?

拔赤:从最开始的 Loader、Ajax,到后来的 Calendar、Slide,我从开始就参与到 KISSY 的核心代码贡献中。因为 KISSY 源码托管在 Github 上,所以只需 fork 一份代码,就可以为它贡献代码。这也是大多数开源类库的组织方式。

InfoQ:Kissy 在描述中表示要服务使用中文的工程师,所以项目说明、文档当中都有大量中文。这一方面对中文用户友好,另一方面也制约了 Kissy 在国际化方面的发展。你会不会觉得这样太迁就那些不愿意学英文的工程师了?

拔赤:KISSY 的首要目标是服务阿里集团,其次是国内用户,再次是国际用户,所以我们目前会优先考虑中文。所以不管是注释还是文档,我们都会优先使用中文,对国内用户友好。再一个,我们自己的英文水平也高不到哪里去,没必要强求开始就写英文文档和英文注释,还是把主要精力放在代码结构和质量上。关于 KISSY 的国际化,我们会在 KISSY 1.4.0 时打一些补丁,支持一些组件的国际化。至于是不是迁就那些不愿学英语的工程师,他们学英语不会选择用 KISSY 来学习,这也不符合 KISSY 给自己的定位。

InfoQ:根据 Kissy Mobile 的项目介绍来看,它重点关注 pageview 的切换。这方面目前有没有比较业界推荐的标准处理方法?Kissy Mobile 试图解决什么问题?

拔赤:KISSY Mobile 是一套面向移动端的功能特性集合,pageview 切换是其中一个,名叫 Mobile App Toolkit,也是我这次分享的主题。关于处理多页切换的框架也有一些,比较流行的是 jQuery mobile,但正像第一个问题那样,jQuery Mobile 也无法解决目前我们的业务上的关键问题,比如页面切换是基于 post 请求?或者面向低端移动机型提供降级方案?

KISSY Mobile App Toolkit 主要解决那些想将 Web 做 App 化的产品,并且 Web 会和 Native 整合,并力争做到和 Native 一致的用户体验。如果你的项目有这种需求,你需要尝试下 KISSY mobile app toolkit。

InfoQ:Kissy 即将发展到 1.4 版本。新版本有哪些值得关注的特点?

拔赤:1,种子文件会变的更小;2,CSS 选择器会面向移动端做性能优化,性能全面超越 zepto。这两个特性应该是接下来这个版本最重要的功能。面向移动端的优化是一种趋势,而 KISSY 应该在这个方面做得更好,更懂得企业应用场景和需求。

InfoQ:现在整个国内前端领域,各家大公司自己各搞一套框架,各自维护;小公司只能跟随,如果跟错了队就会很惨。你觉得未来的趋势会怎样?会有统一的上游,大家一起维护,还是大家渐行渐远?

拔赤:从 KISSY 创立起到现在,可以看到 KISSY 的自成体系是一种趋势,但凡大一点的网络公司都不约而同的选择自建技术体系,也就是之前很多人提到的我们在教堂和集市之间选择前者。原因很简单,要想用好 jq/zepto/bb 之类的“小”库,必须配合模块加载器(不管是静态打包还是动态合并)建设起一套组件机制并生长出一个组件库,因此不如从开始就自建。所以大公司的技术体系都趋向封闭或半封闭,真正的开放只存在于没有公司背景的 Github 社区里。因此,很可能我们最终只能一定程度的打破 KISSY 的“封闭”。而其他公司包括全球顶尖互联网公司也是一样的路数,所以要想做大,早晚要自创体系。拥抱开源只是创立之初处于成本考虑的一种权宜之计,真正做精只有从 0 开始。

2013-07-18 00:167103

评论

发布
暂无评论
发现更多内容

在Flexus X实例上安装JDK和Tomcat保姆教学

平平无奇爱好科技

2024,语音 AI 元年;2025,Voice Agent 即将爆发丨年度报告发布

RTE开发者社区

速卖通API接口深度探索:高效获取商品详情与关键词搜索商品策略及代码示例

代码忍者

速卖通API接口

MinIO可观测性最佳实践

观测云

Minio

Flink CDC 在阿里云实时计算Flink版的云上实践

Apache Flink

大数据 flink 实时计算 实时计算Flink

敏捷方法论如何破解汽车行业的研发与交付难题

爱吃鱼的小雨

敏捷开发 汽车 敏捷转型 敏捷项目管理

业务测试流程架构设计:模型、架构图、时序图、类图和路由设计

测试人

软件测试

用友iuap平台荣获2024年度技术影响力引领品牌奖

用友BIP

InfoQ 用友iuap 企业数智化 用友BIP iuap平台

大型企业云订阅模式典范:用友BIP超级版斩获凌云奖双项大奖!

用友BIP

企业数字化 企业数智化 用友BIP 企业数智底座 凌云奖

.NET8.0多线程编码结合异步编码示例

不在线第一只蜗牛

Java .net 算法

Flexus云服务器X实例实践:安装Tasks.md任务管理工具

平平无奇爱好科技

唯品会API接口深度探索:商品详情获取与关键词搜索商品实战指南及代码示例

代码忍者

唯品会商品API接口

一文搞懂架构设计的衡量标准:功能性、可用性、性能、可扩展性、安全性、协作效率、复杂度、成本效益

不在线第一只蜗牛

Java 架构 微服务

如何制作商业模式画布?10个商业模式画布模板案例盘点!

职场工具箱

商业模式 在线白板 办公软件 绘图工具 商业模式画布

基于华为云Flexus云服务器X搭建部署——AI知识库问答系统(使用1panel面板安装)

平平无奇爱好科技

解锁电商新境界,在华为云Flexus上快速部署并运行Magento电商系统

平平无奇爱好科技

实时洞察、智能运营——新技术重塑企业绩效管理应用(上)

用友智能财务

数智化 企业绩效管理 会计 应用分析 整合计划

携程API接口详解:如何高效获取景点详情及代码示例

代码忍者

携程景点API

焱融科技携手共建“燎原”人工智能产业联盟,引领 AI 产业新飞跃

焱融科技

人工智能 智算中心 人工智能产业联盟

DDR 带宽的计算与监控

地平线开发者

自动驾驶 算法 地平线征程6

Flexus云服务器X实例实践:安装SimpleMindMap思维导图工具

平平无奇爱好科技

拔赤谈前端:KISSY的自成体系是一种趋势_JavaScript_sai_InfoQ精选文章