这两天微信小程序内测被这件事情主导,让不少前端开发者感觉自己以后会有一份稳定的工作。作为一个有近 10 年经验的前端开发者,我看到了事情的另一面。前端开发者的饭碗,将被后端开发者、设计师、产品经理等想学小程序开发的人抢走。大部分底层的前端开发者都面临失业。为什么这么说呢?我先给大家分析一下原因:
我们想象一下,在没有微信小程序的时候,前后端的工作是怎么分工的:
后端工程师
接下来我们来看看微信小程序是干什么的。
动态XML
WXML()是微信设计的一种标签语言,它可以通过组合基础组件和事件系统来构建页面的结构。这句话太技术了,翻译成人话就是,WXML可以让后端开发者用熟悉的XML开发出漂亮的页面,每一个XML标签都是微信内置的组件,也是原生的HTML标签。
这样就把底层页面和组件的实现完全屏蔽了,不管未来前端技术如何发展,小程序开发者的代码理论上都不需要改变,如果前端技术发展了,微信需要做的就是开发一个新的转换器,把 WXML 转换成对应的新技术,这才是这个框架渲染的真正用意。
韦氏译文
WXSS()是MINA设计的一种样式语言,用于描述WXML的组件样式。这意味着开发的时候你只需要描述组件的样式,不需要关心页面的布局和响应性,样式、字体大小、颜色、边框等等你都可以自己改变,相信这些不会花费你任何学习成本。
事件
事件是视图层到逻辑层的通讯方式,将用户的行为反馈到逻辑层进行处理,可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。事件对象可以携带额外信息,如id, dataset, touches。这句话翻译成人话就是用户的行为可以触发数据的变化,并反应到对应的视图上;***整个过程不需要操作任何dom,需要做的就是对一些数据的运算,这恰恰是后端开发擅长的事情;以后写页面就跟设计excel表格一样容易,把数据填到xml中,写个自定义公式,就把漂亮的页面和复杂的交互给开发出来了***,下面这样就可以开发微信小程序了
//数据运算,类似excel中的公式 Page({ tapName: function(event) { this.data+1 } }) //画页面,类似excel中填数据 {{data}}
工具
微信考虑到大家在通过上述框架进行开发调试时可能会遇到问题,所以他们开发了模拟器、调试工具、代码编辑器等工具来为开发过程保驾护航,整个开发体验非常棒。
以上这些举措,大大降低了微信小程序的学习成本和开发难度,未来大街小巷都是微信小程序,不管前端开发、后端开发、设计师、产品经理,只要会写公式、会标签,就能开发出小程序应用,未来人人都是程序员。
那么前端工程师真的一文不值吗?如果你的经验仅限于开发微信小程序,那你离失业就不远了。
想要保住饭碗,必须在业务层面有自己的思考和观察,在抽象和快速学习上有突破,在程序架构和技术深度上有自己的特色,否则就真的危险了。
最后这个模式可以提高开发效率,减少业务对前端同事的依赖,天猫在这方面有很好的积累,如果大家对这些技术感兴趣,欢迎一起探讨。