一个小程序开发者的技术之路 | 2018掘金年度征文

这是我在掘金的第一篇原创文章,主要是总结一下2018年技术上的学习与思考,也想对2019年进行一下规划和展望。css

2018 从小程序开始

2018年,是我工做的第二年。17年,主要的学习和实践的技术是vue,咱们组用vue作了一套 sass 化的商城系统。可是17年底,由于公司业务的调整,在18年初,咱们组专一于了小程序的开发。前端

在通过独立负责前端开发一个比较小的礼品卡小程序以后。咱们组开发的第一个小程序是某手机品牌商城。在这一年中我大概参与了八九个小程序的开发,从开始小程序的商城,到目前在作的智慧门店项目。vue

首先想谈的是选型,咱们当时有原生,mpvue 和 wepy 可选。当时的考虑是想既然是新的东西,要先了解它的自己是怎么写的,因此就选择了用原生开发。可是咱们又很想用scss来写样式,因此使用了前端工具,主要是为了转换 scss。关于前端开发工具,我在以后的部分也会着重介绍。node

其次,在小程序技术的学习上,在开始时,感受没有遇到太大的问题,由于以前有vue的基础,因此转换为小程序的开发中,还算比较天然。在这一年里,我总结下来比较难的点有:react

  1. 实现一些复杂的效果的时候,小程序有一些瓶颈。好比小程序的性能,好比一些内置的组件一些事件想修改的时候,没办法彻底的修改和控制,有些还有兼容性问题。例如video组件对播放条的控制。须要多去研究,微信开发者社区也是一个好地方。
  2. 对于小程序受权的控制。由于小程序对受权管理仍是比较严格的,并且须要受权的规则也在改变。在整个商场系统中,何时得到权限,能够拿到好比 UnionId,头像等,须要在开始时就讨论和设计好。
  3. 小程序性能的优化。如今还只是在优化接口的请求,尽可能减小无用或者复用的接口。在将来也但愿有更多的探索。

小程序cli工具和前端工程化浅尝

在18年9月份左右的时候,当时咱们组内已经作了十几个左右定制化的小程序商城。可是在这个过程当中,咱们写了一些UI组件和业务组件来加速开发,不管是样式组件,或者是对接后端的业务组件,都没有一个统一的管理,碎片化比较多。可能不一样的商城实现一样的功能的时候,是两套代码。加上以前是用的别人写好的cli工具,因此这时候个人想法是本身写一个cli的工具,能够把样式组件和业务组件统一管理起来,而且进行版本控制。这样,在以后讨论中也逐渐明确了如下几个功能:webpack

  1. 把UI组件库,业务组件库和编译环境配置文件分别放到三个git仓库进行管理。
  2. 可以初始化开发项目,cli工具能够把咱们写好的组件库按照所需版本添加到初始化的项目里。这样刚初始好的项目的功能也是统一的。
  3. 可以更新两个组件库以及cli工具自身。
  4. 可以编译 scss 文件,而且解决 scss 在转为 wxss 过程当中的重复编译和与wxss @import功能不一样的问题(最后咱们把 scss 文件分为两类,一类里面只写样式,一类里面写一些变量和有功能的语句,这个以后再写一篇文章细谈)。
  5. 能更方便的切换开发环境(这是以前的工具就有的,这里作了一些扩展)

这是这个cli工具规划的一期的功能,以上的功能基本都实现了,也算运用了一点前端工程化的思想去管理咱们小程序的开发,最后我完善了这个工具的文档而且上传到了公司私有的Npm源上。可是这个工具仍是有个小遗憾,就是我 webpack 用的很差,在处理 scss 文件重复编译的问题上没有找到好的方法,最后是在百度出的比较 fis3 这个打包工具上找到了方法。可是 fis3 本最近也没有更新了,里面的东西都比较老,但愿以后能够用 webpack 解决,把编译内核换成 webpack。git

固然也经过这个小工具的编写,我也学了一些关于编写命令行工具的以及一点点node的知识。github

Taro,一套 react 代码,编译多端小程序

年末的时候,咱们有了支付宝小程序和钉钉小程序的一些探索。也但愿能够一套代码编译多端小程序。我就尝试了一下把一个不是很复杂的小程序转换为Taro的项目。web

当时选择Taro也是通过了一些比较,相较于其它的多端编译的框架, Taro 相对来讲出来的比较早,用的比较多,github上issue解答比较多,脚手架工具也好用,也出了小册能够学习。 Taro有一个功能感受很好用,只要在一个已经写好的小程序上执行 taro convert 能够把一套小程序代码转换为 taro 的项目。 虽然咱们的小程序代码可能由于用 <template> 嵌套的有点多,使得转换的过程当中有报错。可是仍是很方便的直接转换为了react代码。canvas

如今使用起来的小问题就是一个是taro自己有一些限制,可是会有提示,要看一下文档什么不能用。还有就是可能对其它除了微信小程序的小程序的兼容性的支持(文档也但愿尽快更进)。

如今已在尝试或19年感兴趣的点

如今已经19年了,下面有些东西已经在尝试学习,但也可能有些点19年学习不到,仍是加油吧。

  • react全家桶
  • canvas基础
  • webpack
  • TS
  • node基础
  • tensorflow.js

总结

18年感受主要精力仍是在小程序上,对其它方面仍是技术上的进步仍是很少,并且没有一个好的规划、感受学习的点仍是不够深,不够精。但愿在19年能有所规划,有所改善。在工做上,也但愿在组内,能更发挥本身的技术影响力,19年再加油!

相关文章
相关标签/搜索