JSer全栈化技术栈推荐(一)——原生移动端是天堂仍是泥潭

随着以服务器端的NodeJS、桌面端的Electron和原生移动端React Native为表明的全栈JS迅猛发展,真正生产环境中的“JS/前端技术全栈化”已经逐渐变为可能。尽管在前端之外的领域里,JavaScript还不能取代各领域本来主流语言的地位,但对于大量初创型公司或技术人手不足的团队来讲,更低的学习成本自己就是一种极大的优点。前端

对于技术学习而言,学得好和学得巧一样重要,选对技术栈进行学习,可能会节省大量的时间和精力,更有可能带来更多的机会。所以结合最新的NingJS会议上的趋势和本身过去一段时间的实践经验,推荐将来一段时间比较值得学习和尝试的技术栈。git

原生移动端

首先,不要幻想能用JavaScript在原生移动端一步登天,但也不要由于许多开发者对于React Native等技术的抵触而感到畏惧。github

若是你/公司的目标不是一个QQ这个级别的大型App,你只是须要给你项目中日益复杂的Web移动端减负,用更强大原生性能去弥补Web移动端在复杂交互中的不足,而且你没有时间或者兴趣去学习原平生台对应的语言,那么如今机会来了。服务器

问题初现

分享一下我本身的经验。在以前的一个Web项目中,前端使用的是Vue框架。随着功能不断迭代以及几回专门针对移动端的重构以后,我认为在业务需求和性能上已经找到了一个平衡点,当时认为下一次比较大的优化可能就要基于Vue 2.0的服务器端渲染以及用本身写的图表库替代项目中的第三方图表库。框架

可是在一次小规模的用户内测中,咱们发现对于大多数非技术背景的用户来讲,对于性能问题依然是敏感又粗暴的。咱们不能期望去告诉每一个用户“这个SPA超复杂的,能实现成这样已经很棒了好嘛?”,只能继续想办法让每一个页面都能在那些内存快被占满的低端安卓手机上也保持必定的水准。svg

当我意识到Web性能终有尽头、公司暂时也不可能招到两个原平生台的开发者时,我决定要不用那些JSer也能玩的方案先作个过得去的App?性能

Weex准备好了吗

因为前端使用的是Vue,所以Weex是一个很是天然地备选方案。学习

事实上,我在阿里的Weex内测的第一时间就申请了(当时上述项目还没开始)。当我第一次下载Weex的playground把玩的时候,个人想法是“哇,不错。”;当我准备开始第一个Weex项目的时候,个人想法是“咦,这文档怎么不太顺”;当我暂时放下Weex,而且在四个月后评估它是否能帮助我完成个人第一款App时,个人想法是“怎么还这样...”测试

其实Weex的团队已经作了不少很酷的工做了,可是对于一个0原生开发经验的人来讲,光是按要求搞定Android Studio就已经脱了一层皮,跟别说没想到一个潜在的功能需求去查issue时,发现回复老是“咱们正在排期开发”,这不免会给人带来一种强烈的不肯定感。更关键的是文档中有太多遗留问题,致使阅读起来逻辑不够通畅,进一步加深了各类小问题带来的烦躁感。优化

所以在配置了一夜Weex环境依然没有很清晰的思路的状况下,我带着对同时学习React和React Native的担心转向了React Native。

React Native不是银弹,但威力不俗

做为重点推荐的技术栈,这段少讲小故事,多谈谈推荐的理由以及和Weex的对比吧。

  1. 首先是Getting Start部分坑很少,基本一次过成功,少数几个问题都可以经过搜索快速解决,平复了我七上八下的心情。

  2. 其次是有比较优秀的开源项目做为参考借鉴,例如Facebook本身开源了F8App,里面有很多最佳实践;其次社区也贡献了不少优秀项目,我我的主要是参考reading这个项目,经过阅读其源码,尽快掌握React中的部分技巧。

  3. 同时不能忽略完整的调试、测试以及打包方案。这些对于没有原生开发经验的开发者来讲,都是极其须要而且很难本身完成的。

  4. 大量的社区项目辅助。React Native社区贡献的项目主要集中在几个方面:两个平台都可用且表现一致的组件、一些须要写原生代码的功能例如第三方登陆、一些经常使用功能的移植例如iconfont和svg等。大部分项目都不是由Facebook主导的,可是React Native可以在生产上使用绝对离不开这些项目的贡献。

基于以上这些理由,我认为如今开始尝试React Native是一个比较合适的时机,若是你也遇到我以前所描述的这类问题,不妨试试看。

至于一些其余的方案例如Ionic、Cordova、Hbuilder、H5+等等我我的兴趣不大。基于WebView作的各种优化,结果可能更像是性能以及学习成本都走向了一个中间点,两边都不出彩。

用JS开发原生移动端有将来吗

我认为这个问题主要取决于社区先厌倦给React Native造轮子仍是主流原生开发者们先对React Native产生足够多的兴趣。不过在一段时间以内,React Native仍是会继续向前冲。

固然如这段的标题所写,咱们关注的不只仅是React Native。在刚刚结束的NingJS大会上,Vue的做者宣布成为Weex的技术顾问。对于我来讲,这多是再次去尝试Vue的一个理由,但愿尤大大不只关注Weex自己的技术细节,还能给Weex带来和Vue同样严谨又易用的文档风格。

可是Weex团队在项目愈来愈偏离公司本来的业务需求以后还能对项目投入多少持续的热情,以及可否在营造出一个愿意不断造轮子的社区,这都将决定咱们可否有机会把Weex用在本身的生产环境中。

相关文章
相关标签/搜索