淘宝主搜索是一个典型的多阶段检索系统,主要分为召回、粗排、精排等阶段。召回阶段,由文本召回、个性化等多路召回构成,输出商品量级约10^5;粗排阶段,需要从三路召回集合中分别进行筛选,筛选出10^3量级提供给精排;后续经过精排等阶段再进行筛选输出约top10曝光给用户。(注:下文中10、10^3、10^5等均代表数量级,数值只作为示意,只有其相对大小具备参照意义)
写软件和造楼房一样需要设计,但是和建筑行业严谨客观的设计规范不同,软件设计常常很主观,且容易引发争论。 设计模式被认为是软件设计的“规范”,但是在互联网快速发展的过程中,也暴露了一些问题。相比过程式代码的简单与易于修改,设计模式常常导致代码复杂,增加理解与修改的成本,我们称之为 “过度设计”。因而很多人认为,设计模式只是一种炫技,对系统没有实质作用,甚至有很大的挖坑风险。这个观点容易让人因噎废食,放弃日常编码中的设计。 本文将深入探索如下问题: 为什么长期来看,设计模式相比过程式代码是更好的? 什么情况下设计模式是有益的,而什么情况下会成为累赘? 如何利用设计模式的益处,防止其腐化?
在洪峰流量下,如何确保应用的服务质量不受影响的同时,最大限度提升资源利用率,是考验混部技术成熟度的关键。本文将展开介绍Koordinator在资源隔离,单机QoS保障,以及应用干扰检测方面的设计实现和进展。
Serverless 架构与 CI/CD 工具的结合 CI/CD 是一种通过在应用开发阶段引入自动化流程以频繁向客户交付应用的方法。如图所示,CI/CD 的核心概念是持续集成、持续交付和持续部署。 作为一个面向开发和运营团队的解决方案,CI/CD 主要针对集成新代码时所引发的问题。具体而言,CI/CD 可以让持续自动化和持续监控贯穿于应用的整个生命周期(从集成、测试阶段到交付和部署阶段)。这些关联的事务通常被统称为“CI/CD 管道”,由开发和运维团队以敏捷方式协同支持。
首先介绍一下语雀的整体情况,语雀是蚂蚁集团推出的一款笔记与文档知识库的管理 & 协同工具,目前蚂蚁集团和阿里集团的员工大约有 10 万多人日常也在使用这个工具,同时也在对外提供服务。 如下图所示为语雀基于 Electron 推出的 Mac 和 Windows 桌面端,还有应对移动端工作场景的小程序。另外,从去年开始我们着手开发了移动端 App,并于今年 2 月份顺利发布上线。图中右侧展示的是 Android/iOS的 App 截图。