架构设计的关键思维是判断和取舍,程序设计的关键思维是逻辑和实现。There is no silver bullet. 1为何结构化编程、面向对象编程、软件工程、架构设计最后都没有成为软件领域的银弹?软件本身的复杂度难以度量,随时间和规模发展,原有的解决方案很快难适应,人们就不断总结经验模式和设计解决新困难的办法,但是不管什么样的架构设计都是在尽量满足适应我们可能遇到的问题的解决方案,不是解决问题方案。生活中我们的应用从单体到主备再到集群、分布式、微服务等,这些其实都是解决和改善、完善、优化我们在软件