1.软件设计模式针对的是代码片段的复用,而SOA实施中讨论的是服务的复用(这里的服务复用和组件复用是一个概念不?)
2.以学习软件复用为目的(不仅是自己的代码编写,我们还要花足够多的时间去了解这个世界所有的那些轮子,这样我们才能最大化开源的价值)
3.面向接口编程
4.
软件的生命性
软件是有生命的,这可能是老调重弹了,但是因为它事关分层架构的原由,反复强调都不过分。
一个有生命的软件首先必须有一个灵活可扩展的基础架构,其次才是完整的功能。
目前很多人对软件的思想还是焦点落在后者:完整的功能,觉得一个软件功能越完整越好,其实关键还是架构的灵活性,就是前者,基础架构好,功能添加只是时间和工作量问题,但是如果架构不好,功能再完整,也不可能包括未来所有功能,软件是有生命的,在未来成长时,更多功能需要加入,但是因为基础架构不灵活不能方便加入,死路一条。