本次阅读的是《架构真经》关于“复杂度”的知识内容,以下是自己的学习总结:
一.避免过度设计
1、不要超过实际使用需求,例如:设计支持100亿人登陆的系统、家用空调可以达到零下的度数等等
2、不要把事情做复杂或者以复杂的方式工作,让事物超过实际需要进行工作。select * 却不需要所有的列一次请求反复查询同样的数据而未使用缓存
3、让用户费不必要的精力,增加用户不使用的功能,比如如果微博提供转化pdf下载,就是不必要,这方面微信做的非常好,功能做的很克制,用户使用门槛非常低
4、让工程师去理解不必要的事情
(1)代码写的特别复杂,不清晰,设计的过于复杂,比如一个功能设计了十几个开关、十几个参数配置等等。设计的太复杂了,对于设计评审、代码review、测试评审都是灾难,其余专业的人员也很难发现问题并提出专业的意见,会严重降低工程的质量,如果不能及时修正,就会最终失控,如果出现故障,无法在短时间内进行解决和修复。
二.避免过度设计的原则
DID原则
D(Design) 按照20倍进行设计
I(Implement) 按照3倍进行实现
D(Deploy)按照1.5倍进行部署,其中基础设施要可扩展比如使用云等
三. 三次简化方案
(1)简化需求,简化设计,简化开发部署:
(2)帕累托原则(80-20法则):业务中最繁忙的代码应该只占总代码量的20%,所以精简项目的开发模块,把精力集中在这重要的20%的代码开发上。最小化可行产品:以最小的努力获得经过验证的最大化客户感知量。