O'Reilly出版了一本免费的电子书《Software Architecture Patterns》(PDF),将目前流行的几种架构做了详细的介绍和对比,除了传统的分层架构,其他架构相当的前沿.这本书内容精简,非常值得一读,是软件架构非常好的入门书籍.这些文章是我阅读这本书后整理的笔记.
对于开发人员来说,不进行正式的架构设计就直接开发编码再普通不过.在工作上经常遇到这样的情况.没有一个明确的,定义良好的架构,大多数开发人员和架构师会采用传统的分层架构模式(也称为N层架构),将模块源码分隔成若干个包(package)进行分层.不幸的是,这种做法经常导致的结果是无组织的源码集合,各个模块缺乏明确的角色,责任和关系.这通常被称为大泥球(big ball of mud)反模式架构.
缺少架构的程序通常是紧密耦合,脆弱,难以改变的,没有头绪.如果不能理解系统的模块和组件之间的内部工作原理,很难确定程序的架构特征.
关于部署和维护的问题都很难回答:架构的规模如何?程序的性能特征如何?程序容易修改吗?程序的部署模型是怎么样?程序的响应如何?
架构模式可以帮助你定义程序的基本特征和行为.例如一些架构模式很自然让程序成为大规模(scalable)的程序,有些模式让程序变得灵巧敏捷(agile).了解这些架构的特征,优点和缺点,你就可以根据你特定的业务需求和目标选择一种合适的架构模式.
作为一个设计师,你需要解释自己选择的架构模式,尤其是在选择一个特别的体系架构模式,O'Reilly的Software Architecture Patterns》提供了充足的信息来为你的架构选择提供证明.
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow