数据工厂设计与实现

1. 数据工厂的作用 在日常的测试过程中,测试人员(或者开发人员)总是需要构造各种各样的测试数据来满足自己的需求。数据工厂的作用就是提供统一的UI,让测试人员或者开发人员能够快速、简单地生成测试数据,提高测试效率。 所谓快速、简单,是指对于其他的(不是这条业务线的)测试、开发人员来说,都能通过简单的输入,生成自己需要的测试数据,而不用去了解接口或者数据库的设计,通过调用接口或者直接写数据库来构造数据。 2. 设计原则 数据工厂只是一个框架,其构造测试数据的业务逻辑(模块)需要各个业务线的测试人员开发, »

H5与Native交互之JSBridge技术

做过混合开发的很多人都知道Ionic和PhoneGap之类的框架,这些框架在web基础上包了一层Native,然后通过Bridge技术使得js可以调用视频、位置、音频等功能。本文就是介绍这层Bridge的交互原理,通过阅读本文你可以了解到js与ios及android底层的通讯原理及JSBridge的封装技术及调试方法。 一、原理篇 下面分别介绍IOS和Android与Javascript的底层交互原理 IOS 在讲解原理之前,首先来了解下iOS的UIWebView组件,先来看一下苹果官方的介绍: You can use the UIWebView class to embed web content in your »

Generator:同步代码书写异步情怀

编者按:看完本文,你能对ES6的Generator有一个很好的理解,轻松地以同步的方式写异步代码,也能初步理解到TJ大神的co框架的原理。 前言:ES6在2015年6月正式发布,它带给js带来许多新特性,其中一个就是Generator,虽然其它语言如python早就有了,但js的Generator和它们的还是有点不一样的,js的Generator重点在解决异步回调金字塔问题,巧妙的使用它可以写出看起来同步的代码。 我们都知道js跟其它语言相比,最大的特性就是异步,所以当我们要取异步取一个文件内容时,一般我们会这样写 $.get('http://youzan.com/test.txt', function(data){ console. »

有赞支付微服务实践

有赞技术发展历程 2014年公司所有业务(交易,商品,ump,支付等等)都在一个单体应用中完成,使用php开发,满足了公司快速发展(我们姑且称为v1.0)。 2015年到2016期间,随着业务流量增长,现有架构模式遇到了挑战,公司开始朝着业务拆分和服务化方向迈进。开始采用java作为开发语言,服务化框架使用公司改进过的dubbox,支持跨语言服务调用的nova框架(v2.0)。 2017年在服务化的基础上我们更近一步,向微服务架构渐变。拥抱社区提供的丰富组件(v3.0)。 我们遇到的问题 »

有赞客户行为收集与实时处理系统设计

背景 有赞会员系统主要承载着有赞的客户经营领域,致力于给商家提供全渠道客户经营的能力。随着社交网络的普及,其社会化、多元化和创新化特质让商家与消费者之间的联系方式更加丰富,互动更加频繁,相应的运营需求也大大增加。除了传统的会员经营手段之外,会员系统需要提供能力,来帮助商家定义客户的生命周期,构建精准的消费画像:商家可以由此全面、及时地了解客户的喜好、行为轨迹、消费能力等属性,定义进而进行差异化的客户经营。我们需要构建一套实时的客户行为收集处理系统,来满足上述业务需求。本文就简单聊聊客户行为收集系统的设计。 行为模型 我们把客户行为事件定义为客户与业务系统间的交互,客户行为事件模型则描述了客户在业务系统中的轨迹。它记录了某个业务场景下一类或多类的客户行为事件,并能够反映事件的先后顺序。通过对客户事件的研究, »