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