基于 Generator 和 Iterator 的惰性列表

初识 Lazy List如果有了解过 Haskell 的朋友,对下面的这些表达一定不陌生```Haskellrepeat 1 = cycle "abc" = "abcabcabc..." ```上面的几个表达式产生的都是无限列表。对于习惯了主流编程语音的朋友可能感到困惑,在有限的内存里面如何能表达无限的概念。主要的原因就是 Haskell 是一门默认采用惰性求值策...
阅读全文

有赞线上拨测系统实践(一)

前言==一直以来,作为互联网软件工程师接触最多的事务之一便是持续集成(Continuous integration,简称 CI)。持续集成俨然已成为主流互联网软件开发流程中一个重要的环节。现今有赞内部在实践持续交付(Continuous delivery,简称 CD),它可以被看成是后持续集成时代的产物。需要强调的是,不管是 CI 还是 CD,更多的是强调作为软件开发交付过程中的实践,而一旦...
阅读全文

有赞搜索系统的架构演进

有赞搜索平台是一个面向公司内部各项搜索应用以及部分 NoSQL 存储应用的 PaaS 产品,帮助应用合理高效的支持检索和多维过滤功能,有赞搜索平台目前支持了大大小小一百多个检索业务,服务于近百亿数据。在为传统的搜索应用提供高级检索和大数据交互能力的同时,有赞搜索平台还需要为其他比如商品管理、订单检索、粉丝筛选等海量数据过滤提供支持,从工程的角度看,如何扩展平台以支持多样的检索需求是一个巨大的挑...
阅读全文

有赞风控规则引擎实践

引言 作为一家SaaS公司,有赞向商家提供强大的微商城系统和完整的移动电商解决方案。伴随着公司产品受众不断增长的同时,灰黑产业也慢慢伸出了触角,妄图利用有赞便捷的支付、传播等能力获取非法的利益,因此如何高效的遏制灰黑产业的侵蚀,是我们面临的一个重要挑战。总的来说,目前有赞面临的主要风险类型包括: 盗卡。例:盗用用户银行卡,在有赞店铺上消费 欺诈。例:通过发布低...
阅读全文

数据工厂设计与实现

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

有赞支付微服务实践

有赞技术发展历程2014年公司所有业务(交易,商品,ump,支付等等)都在一个单体应用中完成,使用php开发,满足了公司快速发展(我们姑且称为v1.0)。2015年到2016期间,随着业务流量增长,现有架构模式遇到了挑战,公司开始朝着业务拆分和服务化方向迈进。开始采用java作为开发语言,服务化框架使用公司改进过的dubbox,支持跨语言服务调用的nova框架(v2.0)。2017年...
阅读全文

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

背景==有赞会员系统主要承载着有赞的客户经营领域,致力于给商家提供全渠道客户经营的能力。随着社交网络的普及,其社会化、多元化和创新化特质让商家与消费者之间的联系方式更加丰富,互动更加频繁,相应的运营需求也大大增加。除了传统的会员经营手段之外,会员系统需要提供能力,来帮助商家定义客户的生命周期,构建精准的消费画像:商家可以由此全面、及时地了解客户的喜好、行为轨迹、消费能力等属性,定义进而进行差...
阅读全文

基于storm的实时计算应用实践

有赞使用storm已经有将近3年时间,稳定支撑着实时统计、数据同步、对账、监控、风控等业务。订单实时统计是其中一个典型的业务,对数据准确性、性能等方面都有较高要求,也是上线时间最久的一个实时计算应用。通过订单实时统计,描述使用storm时,遇到的准确性、性能、可靠性等方面的问题。订单实时统计的演进 第一版:流程走通在使用storm之前,显示实时统计数据一般有两种方案: 在数据...
阅读全文

深入理解CSS外边距折叠(Margin Collapse)

外边距叠加一直是前端开发必须了解的一个概念,面试一般也会问到这个问题。所以整理一下相关外边距叠加相关的知识点。外边距叠加是什么?什么时候会发生外边距叠加?如何避免外边距叠加?什么是外边距叠加先来看看: In CSS, the adjoining margins of two or more boxes (which might or might not be siblings) ca...
阅读全文

How we redesign the NSQ-Smart Client

OverviewAs redesigned NSQ in youzan shipped with new features like HA and load balance, partition and replica are introduced in redesigned nsqd. Replications of each partition kept in different nsq...
阅读全文