为什么读这本书
曾经听过关于三个建筑工人的故事,具体故事是:
一天,一位记者到建筑工地采访,分别问了三个建筑工人一个相同的问题。
他问第一个建筑工人正在干什么活,那个建筑工人头也不抬的回答:“我正在砌一堵墙”。
他问第二个建筑工人同样的问题,第二个建筑工人回答:“我正在盖房子”。
记者又问第三个建筑工人,这次他得到的回答是:“我在为人们建造漂亮的家园”。
记者觉得三个建筑工人的回答很有趣,就讲其写进了自己的报道。
若干年后,记者在整理过去的采访纪录时,突然看到了这三个回答。三个不同的回答让他产生了强烈的欲望,想去看看这三个建筑工人现在的生活怎么样。
等他找到这三个建筑工人的时候,结果令他大吃一惊:当年的第一个建筑工人现在还是一个建筑工人,仍然象以前一样砌着它的墙;而在施工现场拿着图纸的设计师竟然是当年的第二个建筑工人;至于第三个工人,记者没费多少工夫就找到了,他现在成了一家房地产公司的老板,前两个工人正在为他工作。
虽然这只是个故事,但某种程度上也表明了,看问题的角度不同,就会有不同的眼界,而一个人的眼界直接决定了他的前途。
所以,虽然我目前的工作主要是开发业务相关的代码,远没有达到设计项目架构的水平,但不希望自己永远停留在只会填业务代码的坑上,因此,想通过读读架构方面的书籍,了解不同角色是如何看待问题和分析问题。
主要内容
不论是开发软件产品,还是做项目,刚开始都会涉及到架构的设计。随着互联网技术的快速发展,以及不同业务的需求,使得设计架构的要求有千变万化。这本书的作者根据自己的多年架构设计经验,总结了一套架构设计方法论。
首先,作者认为设计架构的原因是为了解决软件系统复杂度带来的问题。其中高性能、高可用和可扩展是造成软件系统复杂度的三个重要原因。
如何设计合适的架构?作者提出了三个原则:合适原则、简单原则和演化原则。
怎样设计架构?作者提出了四步骤:识别复杂度、设计备选方案、评估和选择备选方案、详细方案设计。
最后,作者还结合案例,详细阐明了如何根据这些原则和步骤,真正实现架构设计。