insight 后台性能监控小程序开发手记

本文记录了基于微信小程序开发Insight性能监控平台的过程,包括项目概述、源码、开发工具选择,如原型设计使用墨刀,编码调试采用微信开发者工具与WebStorm的结合,以及如何使用gulp进行自动化构建,解决Echarts在小程序中的渲染问题,自定义导航栏与tabBar的调整,项目构建和前后端协作中遇到的问题及解决方案。
摘要由CSDN通过智能技术生成

 

项目概述


基于微信小程序研发一款产品运营监控平台,提供一个能够直观、全面、多元化展示监控信息的平台,使用户能够快速便捷地获取关键的有价值的监控信息,掌握应用运营情况;
同时在应用出现异常状态时,用户能够在第一时间、实时地接收到推送通知,以达到能够及时对异常情况作出响应处理。

 

项目源码


项目地址: https://github.com/EmiyaYang/insight
 

开发工具使用


在项目开发过程中我们使用了许多工具,本文将从如下几个方面介绍各个工具的使用。 

原型设计


工具:墨刀(MockingBot)

介绍: 墨刀是一款国人自研的原型设计工具,它提供了简易快速的上手体验,能满足小程序应用设计的基本需求。不过这款软件也跟绝大部分原型设计软件一样需要付费使用。

需求出发点:小程序原型设计

 

编码调试


工具: 微信开发者工具、WebStorm

需求出发点: 代码编辑、程序调试与预览

这里之所以使用两个 IDE 的原因是微信开发者工具尚不成熟,在代码编辑方面用着很不方便。而 Webstorm 作为一款成熟的专门为 Web 开发而打造的 IDE 除了提供良好的代码编辑体验之外,也能让开发者享受到诸如内置命令行、文件监听器等便利。但由于 WebStorm 不支持微信小程序预览,所以只能将二者搭配使用。简要来讲便是使用 WebStorm 进行代码编辑,使用微信开发者工具来预览、调试。

 

项目自动化构建


工具: gulp.js

介绍: gulp 是一款基于 nodejs 流的前端自动化构建工具。它的 API 很简单,拥有大量的插件,能帮助开发者完成诸如代码压缩、文件格式转换等任务。与其他同类工具相比,上手较为容易。

需求出发点: 将项目各个 page 目录下的 scss 文件转译成对应的 wxss 文件,并在生产环境中将 scss 删除。

项目开发过程中我们引入了 sass 作为小程序的 wxss (类 css)的预处理器。因为项目使用的是原生开发方式,并没有用到 wepy 或是 mpvue 等主流开发框架,所以这个转译的动作得自己来完成。最初的做法是利用 WebStorm 的文件监听器将 page 目录下的 scss 文件进行转译,这样一来一个 page 目录就存在两个样式文件了,而且 WebStorm 似乎并不能帮我们逐个扫描目录删除 scss 文件。但最终的生产环境肯定是要这样做的。于是我们就引入了 gulp 来帮助我们进行这些机械性的工作。

既然使用了 gulp,那也不需要使用 WebStorm 的功能了,gulp 可以帮助我们自动转译项目中的 scss 文件为 wxss 文件到新的目录中

应用场景1、监听线上未知错误// 例如:调用错误 var result = {} console.log(result.data.msg) // 抛出错误2、记录用户操作路径,更方便重现错误小程序使用1、引入资源在app.js中加入dist目录下的xbossdebug.min.js,记得放在App对象上面var xbossdebug = require('xbossdebug.min.js') // 引用xbossdebug xbossdebug.config.key = 'maizuo' // key为自定义唯一值,用于后端记录时区分应用 xbossdebug.config.url = 'https://domain.com/'; // 上报服务端地址 // 可选参数 xbossdebug.config.setSystemInfo = true; // 获取系统信息 xbossdebug.config.setLocation = true; // 获取用户位置信息2、测试是否正常使用App({   onLaunch: function () {     xbossdebug.error('error')   } })3、控制台查看network,如果看到一个指向你配置url的请求,那就成功了。// 发送的结构如下 {     key: String // 应用唯一id     breadcrumbs: Array // 函数执行面包线,方便用于错误重现     error: String // 错误堆栈信息     systemInfo: Object // 用户系统信息     notifierVersion: String // 插件版本     locationInfo: Object // 用户位置信息 }高级配置如果你的应用日志量较大,可以通过以下参数合并日志和随机抽样。xbossdebug.config.random = 1 // 默认为1,表示100%上报,如果设置0.5,就会随机上报 xbossdebug.config.repeat = 5 // 重复上报次数(对于同一个错误超过多少次不上报) xbossdebug.config.mergeReport = true, // mergeReport 是否合并上报, false 关闭, true 启动(默认) xbossdebug.config.except = [ /^Script error\.?/, /^Javascript error: Script error\.? on line 0/ ], // 忽略某个错误二次开发1**、安装依赖**// 进入项目目录安装依赖 npm install // 安装rollup,用于js编译打包 npm install -g rollup2、开发模式 (监听代码变化,生成xbossdebug.js)npm run watch3、编译(生成xbossdebug.min.js)npm run build方案设计思想TODO服务端记录数据数据并可视化资源加载监控页面性能监控typescript版本✅自动化单元测试参考资料代码思想参考fundebug,如果大家觉得还不错,希望大家支持fundebug的saas服务。代码风格参考https://github.com/gomeplusFED/GER
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值