代碼耦合性,一般是指同一個程序里不同模塊間的代碼相互依賴的程度,如果一個程序其內不同模塊(尤其是同一級模塊)之間要求同時具備才能不報語法錯誤、模塊缺失錯誤地運行起來,那就是高耦合度;如果一個程序,除了最基礎的底層模塊之外,其上的業(yè)務模塊之間相互沒有顯式的調用關系,增加、減少一些模塊都不會讓程序運行時報出語法或模塊缺失錯誤,則屬于耦合度低。
一般程序模塊間降低耦合度,往往是降低業(yè)務功能模塊的耦合度,是通過一定的底層框架模塊代碼作為橋梁,業(yè)務模塊代碼只和框架模塊代碼發(fā)生少量耦合關系,而框架模塊代碼往往經歷過千錘百煉了,穩(wěn)定可靠、極少還需要發(fā)生變化系統(tǒng)源碼,由此降低了代碼耦合性。常見的框架代碼有JAVA領域的Spring Mvc、SSH、JFinal;PHP領域的YII、CI、ThinkPHP等等。
我們做程序設計時,對于一定規(guī)模的程序,一般都追求程序高內聚低耦合,也就是代碼耦合度低、功能自成一體外部軟件依賴少。
分布式系統(tǒng)往往不是在談論代碼模塊級別的問題系統(tǒng)源碼,而是系統(tǒng)架構是“分布式”的——特指網絡程序??赡苁峭环莩绦蜻\行在很多臺主機上,實現業(yè)務訴求(這些主機相互地位可能對等也可能不對等);也可能是不同代碼實現相同網絡功能的程序運行在很多主機上配合實現一個系統(tǒng);還可能是多種不同功能的程序在很多主機上運行,相互配合實現一個系統(tǒng)(這種情況主機之間是一定存在不對等地位的)。分布式系統(tǒng)與其內運行的各程序是否耦合度高低無關。
典型分布式系統(tǒng)比如比特幣系統(tǒng)、BT下載系統(tǒng)、互聯網域名解析系統(tǒng)(DNS)等。