首页 » 程序员必读之软件架构 » 程序员必读之软件架构全文在线阅读

《程序员必读之软件架构》理解意义

关灯直达底部

后退一步想想哪些对你的软件系统很重要,这往往是值得的。例如,很多团队使用关系型数据库,这个选择可能被认为很重要。为了减少在数据库技术变化时必要的返工量,很多团队会使用Hibernate或Entity Framework这样的ORM框架。引入额外的ORM层使得数据库操作能与代码的其他部分解耦,而且理论上,不用花费很多精力就能独立地切换数据库。

引入额外层的决策是将某个部分从软件系统中解耦的经典技术,促进了低耦合、高内聚和更好的关注点分离。此外,有了ORM以后,可能一个下午就完成了数据库的切换。从这一点来说,从架构上它不会再被看作是重要的。

然而,当数据库的选择可能不再被当作重要决策时,通过引入额外层实现解耦就应该是重要决策。如果你想知道为什么,试想把你当前所用的ORM或Web MVC框架完全替换成另一个,要花多长时间。当然,你可以在所选的ORM上再添加其他层,以隔离业务逻辑,并提供轻松替换ORM的敏捷性。但是,你又做出了另一个重要决策:引入了额外的分层、复杂性和成本。

尽管“重要决策”没法彻底消失,但能通过架构分层等多种策略来改变。软件系统架构流程的一部分就是搞清楚哪些是重要的及为什么。