小程序-学习

经常看到一些同学在查找小程序的学习资料和面对一些问题时无从下手。这一节笔者会基于自己的经验告诉大家如何学习开发小程序和如何解决遇到的问题。

学习建议

  1. 文档一定要通读文档一定要通读文档一定要通读。如果你想轻松的实现各种功能,先不要去搜网上的各种二手资料,请一定要熟读文档。不是为了记下来,而是有个大概印象,知道小程序有哪些能力和限制。下面笔者列出一些文档和社区里很优质的内容(首页的就不列了),虽然在很显眼的位置,但是很多人没看过🤦。(个人感觉,平时很多开发者问的问题,百分之九十都在文档里有答案)

  2. 利用好微信提供的各种辅助工具和能力

    • 小程序开发助手 方便查看开发版,体验版,线上版
    • 小程序示例 直观的了解小程序的各种能力,新手可以当做demo跑一下
    • 小程序数据助手 查看小程序pv,uv,方便了解自己的工作成果
    • 利用好小程序提供的调试能力 现在小程序已经有了真机调试,各种特殊场景的测试(扫码,支付),已经非常全面。
  3. 看完文档直接上手开发,多动手喽,干就完了!

建议的进阶路线:

  1. 1. 熟读文档
  2. 2. 可开发一些小功能,熟悉开发流程
  3. 3. 尝试开发一些复杂的任务(例如设计一个绘图库,埋点库)
  4. 4. 可以翻阅一下业界优秀的小程序源码(办法自己想🤔),框架源码
  5. 5. 将微信开发者根据拖入你的ide翻一翻底层代码,思考和理解小程序的设计
  6. 6. 成为老司机

如何解决遇到的问题

由于小程序本身的技术架构,开发技能和web技术共性很多,我们之前在web开发中的很多开发经验也是有效的,大多数问题也是很好解决的(看文档)。常见的一些问题:

  1. 兼容性问题

    一般遇到设备兼容性问题,从以下几个角度思考:

    1. 不通的微信版本的小程序基础库是不一样的,很多 API 是有基础库的要求。
    2. 样式写法问题,小程序提供了rpx单位让样式开发更简单,但如果单位混用的话可能会导致意想不到的效果。
    3. css兼容性问题 例如ios7,8对 flex布局 支持的不够好。
    4. 设备兼容问题,例如ios不支持 webp 图片格式。
  2. 代码逻辑问题

    对于平常的业务逻辑来说一般都是跟小程序的生命周期挂钩,如果业务逻辑复杂,代码组织能力不够,很容易将代码写的很乱,这样出现问题的风险自然也会很高。所以建议在开发复杂业务逻辑时,一定要先借助流程图,思维脑图等方式分析清楚业务,然后再规划代码逻辑,拆分出逻辑主次再开发。遇到问题时,推荐如下方法:

    1. debugger 大法,在出现问题的地方打上断点,一步步查看上下文中的变量异常
    2. 二分删代码大法 遇到极其诡异(注意是极其诡异)的问题时,二分删代码直到问题消失,定位到问题代码(悄悄告诉你们,笔者用这个方法帮同事定位到好几个诡异的问题)
  3. 性能问题

    官方提供的性能优化工具,和文档为第一资料,毕竟他们自己写的坑,自己最清楚。另外上面已经介绍过一些性能优化的方法了,参照业务场景对症下药即可。

  4. 各种奇怪的问题

    事实上,90%的问题还是不看文档导致的,所以你们懂得。另外一些问题参考上述也可以定位到,如果还有不能解决的问题怎么办?那可能是微信的bug,所以去已知问题文档,官方社区翻一翻,一般都有蛛丝马迹。实在不行也可以向老司机提问,注意提问姿势,最好提供最小可复现demo,代码片段功能了解一下

总结

祝大家开发愉快!