ZanApi 让前后端协调更高效

一、当我们在说前后端协作的时候,我们在说什么目前前后端分离已成为主流,前后端开发环境互相独立的情况下,如何提高前后端协作效率已然成为每个公司不得不考虑的问题。以一个项目开发周期为例,在协作上一般需要面对以下几个问题:1. 项目开发初期,前后端需要就接口定义达成一致并且最好能在一个地方持久化,并且随着项目迭代开发持续维护2. 前后端在并行开发时前端需要先对接口...
阅读全文

基于动态代理 Mock dubbo 服务的实现方案

序言 背景概述公司目前 Java 项目提供服务都是基于 Dubbo 框架的,而且 Dubbo 框架已经成为大部分国内互联网公司选择的一个基础组件。在日常项目协作过程中,其实会碰到服务不稳定、不满足需求场景等情况,很多开发都会通过在本地使用 Mocktio 等单测工具作为自测辅助。那么,在联调、测试等协作过程中怎么处理?其实,Dubbo 开发者估计也是遇到了这样的问题,所以提供了一...
阅读全文

WEB-UI 自动化实践

概述==Bee 是由有赞 QA 开发的 UI 自动化工具,并以此实现了 web 端和 wap 端的核心业务的自动化。旨在简化开源工具提供的接口,方便 UI 自动化测试用例的设计。Bee 整个框架是基于 selenium 和 selenide 设计的。框架对 selenium 和 selenide 提供的接口进行了二次封装以满足日常的用例设计,二次封装后的接口解决了一些元素加载,元素定...
阅读全文

有赞开源项目最佳实践

因为业务需求,有赞自己造了很多轮子,组件库尤其多,React,Vue,小程序都有涉及,其他开源项目有 等。有人可能会觉得奇怪,为什么有赞要造这么多轮子?其实原因真的很简单,就是因为现有的替代品无法满足我们自身业务的需求,可能是不满足我们的定制需求,也可能是功能不符合我们要求。根据业务需要,我们总结了一套适合自己的套路、规范,并把这些套路、规范做成了工具、组件库或者框架。这大概便是有赞内部启动...
阅读全文

Node 在有赞的实践

一、概述 4月21日,有赞举办了第一届“有赞技术开发日”的活动,我作为分享讲师,分享了有赞最近一年在 Node 这一块的实践经验。但由于分享时间有限,我也只能把最重要的内容拿出来和大家分享,所以这个周末就花了几个小时时间,结合那次的分享,并完善了其中的一些内容,写了这篇文章,希望可以给大家带来新的启发。二、Node 基础框架的迭代与演进 1\. 从 Koa 到 阿童木(Astrob...
阅读全文

读书会 | 我来介绍下有赞 302 读书会

一、由来读书是反人性的,尤其是智能手机已然成为我们身体的一个“器官”的今天。但我又坚信,读书是对人大有裨益的,所以我和小伙伴们做了一些尝试。如果把时间退回到1年前的3月份,那时候我除了是有赞的工程师,还有另外一个身份:。活动形式是:上午精读讨论(10来个人讨论交流一个月前约定好的一本书),下午读书分享(三四个主讲每人半小时分享自己读过的某本书,同时充分讨论,也会穿插一些生活新知方面的分享...
阅读全文

从源码看微信小程序启动过程

一、写作背景接触小程序一年多,真实体验就是小程序开发门槛相对而言确实比较低。不过小程序的开发方式,一直是开发者吐槽的,如习惯了 Vue,React 开发的开发者经常会吐槽小程序一个 Page 必须由多个文件组成,组件化支持不完善或者说不能非常愉快的开发组件。在以前小项目中没太大感觉,从加入有赞,参与有赞微商城小程序的开发,是真切的体会到对于大型小程序项目开发的复杂性。有赞从微信小程序内测...
阅读全文

跨平台长连接组件设计及可插拔改造

背景我们在提出开发跨平台组件之前, iOS 和 Android 客户端分别使用一套长连接组件,需要双倍的人力开发和维护;在产品需求调整上,为了在实现细节上保持一致性也具有一定的难度;Web 端与客户端长连接的形式不同,前者使用 WebSocket ,后者使用 Socket ,无形中也增加了后端的维护成本。为了解决这些问题,我们基于 WebSocket 协议开发了一套跨平台的长连接组件。架...
阅读全文

自动化接口用例从 1 到 1000 过程中的实践和思考

引言当一个新人刚加入公司的时候,我们通常告诉新人怎么去写一个自动化用例:从工程配置到如何添加接口、如何使用断言,最后到如何将一个用例运行起来。而在实际工作和业务场景中,我们常常面临着需要编写和组织一堆用例的情况:我们需要编写一个业务下的一系列的自动化接口用例,再把用例放到持续集成中不断运行。面临的问题比单纯让一个用例运行起来复杂的多。本人加入有赞不到一年,从写下第 1 个 case ...
阅读全文

异步系统的两种测试方法

互联网软件系统一直随着需求、用户量上升等等的原因在演进,以求适应更复杂的业务场景,更高的性能要求等等。软件演进方式各种各样,系统异步化即为其中一种。一般的,对于那些实时性要求不高,但却计算密集或者需要处理大数据量的耗时较长的任务,或是有较慢 I/O 的任务,选择异步化是一个不错的选择。在系统层面,像引入消息中间件来解耦系统,将耗时长的任务放在中间件后异步执行。在方法层面,像把耗时较长的任务放到...
阅读全文