如何成为架构师?
总结这些年在支付宝做架构的经验,把自己摸索成长的内容写下来,从对架构师的认知到业务能力和架构能力多方面总结了案例经验,希望可以帮助到大家。
复杂系统设计原则与案例
## 一、复杂是软件的本质属性
### 1.1 复杂是软件的本质属性
正如Brooks所言,软件复杂性是软件固有的属性,这种固有的复杂性主要由4个方面的原因造成的:
- 问题域的复杂性
- 管理开发过程的复杂性
- 随处可变的灵活性
- 描绘离散系统行为的问题
上面每一个方面都有极大的挑战,以「问题域的复杂性」为例,现在我们的大型系统中,动不动就几十个应用,组合在一起就是一个复杂的系统,而每个
如何写出一手好代码(上篇 - 理论储备)?
技术能力是研发同学的立身之本,而写代码的能力又是技术能力的重要体现。但可惜的是理想很丰满,现实很骨感。结合慕枫自己的经验来看,我们在工作中其实没那么容易可以看到写得很好的代码。
复杂性应对之道——矩阵思维(多维度思考)
> You should not be a if-else coder, should be a complexity conquer. -Frank
# 前言
这篇文章,是对之前我在[《一文教会你如何写复杂业务代码》](https://www.atatech.org/articles/146064)说的“自上而下的结构化分解 + 自下而上的抽象建模”方法论的升级。因为在之前的方法论中,我
深入理解领域驱动设计中的聚合
聚合模式是 DDD 的模式结构中较为难于理解的一个,也是 DDD 学习曲线中的一个关键障碍。合理地设计聚合,能清晰地表述业务一致性,也更容易带来清晰的实现,设计不合理的聚合,甚至在设计中没有聚合的概念,则相反。