重构:改善饿了么交易系统的设计思路 (yq.aliyun.com)

【简介】

我在2017年5月加入饿了么的交易部门,先后负责搜索、订单、超时、赔付、条约、交付、金额计算以及评价等系统,后期开始做些整体系统升级的工作。这篇文章成型于交易系统重构一期之后,主要是反思其过程中做决策的思路,我没有使用「架构」这个词语,是因为它给人的感受充满权利和神秘感,谈论「架构」让人有一种正在进行责任重大的决策或者深度技术分析的感觉。

点击查看原文 >>

@可耐芊小仙女 2019-10-11 17:01 / 0个评论
赞过的人: @IT技术博客大学习
要不要再学学下面的文章?
IM服务器设计-如何解决消息的乱序 (www.codedump.info)
IM消息需要面对的另一个难题:如何保证收到的消息不乱序。下面先展开看看要解决这个难题有哪些障碍。
by @技术头条 2024-03-21 23:00 查看详情
IM服务器设计-网关接入层 (www.codedump.info)
IM服务系列文章: IM服务器设计-基础 IM服务器设计-消息存储 网关接入层负责维护与客户端之间的长连接,由于它是唯一一个与客户端进行直接通信的服务入口,
by @技术头条 2024-03-21 23:00 查看详情
IM服务器设计-消息存储 (www.codedump.info)
这部分专门讲述IM消息存储的设计。消息存储的难度在于,要考虑以下的场景:

1、离线消息存储。即发送消息时对方不在线该怎么处理。
2、单聊、群聊消息。
3、随着用户量越来越大,应该以后如何扩展。
by @技术头条 2024-03-13 13:33 查看详情
IM服务器设计-基础 (www.codedump.info)
IM做为非常经典的服务器系统,其设计时候的考量具备代表性,所以这一次花几个篇幅讨论其相关设计。

主要内容相当部分参考了 一套海量在线用户的移动端IM架构设计实践分享一文,在此之上补充了更好的消息存储设计以及集群设计。

by @技术头条 2024-03-13 13:32 查看详情
ChCore 构建系统实现思路 (stdrc.cc)
读研期间的一个工作是为实验室的 ChCore 操作系统重写了新的构建系统——ChBuild,主要包括各级 CMake 脚本、配置系统和构建入口脚本。目前构建系统已经跟随 第二版 ChCore Lab 开源,所以现在可以尝试分享一下思路。如果你不了解 ChCore Lab,也没有关系,这里主要是想粗浅地介绍一些 CMake 很有趣且有用的特性和技巧,可以只看关于这些的内容。

下面的讨论基于 ChCore Lab v2 的 lab5 分支,因为这里包含了比较完整的操作系统代码结构。在阅读之前,建议你首先理解 Modern CMake By Example 中的绝大部分内容。
by @技术头条 2023-12-11 23:07 查看详情
真实世界的Go设计模式 - 对象池模式 (colobu.com)
对象池(object pool pattern)是一种设计模式。一个对象池包含一组已经初始化过且可以使用的对象,而可以在有需求时创建和销毁对象。池的用户可以从池子中取得对象,对其进行操作处理,并在不需要时归还给池子而非直接销毁它。这是一种特殊的工厂对象。

若初始化、实例化的代价高,且有需求需要经常实例化,但每次实例化的数量较少的情况下,使用对象池可以获得显著的效能提升。从池子中取得对象的时间是可预测的,但新建一个实例所需的时间是不确定。

另外,利用对象池,我们可以重用对象,减少对象的分配,对于垃圾回收的编程语言,也是一种提高性能的手段。
by @技术头条 2023-09-10 23:38 查看详情
真实世界的Go设计模式 - 原型模式 (colobu.com)
*原型模式(Prototype Pattern)是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。
如果你有一个对象,并希望生成与其完全相同或者类似的一个复制品,你该如何实现呢?首先你必须新建一个属于相同类的对象,或者类似的对象,然后你必须遍历原始对象的所有成员变量,并将成员变量值复制到新对象中。在Go生态圈中,我们常常使用下面的库来做这份工作。
by @技术头条 2023-09-10 23:32 查看详情
架构设计 the Easy Way (blog.alswl.com)
前几日,我在团队内部举行了一场技术分享,我介绍了关于架构设计的最佳实践。将这些实践凝练成了 20 字口诀:架构看问题、需求看用例、设计看模型、细节看时序。

我将顺口溜转到了 Twitter,不少朋友对这些顺口溜产生了浓厚兴趣,希望深入了解。因此,我将我分享中的观点扩展成了这篇文章。
by @技术头条 2023-07-30 17:40 查看详情
真实世界的Go设计模式 - 工厂模式 (colobu.com)
工厂模式是一种创建型模式,就是用来创建新对象的一种设计模式,它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。

23种设计模式中包含抽象工厂模式,工厂方法模式,其他也有人总结出简单工厂模式。这个工厂大量的依赖接口、抽象类和具体的类实现。在Go中,才不会有这么复杂的工厂创建模式,Go中最常见的工厂模式类似简单工厂模式,而且一般都是通过New或者NewXXX来实现。
by @技术头条 2023-07-30 17:36 查看详情
实现网页长截图的常见思路总结 (blog.yuanpei.me)
作为一个经常写博客的人,我有时会在微博上分享博客内容,可不知道从什么时候开始,国内互联网越来越丧失信仰,所有的厂商都在试图打造一个**“只进不出”的信息孤岛,进而达到增强“用户黏度”的目的。

既然外链注定要被屏蔽掉,那我就勉为其难地顺应潮流发“长截图”咯,所以,接下来我会为大家分享实现网页“长截图”**的常见思路,希望对有类似烦恼或者需求的小伙伴们有所帮助。
by @技术头条 2023-07-02 23:28 查看详情