软件的可修改性:软件质量属性中的可修改性是指容易修改的能力,其包括修正,改进和用户需求的变化。

  今天阅读了《大型网站技术架构:核心原理与案例分析》,里面没有明确的讲到软件的可修改性,我看了相关的网站的可扩展性。

  网站的可拓展性是指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。表现在系统基础设施稳定不需要经常变更,应用之间较少依赖和耦合,对需求变更可敏捷响应。他是系统架构设计层面的开闭原则(对扩展开放,对修改关闭),架构设计考虑未来功能呢扩展,当系统增加信功能是,不需要对现有系统的结构和代码进行修改。

  构建可扩的网站架构,降低系统的耦合性是设计的终极目标,低耦合的系统更容易扩展 ,低耦合的模块更容易复用,其开发过程和维护也会变得更加轻松和容易管理。一个复杂度为100的系统分成没有耦合的两个子系统,那么每个子系统的复杂度不是50,可能是25甚至更低。当然,完全没有耦合就是没有关系,就无法组合出一个好的系统。所以如何分解系统的各个模块,如何定义各个模块的接口、如何复用组合不同的模块构造成一个完整的系统,这是构建可扩展网站的重中之重。

  本书中提到的主要方法是将这些模块进行分布式部署,独立的模块部署在独立的服务器(集群)上,从物理上奋力模块之间的耦合关系,进一步降低耦合性提高复用性。

  利用分布式消息队列降低耦合度

可调式的android应用_可修改性

消息发送者发布消息,一个或多个接收者订阅消息。消息发送者是消息源,将消息发送至消息队列,消息接受者只需从队列中获取消息处理即可,消息的发送者和接受者没有直接联系,增加新的业务只需添加新的消息接受者来处理该消息,对系统没有任何影响。

  利用分布式部署模块能很好的降低系统的耦合度,大大提高了系统的可扩展性。