文档章节

Weex开源首月记

阿里百川
 阿里百川
发布于 2016/05/19 22:05
字数 2062
阅读 347
收藏 6
点赞 2
评论 0

本文中的链接多指向目前“内测”阶段的Weex Github仓库 ,如访问时页面出现404提示,欢迎到http://alibaba.github.io/weex/提交内测申请。

Weex于 2016年4月21日在北京QCon大会上宣布开源并同时上线开源站点(http://alibaba.github.io/weex/) 已近一月。对于技术同学来说,”开源”一词肯定经常听闻,不少同学还是知名或低调的开源项目的参与者或创建者。 但这次“Weex开源”第一次让我们一个技术团队集体参与到开源项目中来, 其中经历,心得和收获我想无论是对于参与其中的同学,兄弟技术团队乃至业界都是有价值的。 希望本次和其后的记录能给大家带来帮助。

“内测”与邀请

看多了不少“晒代码后撂下不管”式的开源项目 , 也观摩了很多代码质量,开发过程,社区活跃情况皆优的开源项目。同时,Weex又已经在阿里内部开发了近一年时间,并已运用于多个关键阿里产品里。 出于对“开源”和“数据安全”的敬畏, 我们决定采用以下三步走的策略来推进开源过程。

  1. 建立Github私有仓库,待通过专利,安全,集团开源委员会审核后把代码push到Github私有仓库,同时迁移开发过程到Github。

  2. 逐步分批邀请项目组之外的同学以 “Collaborator”的身份获得Weex Github仓库访问权限,在明确告知现状和规则后,邀请参与Weex开发。

  3. 完全开放Github仓库访问权限。

我们目前处于第二阶段 , 对Weex感兴趣的同学请访问 http://alibaba.github.io/weex/ 提交你的个人邮箱和Github ID, Weex项目组期待与你在Github相会。

社区活跃情况

开源首月,截至至2016/05/12, 一共有3414位用户向我们提交了内测申请, 我们分11批邀请了其中信息较为完整 (有工作/组织信息,有GithubID ,GithubID有活跃记录) 的1962位用户成为我们的Github “Collaborator”, 月内,这些最早的Weex外部种子用户一共给我们提交了130项Github Issue 。某种程度上,这些Issue可以看做业界对Weex的第一印象,项目组同学们对此非常重视,在每一项Issue下面热情的为提出Issue的同学答疑解惑, 目前已有92项Issue得到了解决。

Github Issue 除了作为“技术支持”的渠道, 同时也是借助社区力量帮助Weex完善的平台。

通过这些Issue,有同学指出我们文档中的typo ; 有同学给我们提了组件完善建议(https://github.com/alibaba/weex/issues/63);有同学甚至研究了我们的底层渲染策略后给出了可行的改进建议(https://github.com/alibaba/weex/issues/176);   有同学通过Issue宣传自己的Weex技术交流QQ群(https://github.com/alibaba/weex/issues/220) ; 当然,也有[这样](https://github.com/alibaba/weex/issues/148)让列表气氛欢乐起来,最后不得不锁帖的Issue。

在自身的改进之外,作为一款UI框架,我们最期待用户能通过Weex做出新的,超出我们预计的App或Demo , 首月内,我们看到了内测参与同学的回应(https://github.com/alibaba/weex/issues/222) , 虽然略显简单,但Weex项目组同学非常珍视,因为这令我们想起了改变世界的Web最初的时候,质朴中蕴含着无限的可能。

月内改进

可视化直观呈现开发过程数据是Github吸引开发者的一大特性, 通过下面的图表可以直观的看出在Weex开源首月,一共有25位同学在Weex Github仓库进行了401次提交和98次分枝间的Pull Request。

具体的变更记录可以在这里(https://github.com/alibaba/weex/pulse/monthly)查看, 为了保证工程质量,同时让新开发者参与Weex项目更容易,我们参考了多个开源项目后制定了关于 Commit Log 和 Branch Name的格式规范(https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md).  每个内测期受邀的用户,都会在代码库赋权通知邮件中被强调在开始参与Weex前需要学习并遵守这些规范。

本月之内的工作多是完善,改进和优化。 内置组件中新增了移动应用中常见的Navigation Bar和Tab Bar , List组件也添加了很多同学期待已久的"pull to refresh"特性。WeexDSL语法也有所增强, 马上同学们就能使用起 require/ inline event / require / compute等让你写we时更趁手一些的新语法。

 

 完整的Change Log, 我们会在随后两天内和Weex 0.5版一起在Github(https://github.com/alibaba/weex)上发布。

经验教训

Weex的代码组织结构在开源前发生了一次较大的变化, 在Github提交前,我们把内部的10多个仓库中的内容合并到一个主仓库中.  这样做的好处是可以方便外部用户更快上手同时汇聚社区关注.  但为项目组也带来了不小的工程负担, 原来可以在不同仓库中分而治之的Android ,iOS, Javascript团队现在需要在一个仓库中协作. 每个部分都有独立的构建过程,同时又需要协调一致。

我们初步的解决思路是让不同的功能团队在不同的分枝中进行开发,功能完成后再合并到主分枝。 

虽然在同一个库中,Weex不同部分依赖形式各不相同,有基于代码的依赖,有基于构建产出的依赖。 为了修复问题,某个分枝会产生紧急变更,独立构建版本提供给Weex用户.   面对这样的情况, 我们最初较为简单的分枝策略经历几次迭代就显现出局限性了,功能分枝合并时都每每遇到各种问题。

为了应对这种情况,我们把分枝策略进行了升级。 最新的策略(https://github.com/alibaba/weex/releases)如下图所示:

我们希望通过多层次的分枝结合CI , 能应付后续更复杂的代码管理情景。

近期规划

Weex目前只开源了Android部分, 我们知道对于想尝试基于Weex跨终端开发的同学这是仓促不周的,当前,Weex 开源团队正在全力准备.  预计到6月初iOS渲染器就会和HTML5渲染器,功能更丰富的命令行工具一起“准备好行头"来到Github和大家相见。

后续,我们会根据大家在Github Issue 列表(https://github.com/alibaba/weex/issues)里的讨论,把一些有共性的问题汇总,通过文档或Blog做答。也欢迎大家尝试把自己的Weex使用体验,对Weex的所思所想记录成文投递给我们, 让这里的文章更加丰富,让其他用户学到新知识, 让Weex开源社区成为一个更好的地方。

阿里百川(baichuan.taobao.com)是阿里巴巴集团的无线开放平台,通过“技术、商业及大数据”的开放,提供移动场景下的高内聚、开放式、行业领先的技术产品矩阵、成熟的商业组件和完善的服务体系,帮助移动开发者快速搭建APP、加速APP商业化进程,全方位赋能移动开发者及移动创业者。

 

© 著作权归作者所有

共有 人打赏支持
阿里百川
粉丝 49
博文 37
码字总数 61962
作品 0
杭州
技术主管
阿里巴巴向 Apache 基金会捐赠移动开发框架 Weex

12 月 15 日,阿里巴巴宣布将移动开源项目 Weex 捐赠给 Apache 基金会开始孵化,Weex 有望成为中国移动领域的首个 Apache 顶级项目,这意味着中国移动技术开始反哺世界。据悉,这也是继 JSto...

局长 ⋅ 2016/12/15 ⋅ 39

【开源访谈】阿里 Weex 负责人勾股:开源社区不纯粹做技术的事情

从 2015 年双十一首秀到 2016 年 6月 30日Weex 正式开源,再到今年完成所有双十一活动页面,Weex 在这半年左右的开源之路上,各方面有什么样的提升,未来发展规划如何?维护 Weex 开源中遇到...

凝小紫 ⋅ 2016/12/18 ⋅ 14

WEEX、React-Native开发App心得

WEEX、React-Native开发App心得 起因 最近公司准备使用weex或者react-native进行跨平台开发,并不是要做新的app而是准备用这种方式代替原来webview+h5内嵌这种方式,这种hybrid的方式,存在于...

V1admirMakarov ⋅ 01/06 ⋅ 0

阿里巴巴向 Apache 软件基金会捐赠消息中间件 RocketMQ

继向 Apache 软件基金会捐赠 JStorm 后,阿里巴巴在开源界又有一大举动。 11 月 28 日,阿里巴巴宣布将开源分布式消息中间件 RocketMQ 捐赠给 Apache,成为 Apache 孵化项目,孵化成功后 Ro...

局长 ⋅ 2016/11/28 ⋅ 32

iOS 开发者的 Weex 伪最佳实践指北

引子 这篇文章是笔者近期关于Weex在iOS端的一些研究和实践心得,和大家一起分享分享,也算是对学习成果的总结。文章里面提到的做法也许不是最佳实践,也许里面的方法称不算是一份标准的指南手...

一缕殇流化隐半边冰霜 ⋅ 2017/05/04 ⋅ 0

阿里云成为 Linux 基金会金牌会员!

2 月 20 日,全球知名非营利性组织 Linux 基金会宣布,阿里云正式成为 Linux 基金会金牌会员。阿里云表示将持续加大对开源项目的支持,并发挥自己的力量。 阿里云是中国唯一一家 Linux 基金会...

局长 ⋅ 2017/02/20 ⋅ 37

Dubbo 通过投票,正式进入 Apache 基金会孵化器

2 月 9 日,Apache 基金会的邮件列表上发起了讨论是否接纳阿里的 Dubbo 项目进入 Apache 孵化器的投票。 2月15日,邮件列表显示,Dubbo 获得了 14 张赞成票,在无弃权和反对票的情况下,正式...

王练 ⋅ 02/18 ⋅ 0

阿里云宣布开放开源 AliSQL 数据库,性能可提升 70%

继开源跨平台开发框架 Weex 之后,阿里巴巴再次宣布另一个重大开源项目 AliSQL。 8 月 9 日,在 2016 云栖大会·北京峰会上,阿里云宣布启动 AliSQL 数据库开源项目。该版本性能优于社区版 ...

oschina ⋅ 2016/08/09 ⋅ 79

阿里宣布开源 Weex,用 Web 方式开发 Native 性能体验应用

4月21日,北京-阿里巴巴今天在Qcon大会上宣布跨平台移动开发工具Weex开放内测邀请。Weex能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS、安...

冒牌导演 ⋅ 2016/04/21 ⋅ 70

【源资讯 第08期】IT 界年终总结:干 IT 的真累!

上个星期我们盘点了 IT 界的编程语言和数据库排行榜,这个星期程序员要好好开始做年终总结了,看看有才的程序员都是怎么写年终总结的: 今日提到交付将至,小主倍感乏力,恐是昨夜加班编程,...

两味真火 ⋅ 2016/12/17 ⋅ 13

没有更多内容

加载失败,请刷新页面

加载更多

下一页

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

eclipse酷炫大法之设置主题、皮肤

eclipse酷炫大法 目前两款不错的eclipse 1.系统设置 Window->Preferences->General->Appearance 2.Eclipse Marketplace下载【推荐】 Help->Eclipse Marketplace->搜索‘theme’进行安装 比如......

anlve ⋅ 昨天 ⋅ 0

vim编辑模式、vim命令模式、vim实践

vim编辑模式 编辑模式用来输入或修改文本内容,编辑模式除了Esc外其他键几乎都是输入 如何进入编辑模式 一般模式输入以下按键,均可进入编辑模式,左下角提示 insert(中文为插入) 字样 i ...

蛋黄Yolks ⋅ 昨天 ⋅ 0

大数据入门基础:SSH介绍

什么是ssh 简单说,SSH是一种网络协议,用于计算机之间的加密登录。 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码...

董黎明 ⋅ 昨天 ⋅ 0

web3j教程

web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 汇智网最新发布的web3j教程,详细讲解...

汇智网教程 ⋅ 昨天 ⋅ 0

谷歌:安全问题机制并不如你想象中安全

腾讯科技讯 5月25日,如今的你或许已经对许多网站所使用的“安全问题机制”习以为常了,但你真的认为包括“你第一个宠物的名字是什么?”这些问题能够保障你的帐户安全吗? 根据谷歌(微博)安...

问题终结者 ⋅ 昨天 ⋅ 0

聊聊spring cloud gateway的RedisRateLimiter

序 本文主要研究下spring cloud gateway的RedisRateLimiter GatewayRedisAutoConfiguration spring-cloud-gateway-core-2.0.0.RELEASE-sources.jar!/org/springframework/cloud/gateway/con......

go4it ⋅ 昨天 ⋅ 0

169. Majority Element - LeetCode

Question 169. Majority Element Solution 思路:构造一个map存储每个数字出现的次数,然后遍历map返回出现次数大于数组一半的数字. 还有一种思路是:对这个数组排序,次数超过n/2的元素必然在中...

yysue ⋅ 昨天 ⋅ 0

NFS

14.1 NFS介绍 NFS是Network File System的缩写 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本 NFS数据传输基于RPC协议,RPC...

派派菠菜 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部