架构设计随想录

方法论

软件复杂度

软件复杂性来源于两点:本质复杂度和偶然复杂度。开发工具、开发框架、开发模式,以及高性能和高可用这些仅是偶然复杂性,架构最重要的是要解决本质复杂性,这包括人的复杂性和业务的复杂性。互联网软件通常分为功能性的复杂度和非功能性的复杂度两种。那么如何正确评估系统的复杂度呢?

阅读更多

金融业务系统的技术架构

这篇文章源于阅读任杰(ebay支付账务系统负责人)老师的《分布式金融架构》后的整理,也有部分个人的理解。专栏内容很高,作者结合了自己在金融领域的丰富实战经验,系统性地介绍了金融业务核心需求和相应的架构设计思路,建议大家学习一下。

扫码跨境支付流程

金融业务有很多种,按业务模式划分,包括交易类业务和信贷类业务两种。扫二维码支付属于交易类业务,从终端用户的角度来看,扫码由鉴权、支付和拉取状态三个步骤组成。

鉴权

阅读更多

Serverless最佳实践

好久没有系统性地翻译文章了,最近看到这篇 Serverless Best Practices 感觉还不错,就尝试一下,翻译完这一篇后的感受是:阅读和翻译是两码事~~~

原文链接:Serverless Best Practices

在社区里(译者注:Medium),「最佳实践」已经被我们讨论很多年了,但在过去的时间里,只有很少一部分被我们接受。

绝大多数关注这些实践的 Serverless 从业者都在工作中使用了可伸缩的软件架构。Serverless 承诺在伸缩性和突发性的工作负载上发挥作用,所以很多的「最佳实践」是从「可伸缩」的角度来描述的。例如,零售业里的 Nordstrom(译者注:一家美国的高档连锁百货店)、IoT 中的 iRobot(译者注:一种扫地机器人)。如果你的目标不是应用可伸缩,那么你其实无需遵循这些「最佳实践」。

阅读更多

使用Spring Boot快速搭建微服务

使用 Spring Boot 已经两年多了,我从刚开始的抵触,到积极拥抱,再到现在进行若干反思,这中间积累了一些使用心得和一些个人的思考。本文将对 Spring Boot 做一个整体的概述,阅读完文章,你将会了解到下面这些:

  1. Spring Boot 是什么
  2. Spring Boot 快速上手
  3. Spring Boot 的优势
  4. Spring Boot 的不足
  5. Spring Boot 实践经验

注意:下面的介绍中,将不区分 应用服务(当然它们本质上是有区别的),都指的是一个 Spring Boot 项目,此外,除非特别说明,下面的包依赖管理工具均指的是 maven。

阅读更多

:D 一言句子获取中...