08 Apr 2018
互联网软件系统一直随着需求、用户量上升等等的原因在演进,以求适应更复杂的业务场景,更高的性能要求等等。软件演进方式各种各样,系统异步化即为其中一种。 一般的,对于那些实时性要求不高,但却计算密集或者需要处理大数据量的耗时较长的任务,或是有较慢 I/O 的任务,选择异步化是一个不错的选择。在系统层面,像引入消息中间件来解耦系统,将耗时长的任务放在中间件后异步执行。在方法层面,像把耗时较长的任务放到其他线程中去异步执行。 与测试同步系统或方法不同,当我们测试异步系统(端到端测试、集成测试)或异步方法的时候(单元测试)…
Read More
26 Jan 2018
软件开发历史大潮中,我们做了许许多多的努力让代码变得更加优雅。但是「优雅」这一件事,并不是简单的让代码变得漂亮而已,我们的「优雅」是有目的的:可维护、可扩展、可测试。从实用性角度来讲,我认为「可测试」这是我们在产品开发中追求的第一要素,毕竟质量是我们坚持的第一要素,没有质量背书,许多的工作都是空想。今天我们就来讲讲,如何通过Google新发布的Android Architecture Components去写我们的代码,使得我们的项目变得更加「Testable」…
Read More
20 Jan 2018
序:在《有赞.测试团队介绍(一)》曾经提到过,我们在测试需求项目时,会把需求逐级拆解,直到最小粒度。然后,各业务线的测试小伙伴把任务领走进行细化,同时,确定一位主测分来主导复杂项目的测试工作。 …
Read More
17 Nov 2017
2017年双十一即将来临,对于买家来说,是一年一度的购物狂欢,可以对于一个电商公司的技术来说,确是一年一次的大考。如何用更少的预算完成指定当前业务规模的流量高峰,是技术的永衡的主题。 我们有赞在双十一之前完成了全链路压测的方案,并把它用于大促的扩容和容量验证,取得了很不错的成果。 做过电商的技术同学都知道,在大促来临时,整个集群是的最高峰压力将是正常时间的几十倍,最高峰持续的时间会特别短,然后回落到正常水平的几倍的水平线上。所以,可能我们会自然而然地想到,把我们整个集群扩容几十倍的机器,在双十一当天应对几十倍的流量, 然后第二天就减至正常量,就可以完成大促的考验。事实情况是否真的这么简单? 大促保障的困难 用户购买商品的链路是一条很长很复杂的系统集群,中间会涉及到店铺,…
Read More
27 Sep 2017
一、遇到的痛点 最近在学习Spring-boot过程中,涉及到操作数据库。按照DOC引入mybatis-spring-boot-starter,然后按照套路配置application.properties、码Mapper、dataobject、xxx-mapper.xml的代码就OK了。这个时候,采用DataSourceAutoConfiguration默认方式实现的,这时单数据源可用了。这种方式,网上有很Blog。 …
Read More