現(xiàn)在的軟件開發(fā)模式和傳統(tǒng)的有很多差別,傳統(tǒng)的開發(fā)模式耦合度較高,隨著技術(shù)的發(fā)展越來越多的開發(fā)模式被應(yīng)用,比如微服務(wù)架構(gòu)模式。其實很多開發(fā)語言都有自己的微服務(wù)解決方案,如Java系的Spring Boot、Spring Cloud等。但在實際項目開發(fā)中,即使是在微服務(wù)開發(fā)模式下,依舊有很多人喜歡單獨抽離出一個api模塊,這是為什么呢?

什么是微服務(wù)?

其實“微服務(wù)”并不是一種新的技術(shù),而是一種新興的架構(gòu)模式。簡單的說就是將一個服務(wù)拆成多個顆粒度小、易復(fù)用的子服務(wù),這樣做的好處就是:

  • 應(yīng)用/服務(wù)解耦,避免了單個業(yè)務(wù)過于復(fù)雜;
  • 每個微服務(wù)獨立開發(fā)和部署,擴展性更強,可以實現(xiàn)服務(wù)高可用;
  • 服務(wù)組件化,易復(fù)用。
  • Java開發(fā)

后端微服務(wù)開發(fā)時為什么還要單獨抽離API模塊?

既然我們是以微服務(wù)模式來開發(fā)項目的,為什么很多開發(fā)者還習(xí)慣性的建立一個API模塊出來呢?

其實開發(fā)微服務(wù)時,可以采用單模塊模式來開發(fā),而很多人采用多模塊來開發(fā)是因為遵循了“高內(nèi)聚、低耦合”的設(shè)計模式,這樣做的優(yōu)點就是:

1、邊界清晰、易于管理

一個中型項目在開發(fā)時會有很多業(yè)務(wù)和模塊,它們分散在各個包中,這樣就很混亂。如果有些API是希望對外公開的,有些API只允許內(nèi)部訪問或有限訪問,那就有必要將公開的API單獨抽離到一個單獨的API模塊中,這樣管理起來更方便。
 

2、各模塊間更容易聚合

把項目拆成多模塊來開發(fā),我們可以通過maven等來解決依懶關(guān)系,可以很方便的實現(xiàn)模塊間的聚合,各個模塊也可以單獨使用。

比如將工程拆分為這幾個模塊:公共模塊、對外API模塊、管理和監(jiān)控模塊、業(yè)務(wù)模塊等。

Java開發(fā)