这两天微信小程序的内测,被这个事件刷屏,让很多前端开发者感觉以后就是铁饭碗了。而我作为一个将近10年的前端开发者,恰恰看到了事情的另外一面,前端开发开发者的饭碗会被后端开发同学,设计师,产品经理以及其他想学习开发小程序的人占领,大部分低水平前端开发者面临失业。我为什么这样说,下面我来给大伙分析下原因:
我们想想在没有微信小程序的时候,前后端怎么来分工:
-
前端工程师
- 开发基础组件,页面的静态样式,交互
-
后端工程师
- 开发业务逻辑和把数据套在前端写好的静态页面上.
- 最不擅长是写页面布局,页面交互,开发复杂的基础组件
下面我们再来看看,微信小程序做了哪些事情
-
WXML
WXML(WeiXin Markup Language)是微信设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。这句话的描述太技术,翻译成人话就是WXML使得后端开发同学可以使用熟悉的XML就可以开发出漂亮的页面,每个xml标签就是微信内置的组件和原生的html标签。
通过这种方式彻底屏蔽了底层页面和组件的实现方式,后续不管前端技术如何发展,小程序开发者的代码理论上不需要做任何的变化。如果前端技术发展了,微信需要做的就是开发一个新的转换器,把WXML转换成对应的新技术就行了。这才是这套框架渲染的真正的意图。 -
WXSS
WXSS(WeiXin Style Sheets)是MINA设计的一套样式语言,用于描述WXML的组件样式.这句话意思就是在开发时只需要描述下组件的样式就行了,页面的布局,响应式不用你管,改个样式,字体大小,颜色,边框,相信这些对你没有任何学习成本
-
事件
事件是视图层到逻辑层的通讯方式,将用户的行为反馈到逻辑层进行处理,可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。事件对象可以携带额外信息,如id, dataset, touches。这句话翻译成人话就是用户的行为可以触发数据的变化,并反应到对应的视图上;***整个过程不需要操作任何dom,需要做的就是对一些数据的运算,这恰恰是后端开发擅长的事情;以后写页面就跟设计excel表格一样容易,把数据填到xml中,写个自定义公式,就把漂亮的页面和复杂的交互给开发出来了***,下面这样就可以开发微信小程序了
//数据运算,类似excel中的公式 Page({ tapName: function(event) { this.data+1 } }) //画页面,类似excel中填数据 <view id="tapTest" data-hi="MINA" bindtap="tapName"> {{data}} </view>
-
工具
通过上面的框架微信觉得你有可能在开发调试错误时出现问题,他们又开发了模拟器,调试工具,代码编辑器这些工具来为的开发过程保驾护航,整个开发体验屌爆天
通过上面的措施使得开发微信小程序的学习成本,开发难度大大降低,以后满大街的估计都是微信小程序开发,不管前端开发,后端开发,设计师,产品经理,只要会写个公式,写个标签都开发出小程序应用。以后真的就人人都是程序员了。
那么前端工程师就真的没有任何价值了嘛?如果你的经验就停留在开发微信小程序上面,相信你真的离失业不远了。
如果想抱住你的饭碗,就必须在业务层面有自己的思考和观察,在抽象能力方面,快速学习的能力方面有所突破,在程序架构方面,在技术深入方面又自己的特点。否则的真的危险了。
最后是这种模式在提高开发效率,减少业务对前端同学的依赖方案能够体验出很大的价值,天猫在这方面不错的积累,如果大家对这些技术感兴趣,欢迎一起探讨