微信小程序: Web前端的春天 or 噩梦?

DelorasZcg 8年前
   <p>来自:前端你别闹(微信号:webunao)</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/3e61c943859bf3bdcfa90d1f07147809.jpg"></p>    <p>最近大家看到这张图是不是都快吐了?这几天一睁眼就被这张图刷屏了</p>    <p>喵了咪的,点到哪里都是这个报道和新闻</p>    <p><img src="https://simg.open-open.com/show/f369e519d83315943a99b8281b07a693.gif"></p>    <p>此文观点声明先:</p>    <ul>     <li> <p>只通过技术角度分析讨论 【小程序】对程序员、web前端、后端人员技术路线的影响。</p> </li>     <li> <p>不从产品角度 展望【小程序】以后的发展和方向--  这个都被媒体或专业市场分析人员分析烂了。</p> </li>    </ul>    <p><strong>「 微信应用号是什么?」</strong></p>    <p>张小龙曾表示,用户关注一个应用号就如同安装一个App一样,而微信应用号就相当于另一个App Store,主要功能就是应用推广。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/6a9d09f30297959992ecf0d40d3170e4.jpg"></p>    <p>此图也被看烂了是吧?好吧,关于【小程序-应用号】 的概念和解释,我相信大家已经在各大头条网站了解的很清楚了,各种推送和刷眼球,真是腥风血雨!我就不多做解释了。</p>    <p>如果你还不知道 微信‘应用号’是啥意思,那么请你从山洞里出来好吗?赶紧回到这个残酷的商品信息时代吧!</p>    <p><strong>「 微信应用号可以做什么」</strong></p>    <p>简单说,微信“小程序”可以为开发者提供基于微信的表单、导航、地图、媒体和位置等开发组件,让他们在微信的网页里构建一个 HTML 5 应用。同时微信还开放了登录和微信支付等接口,让这个“小程序”可以和用户的微信账号打通。</p>    <p>简单地说,目前微信“钱包”中的“大众点评”、“京东商城”、“滴滴出行”等第三方服务就是应用号的一种雏形。</p>    <p>根据参与本次内测的“小道消息”创始人 Fenng 提供的信息,微信小程序向开发者开放了下列 API 接口:我们再来刷一张图:</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/65a7cb32e87f105f52a0810150ffe2d1.jpg"></p>    <p>1、微信的目的似乎很简单,就是希望把用户使用App的动作都集中在微信上。</p>    <p>2、从开放接口看,这不就是 <strong>web app?混合app么?</strong> 。</p>    <p>3、小程序就是一个依托微信,来开发网页APP的关系户。</p>    <p>4、html 、css3、js 又泥煤的更重要、更露脸了(笑 ?)</p>    <p><strong>「 对 原生APP 开发人员的影响」</strong></p>    <p>1、Android 、IOS 开发者饭碗会丢吗?</p>    <p>呵呵,这个问题讨论了多少年了?HTML5 API第一版标准出来的时候,都在展望设想,现在呢?手机主流不还是原生APP 的天下,虽说一定程度上网页应用占了不少河山,原生app里面也嵌入了大量web app 页面程序。但归根结底还是原生APP的范畴。一谈到体验、性能问题,就是硬件在发达,还是会想到原生app。</p>    <p>另外 App 天生的优势,和硬件直接打通、自由奔放,功能、体验更加友好。</p>    <p>微信是一个大平台,在怎么折腾还是小马哥 说了算,哪天说给你接口封了就封了,说给你下了就下了,你只不过是去上边尝了尝鲜。</p>    <p>2、原生app人员应该学习HTML5、JavaScript吗?</p>    <p>我以前文章早就说过,以后会很长时间甚至可能一直都是 “前端年”,丝毫不夸张。如果身为技术人员不拥抱变化,不get新技能,可能工种不会淘汰你,时间就会淘汰了你,</p>    <p>所以劝只会原生开发的小伙伴,有空学习 JavaScript吧!</p>    <p><strong>「 对 web前端开发人员的影响」</strong></p>    <p>身为 web前端开发里最帅的人,今天我从 专业前端开发者的角度,来分析下 【微信-小程序】会对我们有什么样的影响。</p>    <p>首先,它的出现不会影响到我的颜值(放心了);</p>    <p>然后,我们前面说了,这基本上就是 我们现在总是接触到的 Hybrid App方式,你颤抖了吗?HTML+CSS+JavaScript 快要一统河山了?单单从这方面来讲的话,我们web 前端工程师 是应该高兴还是高兴,还是忧虑呢?</p>    <p>我们先简单分析一下 开发移动混合APP 的方式,根据此网络图分析:</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/bc53f74ce7c2b394cbe1455ed6c41f27.jpg"></p>    <ul>     <li> <p>左边一类(A)是继续坚持使用HTML+CSS进行界面布局,通过对页面渲染进行优化和对标准JS进行原生扩展来实现跨平台App开发。框架例如 MUI 、SUI、jquerymobile、ioinc。</p> </li>    </ul>    <ul>     <li> <p>右边一类(B)是放弃使用HTML+CSS的界面布局,选择一种第三方的中间语言(如JS,C#等)来映射成Android和iOS的系统调用,从而实现跨平台。这种方式的界面布局需要通过中间语言组合系统UI组件来完成,渲染性能比HTML+CSS的方式要好,但这样也失去了HTML+CSS布局的标准性和灵活便捷。但为了性能一切都忍了,至少目前这种方式已经占据了市场和开发狗的心。 如 React Native。</p> </li>    </ul>    <p>A类特点</p>    <p>简单 快速,模版布局现成,一般熟练 html5 css 的前端开发人员根据api都可以胜任、调用基本的原生接口 如相机、扫描、地理定位也够用。但渲染太耗内存、性能堪忧。</p>    <p>B类特点</p>    <p>完全映射底层接口。通过中间件打通视图 和底层借口,利用中间语言 JS 来开发应用程序。渲染性能比HTML+CSS的方式强悍许多,但布局和开发已经不是原生的 html+css+js了,这增加了难度和便捷性。</p>    <p>但此方式还是比原生app开发周期短很多,属于web开发范畴,只不过开发方式包装了一些技巧。性能直逼原生(原生小伙伴们,还不学前端?)</p>    <p>【小程序】是哪种开发方式和技术栈</p>    <p>那么分析完了,这2种方式原理,我们回到主角,【小程序】到底是通过什么方式来开发和渲染的呢?来跟着我来分析,没错的!</p>    <p>第一时间已有神人在github开源了 内测小程序的应用包,猜测估计是 内测200名额里面的某公司的开发人员,并且把他破解开源了(不得不说,国人手速是真快)</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/daea0edfe782856b3c1989802ab18504.jpg"></p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/013bebb741233afb50fd652a86f1cd69.jpg"></p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/7839c051e3523d5eae7c3bd050fa3a43.jpg"></p>    <p>从上边一些截图 可以一目了然确定,前端开发的福利 稳了!控制台、dom结构、js文件、require包含模块。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/8b84f3089c7b907f319140122189127d.jpg"></p>    <p>但当我看到这个文件的时候。。我tm 合不拢嘴了,这不就是 vuejs 、react吗这   MVVM家族的子孙吗。</p>    <p>完全组件化、自定义组件标签、数据双向绑定。</p>    <p>现在我根据以上代码结构分析,我可以确定 小程序 是属于 B类,也就是React Native 方式的开发模式,简直和现代的web前端技能无缝对接了。</p>    <p>微信‘小程序’: web前端的春天 or 噩梦?</p>    <p>前面喷了那么多,都是为我们这个问题来的。小程序的发布对  web前端的春天 or 噩梦呢? </p>    <ul>     <li> <p>不言而喻,上边经过我的分析,傻子也能看出来是满篇的好处和福利了 也就是春天。html+css+js +各种前端框架经验,你他喵的 小程序简直是web前端开发人员的定制福利。</p> </li>    </ul>    <ul>     <li> <p>值得担忧的问题:福利好自然压力大,以后前端开发又得多掌握一份技能 和 一套微信体系开发工具了,微信开发必须在微信提供的 宝宝箱 sdk里开发,而且也不是原生js语法 和react  、angular语法,它是 WXML 和 WXSS ,微信自体系。</p> </li>    </ul>    <ul>     <li> <p>进入全面 js时代,也不远了 Any application that *can* be written in JavaScript, <em>will</em> eventually be written in JavaScript。</p> <p>“能用js写的东西,就全部用js写 ”,所以 以后入门门槛 会更高,后端 、原生app开发人员也都要掌握一些 JavaScript 技能。</p> <p>本身这些混合开发框架 就是用c++ /c 语言调用的硬件接口来映射给js 调用的,所以以后前端人员的竞争可能会变大,越来愈多的后端 或者原生APP开发人员会进入 JavaScript 的学习大军,那么本来普遍逻辑能力就强的他们,会不会侵蚀一部分前端开发的福利呢?</p> </li>    </ul>    <p>那么以前企业项目 可能需要 一个wap、wap app、企业号,以后 会 + 一个 ‘ 应用号’开发。 工作量大了,企业成本也增高了,那么涉及到我们个人, 工资会不会随着业务量、工作量的增长而增长,这个才是关键问题。 <strong> </strong></p>    <p>总结:</p>    <p>拥有5-8亿 用户的微信,无疑成为了世界数一数二的移动互联网最大入口。它的一举一动,堪比国家经济动荡,发布一个东西就是一个行业,滋生无数机会。</p>    <p>所以我们是无奈的,接受就好,让市场来考验,让用户来决定。</p>    <p>APP开发人员不必跟风媒体恐慌,你只要保持自我,不断学习,肯定是不会被淘汰的。</p>    <p>web开发人员高兴之余,也不要忘形,因为这意味着以后你会承担更多的压力和工作量,和更多其他行业进来的竞争者们,大家都准备好了吗?</p>    <p> </p>    <p> </p>    <p>来自:http://mp.weixin.qq.com/s?__biz=MzA3NTUzNjk1OA==&mid=2651560467&idx=1&sn=759ab4d1472ce40a25e9e5bb9c1d1ecf&chksm=84903542b3e7bc5419c09e130d0e966a934d0eb0259e1069f964c2fdf0356e97876a64156b26&scene=0#wechat_redirect</p>    <p> </p>