《架构之美》阅读笔记二
人们在生活和工作中发现美并创造美,软件开发和架构设计也不例外。架构之美体现了关注点的分离与结合。在软件设计中,设计师需要考虑多方面的关注点。漂亮的架构设计让这些关注点尽可能分离,然后以最简单的机制结合在一起,从而得到高内聚、低耦合的系统。例如在Darkstar项目中,架构师们考虑的重点就是如何将多人在线游戏的游戏逻辑与系统的可伸缩性分离开来,让游戏的开发者只要遵守少量的规则,就能够像编写单机游戏一样编写大规模多人在线游戏。又如REST架构风格,体现了对资源命名、请求处理和资源物理表现形式的关注点分离。资源的名称与请求资源时服务器的处理方式无关,请求者无需知道服务器端采取的技术,并且请求者本来就不关心服务器端的处理技术。资源的物理表示形式可以通过内容协商来决定,使系统可以支持多种物理表示形式,并可以方便地扩展。架构之美注重表达的简洁性。“Don’t Ret Repeat Yourself ”,好的架构致力于消除各种类型的信息重复。从结构化程序设计中的子程序和函数,到面向对象程序设计中的继承,无不体现了对表达简洁性的特殊偏爱。在敏捷方法学中,消除重复则是重构的主要目的之一。
在我阅读了第二章的两个系统故事之后,清晰的看到了有一个很好的架构和没有架构的区别,正如书中所说,一个很好的架构就像建筑和后面的路构成的一个城市,均衡和和谐,有利于导航;而后者是偶然代码聚集而成的一个系统,交通设施简陋,建筑单调而平凡置身于其中会完全找不着路。当然我们会更喜欢于前者,这就是两者之间一个很大的区别。
通过对于第二章的简单阅读学到了架构的一些基本知识:
1)架构建立时要考虑到系统的扩展性,要有很好的接口;
2)有意识的加入单元测试,避免后期维护的困难,
3)系统各功能和模块注意内聚和耦合,避免不必要的内聚和耦合;
4)最重要的一点还有在开发软件的始终要保持软件的品质;
5)还有软件团队之间的协作也是很重要的一点。