Vant 2.0 发布:持之以恒,不乱节奏

持之以恒,不乱节奏,对于长期作业实在至为重要。一旦节奏得以设定,其余的问题便可迎刃而解。 \\ 村上春树维护组件库就像跑马拉松,开源只是从起点迈出第一步,困难的是持之以恒地跑下去。自 2017 年开源以来,Vant 已经跑了两年多时间,未曾停歇。在 2018 年我们发布了 ,并持续迭代了 100 多个小版本。对于版本迭代,我们更倾向于小步快跑,保持每周更新一个版本的节奏,及时解决大家...
阅读全文

有赞客户运营系统的演进

一、引子====有赞,是一个商家服务公司。我们帮助每一位重视产品和服务的商家私有化顾客资产、拓展互联网客群、提高经营效率,全面助力商家成功。而拉新、留存、促活、转化则是商家经营的关键指标。随着线上线下流量越来越贵,商家对客户精准运营诉求越来越强烈。有赞客户运营相关的业务产品也在近一年不断推陈出新。二、早期“烟囱式”系统建设模式===============早期客户运营产品的建设模式...
阅读全文

使用Puppeteer搭建统一海报渲染服务

背景介绍有赞微商城包括了 PC 端、H5 端和小程序端,每个端都有绘制分享海报的需求。最早的时候我们是在每个端通过`canvas API`来绘制的,通过`canvas`绘制有很多痛点,与本文要讲的`海报渲染服务`做了一个对比:对比项CanvasNode 海报渲染服务上手门槛需要掌握 canvas API了解 HTML、CSS 语法即可代码体积占用小程序包体积...
阅读全文

有赞埋点实践

一、前言====大数据应用一般会有采集、加工、存储、计算及可视化这几个环节。其中采集做为源头,在确保全面、准确、及时的前提下,最终加工出来的指标结果才是有价值的。而埋点作为一种重要的采集手段,可以将用户行为信息转化为数据资产,为产品分析、业务决策、广告推荐等提供可靠的流量数据支持。在业务需求少的情况下,可以运用一些简单的方法快速采集用户行为。但如果业务线、终端众多,数据需求多样,就...
阅读全文

有赞埋点实践

一、前言====大数据应用一般会有采集、加工、存储、计算及可视化这几个环节。其中采集做为源头,在确保全面、准确、及时的前提下,最终加工出来的指标结果才是有价值的。而埋点作为一种重要的采集手段,可以将用户行为信息转化为数据资产,为产品分析、业务决策、广告推荐等提供可靠的流量数据支持。在业务需求少的情况下,可以运用一些简单的方法快速采集用户行为。但如果业务线、终端众多,数据需求多样,就...
阅读全文

埋点质量保障

常见问题====我们收集日志,目的还是为了分析用户行为,挖掘潜在价值,最终能优化产品体验。因此,“高质量”是最基本要求,这是保证分析效果准确性的基石。那么,常见的质量问题有哪些呢? 事件重复&丢失。重复是由于SDK自身或者前端开发疏忽的问题,导致相同事件重复发送;丢失可能是设备、网络原因,或者是开发者漏埋导致。 事件参数错误。常见的情况有:”必传而未传“、”非空而为空“、”值类...
阅读全文

打印日志时 Logback 内部都做了些什么

引言==Logback 是一个优秀的开源日志框架,我们很多项目都使用它来记录日志。实际使用时,通常仅需要一行语句即可记录相应的日志信息,如`logger.info("Hello world.");`那么,看似简单的语句背后都有哪些故事,打印日志时 Logback 内部都做了些什么?本文以输出日志内容到文件为例,阐述 Logback 打印日志的工作流程。Logback 设计=...
阅读全文

Dubbo 压测插件 2.0 —— 基于普通 API 调用

插件已开源,详见 上一篇中,我们介绍了基于 Dubbo 泛化调用实现的 Gatling Dubbo 压测插件,使用泛化调用发起 Dubbo 压测请求,consumer 端不需要拿到 provider 端的 API 包,使用上很便利,但是众所周知,Dubbo 泛化调用的性能不如普通 API 调用,虽然可以优化并使之达到与普通 API 调用相近的性能,但仍存在一些局限性。生产中除了网关等特殊应用...
阅读全文

有赞Flutter插件开发与发布

一、Flutter插件简介 一种专用的Dart包,其中包含用Dart代码编写的API,以及针对Android(使用Java或Kotlin)和针对iOS(使用OC或Swift)平台的特定实现(另外也可以包含Native的组件代码),也就是说插件包括原生代码与Dart代码。插件开发完成后,将上传到dart插件管理服务仓库,类似于maven、pod库,然后在flutter开发过程中可以通过pubs...
阅读全文

有赞 Flutter 混编方案

背景目前准备试水 Flutter,但是多数native开发是不了解Flutter,因此需要设计一种比较“舒服”的集成方式。混编方案 方案考量1. 如果直接采用 Flutter 工程结构来作为日常开发,那这部分 Native 开发也需要配置Flutter环境, 相当程度的了解 Flutter 一些技术,成本比较大。 2. 同时如果工程耦合,对于开发过程也是很难受的...
阅读全文