代码耦合性,一般是指同一个程序里不同模块间的代码相互依赖的程度,如果一个程序其内不同模块(尤其是同一级模块)之间要求同时具备才能不报语法错误、模块缺失错误地运行起来,那就是高耦合度;如果一个程序,除了最基础的底层模块之外,其上的业务模块之间相互没有显式的调用关系,增加、减少一些模块都不会让程序运行时报出语法或模块缺失错误,则属于耦合度低。
一般程序模块间降低耦合度,往往是降低业务功能模块的耦合度,是通过一定的底层框架模块代码作为桥梁,业务模块代码只和框架模块代码发生少量耦合关系,而框架模块代码往往经历过千锤百炼了,稳定可靠、极少还需要发生变化系统源码,由此降低了代码耦合性。常见的框架代码有JAVA领域的Spring Mvc、SSH、JFinal;PHP领域的YII、CI、ThinkPHP等等。
我们做程序设计时,对于一定规模的程序,一般都追求程序高内聚低耦合,也就是代码耦合度低、功能自成一体外部软件依赖少。
分布式系统往往不是在谈论代码模块级别的问题系统源码,而是系统架构是“分布式”的——特指网络程序。可能是同一份程序运行在很多台主机上,实现业务诉求(这些主机相互地位可能对等也可能不对等);也可能是不同代码实现相同网络功能的程序运行在很多主机上配合实现一个系统;还可能是多种不同功能的程序在很多主机上运行,相互配合实现一个系统(这种情况主机之间是一定存在不对等地位的)。分布式系统与其内运行的各程序是否耦合度高低无关。
典型分布式系统比如比特币系统、BT下载系统、互联网域名解析系统(DNS)等。