系统设计时,需考虑哪11个关键因素?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2866个文字,预计阅读时间需要12分钟。
有了《系统架构的11条原则》,真正到设计阶段还有额外11个考量。系统正确性:考量一:负负得正;假如图像,我们看到某段代码,明显有逻辑错误,想随意修改。你必须考虑一件事情:这段代码为什么会出现?
有了《系统架构的11条原则》,真正到设计阶段还有另外11个考虑。
系统正确性
考虑一:负负得正
假如我们看到某个代码,明显有逻辑错误,想随手改改。你就要考虑一件事情:这段明显有问题的代码为什么在线上运行着没有人来报bug?有一种正常运行叫做。如果把错误的逻辑改对了反而可能引起问题。
这种问题要避免最好的时机是初版设计和开发阶段就避免。除了设计阶段逻辑要清晰,代码要做好审查、加上单体测试等测试手段外,可以将中间结果用debug日志打印。建议自测阶段多用debug级别日志跑几遍,进行观察。
考虑二:终态设计
在分布式系统中,由于系统是分布在不同机器上的。还可能有一种状态叫:超时。成功、失败和超时是分布式系统调用的三态。
超时不是终态,而是一种中间状态:最终有可能下游是成功了,也有可能是失败了。这时候我们需要在超时之后推定一种状态,推定成功或者失败。究竟是成功还是失败因功能而异。
比如付款操作,需要推定失败。如果不知道是否成功就推定是成功的,那用户可能没有付款就拿到了商品或者享受了服务,商家就会资金损失。
本文共计2866个文字,预计阅读时间需要12分钟。
有了《系统架构的11条原则》,真正到设计阶段还有额外11个考量。系统正确性:考量一:负负得正;假如图像,我们看到某段代码,明显有逻辑错误,想随意修改。你必须考虑一件事情:这段代码为什么会出现?
有了《系统架构的11条原则》,真正到设计阶段还有另外11个考虑。
系统正确性
考虑一:负负得正
假如我们看到某个代码,明显有逻辑错误,想随手改改。你就要考虑一件事情:这段明显有问题的代码为什么在线上运行着没有人来报bug?有一种正常运行叫做。如果把错误的逻辑改对了反而可能引起问题。
这种问题要避免最好的时机是初版设计和开发阶段就避免。除了设计阶段逻辑要清晰,代码要做好审查、加上单体测试等测试手段外,可以将中间结果用debug日志打印。建议自测阶段多用debug级别日志跑几遍,进行观察。
考虑二:终态设计
在分布式系统中,由于系统是分布在不同机器上的。还可能有一种状态叫:超时。成功、失败和超时是分布式系统调用的三态。
超时不是终态,而是一种中间状态:最终有可能下游是成功了,也有可能是失败了。这时候我们需要在超时之后推定一种状态,推定成功或者失败。究竟是成功还是失败因功能而异。
比如付款操作,需要推定失败。如果不知道是否成功就推定是成功的,那用户可能没有付款就拿到了商品或者享受了服务,商家就会资金损失。

