架构之术
大道至简
避免过度设计
- 如何界定过度:设计是否浅显易懂,是否让人可以快速理解还是过于复杂
- 表现为把一件事做的过于复杂和以复杂的方式去完成一个任务
- 在设计中要警惕复杂的解决方案
在这一块儿的感触还是比较深的,在之前自己参加比赛的时候,为了给程序加一个漂亮的界面,使用了一个不懂的框架,在没有成功使用的情况下,费了很多劲,最后只能无奈放弃。而换个角度,详情把字段能力补齐,而导出复用能力,会来的更加方便,维护起来架构也异常简单,过度设计的成本很高。
方案中带有扩展DID
设计方案时候,要想的远些,比如应对是现有流量的10倍流量时候,这套设计是否会出现重大问题,而真正部署的时候如果是无状态的可以动态扩展的最好,比如核心应用最少要预留五倍容量。
- Design 设计应对20-无限容量的挑战
- Implement 实施3-20倍容量
- Deploy 部署1.5-3倍容量
多次简化方案
- 简化方案范围 比如砍掉些不必要的功能,释放更多资源投入到更有价值的事情上
- 简化方案设计 易于理解、低成本、高效益和可扩展的方式来完成工作
- 简化方案实施 最简单的实施是可扩展的衡量标准
累托原则: 收益的80%来自于20%的工作
借鉴https://www.jianshu.com/p/fe7eb8691b99