原文:清晰架構(Clean Architecture)的Go微服務: 程序容器(Application Container)

清晰架構 Clean Architecture 的一個理念是隔離程序的框架,使框架不會接管你的應用程序,而是由你決定何時何地使用它們。在本程序中,我特意不在開始時使用任何框架,因此我可以更好地控制程序結構。只有在整個程序結構布局完成之后,我才會考慮用某些庫替換本程序的某些組件。這樣,引入的框架或第三方庫的影響就會被正確的依賴關系所隔離。目前,除了logger,數據庫,gRPC和Protobuf 這 ...

2020-01-09 19:58 2 223 推薦指數:

查看詳情

清晰架構Clean Architecture)的Go微服務: 程序設計

我使用Go和gRPC創建了一個微服務,並將程序設計和編程的最佳實踐應用於該項目。 我寫了一系列關於在項目工作中做出的設計決策和取舍的文章,此篇是關於程序設計。 程序的設計遵循清晰架構Clean Architecture)¹。 業務邏輯代碼分三層:用例(usecase),域模型(model)和數據服務 ...

Thu Dec 26 17:19:00 CST 2019 0 294
清晰架構Clean Architecture)的Go微服務: 程序結構

我使用Go和gRPC創建了一個微服務,並試圖找出最佳的程序結構,它可以用作我未來程序的模板。 我有Java背景,並發現自己在Java和Go之間掙扎,它們之間的編程理念完全不同。我寫了一系列關於在項目工作中做出的設計決策和取舍的文章。 這是其中的第一篇, 是關於程序結構的。 程序結構的資源 Go ...

Fri Dec 20 19:39:00 CST 2019 0 315
清晰架構Clean Architecture)的Go微服務

更新 我最近對這個框架進行了重大升級,雖然所做的改動不大,但成效顯著。這次更新修復了舊框架中的所有主要問題,盡管它的的主要項目結構和接口都沒有改變,具體改動內容請參見清晰架構Clean Architecture)的Go微服務—重大升級。 現在它幾乎擁有了我理想框架中的所有內容。它是一個輕量級 ...

Mon Feb 17 17:36:00 CST 2020 0 173
清晰架構Clean Architecture)的Go微服務: 事物管理

為了支持業務層中的事務,我試圖在Go中查找類似Spring的聲明式事務管理,但是沒找到,所以我決定自己寫一個。 事務很容易在Go中實現,但很難做到正確地實現。 需求: 將業務邏輯與事務代碼分開。 在編寫業務用例時,開發者應該只需考慮業務邏輯,不需要同時考慮怎樣給業務邏輯加事務管理 ...

Wed Jan 22 17:13:00 CST 2020 0 266
清晰架構Clean Architecture)的Go微服務: 日志管理

良好的日志記錄可以提供豐富的日志數據,便於在調試時發現問題,從而大大提高編碼效率。 記錄器提供的自動化信息越多越好,日志信息也需要以簡潔的方式呈現,便於找到重要的數據。 日志需求: 無需修改業務代碼即可切換到其他日志庫 不需直接依賴任何日志庫 整個應用程序只有一個日志庫 ...

Sat Jan 04 00:05:00 CST 2020 0 364
清晰架構Clean Architecture)的Go微服務: 編碼風格

編碼風格在編程中是一個相對乏味的主題,但是合適的編碼風格對一個有效的程序員是至關重要的。 它有三個組成部分: 程序結構 ( application layout) 編碼規則或風格 命名約定 我已經在清晰架構Clean Architecture)的Go微服務 ...

Mon Feb 03 18:05:00 CST 2020 0 209
清晰架構Clean Architecture)的Go微服務: 設計原則

我最近寫了一個Go微服務應用程序,這個程序的設計來自三個靈感: 清晰架構"Clean Architecture"¹ and SOLID (面向對象設計)² 設計 原則³ Spring的容器技術(Spring’s application context)⁴ Go的簡潔設計 ...

Mon Dec 30 17:21:00 CST 2019 0 335
清晰架構Clean Architecture)的Go微服務: 依賴注入(Dependency Injection)

清晰架構Clean Architecture)中,應用程序的每一層(用例,數據服務和域模型)僅依賴於其他層的接口而不是具體類型。 在運行時,程序容器¹負責創建具體類型並將它們注入到每個函數中,它使用的技術稱為依賴注入²。 以下是要求。 容器包的依賴關系: 容器包是唯一依賴於具體類型 ...

Thu Jan 16 18:11:00 CST 2020 0 898
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM