整潔架構(gòu)如何落地,推薦這個(gè)代碼模板
今天推薦的項(xiàng)目跟整潔架構(gòu)相關(guān),在介紹之前我們先引用以下提出這個(gè)概念的作者 Robert C. Marti 的一句話:
“軟件架構(gòu)的目標(biāo)是最大限度地減少構(gòu)建和維護(hù)所需系統(tǒng)所需的人力資源。” - Robert C. Marti
簡單理解就是架構(gòu)是希望讓軟件更容易構(gòu)建,同時(shí)隨著代碼開發(fā)的時(shí)間增加,依然很容易維護(hù)。但是在真實(shí)的工作中,以上兩項(xiàng)看似簡單的要求,其實(shí)非常難做到,如果你也維護(hù)過像面條一樣糾纏不清的項(xiàng)目代碼,相信你一定深有體會(huì)在老舊項(xiàng)目上加代碼有多難。我們對(duì)很多老舊項(xiàng)目的要求一再降低,甚至只要求它能夠運(yùn)行即可,但是黑天鵝事件還是會(huì)發(fā)生,它有一天會(huì)突然不能運(yùn)行了。
整潔架構(gòu)就試圖來解決上面的這些問題,通過將軟件進(jìn)行分層,且層之間依賴的是接口而不是具體的實(shí)現(xiàn),這樣使得程序的結(jié)構(gòu)更加的清晰,同時(shí)升級(jí)和維護(hù)也變得非常十分容易,更改某層的具體實(shí)現(xiàn)代碼,只要接口保持穩(wěn)定,其他層是不需要更改的。

以上就是整潔架構(gòu)中比較經(jīng)典的示例圖。今天要推薦的項(xiàng)目是 go-clean-template,是一個(gè)基于 Go 語言搭建的整潔架構(gòu)的代碼模板,go-clean-template 項(xiàng)目試圖去解決如下三個(gè)問題:

簡單翻譯就是:
1、試圖告訴你如何組織一個(gè)項(xiàng)目,避免其變成難以維護(hù)的面條代碼
2、業(yè)務(wù)邏輯代碼應(yīng)該如何存放,使其能夠保持獨(dú)立、整潔和可擴(kuò)展
3、當(dāng)微服務(wù)數(shù)量爆炸式增長時(shí),如何應(yīng)對(duì)避免失去控制
以下是該模板對(duì)應(yīng)的項(xiàng)目結(jié)構(gòu):

該項(xiàng)目中對(duì)具體的目錄有單獨(dú)的解釋,同時(shí)對(duì)依賴的注入有單獨(dú)的篇章進(jìn)行介紹。更多項(xiàng)目詳情請(qǐng)查看如下鏈接。
開源項(xiàng)目地址:https://github.com/evrone/go-clean-template
開源項(xiàng)目作者:evrone
開源書籍&資料:點(diǎn)擊
點(diǎn)如下卡片后臺(tái)回復(fù):1,與技術(shù)極客們一起交流開源項(xiàng)目,一起成長。
