原创 數據模型是否需要version字段

數據模型是否需要version字段 最近在設計數據庫模型的時候,總會碰到要不要加version字段的問題。並且我們通常都會把version字段備註成樂觀鎖,但這其實是不準確的。接下來我們來看一下具體的分析。 我們都明白鎖是爲了解決

原创 我眼中的DDD

我眼中的DDD 最早接觸DDD是在2018年,在接到一個事件記錄系統的設計開發任務時。當時DDD在國內已經很火了,但在工作環境裏還是個不太熱的東西,周圍並沒有什麼動靜。在做完這個系統後,覺得自己甚至掌握了DDD,DDD就是聚合跟和

原创 MyBatis更新字段爲null的一點思路

MyBatis更新字段爲null的一點思路 問題: 在好多工程裏,我們都習慣了使用if test=xxx!=null進行部分字段動態更新。但是如果我們遇到這種需要更新字段爲null的情況呢? 大概方案想到了三種: 去掉test條

原创 Java語法`new A(){}`說明

Java語法new A(){}說明 最近同事問了一個問題,FastJson裏的TypeReference的構造器是protect的,爲什麼可以使用new TypeReference(){}進行實例化呢? 之前碰見可以這樣進行初始化

原创 Spring Log初探

背景 在配置logback-spring.xml時,發現線上對對應的目錄沒有生成文件,並且本地運行的時候也沒有在指定目錄生成日誌,而是工程根目錄下LOG_PATH_IS_NOT_DEFINED打印了一部分日誌。 配置如下: app

原创 "不止代碼"推薦書單

書單 Effective Software Testing 程序員修煉之道-從小工到專家 設計模式之禪 Spoken Language Processing: A Guide to Theory, Algorith

原创 EventBus選型考慮

EventBus選型考慮 在做灰度組件時,有一個場景是雙寫,方式可以是同步或異步。同步寫很簡單,異步寫需要找到一個合適的EventBus框架,來支持對於不同類型事件的處理。 目前所知用的比較多的有Spring Event, Gua

原创 軟件大師訪談錄讀書筆記

讀了這本書,對職業發展和如何發展一下變得更爲清晰了。很棒的一本書。

原创 怎麼設計出好的錯誤碼

怎麼設計出好的錯誤碼 對於一個系統來說,錯誤碼是很重要的。好的錯誤碼能夠極大幫助使用者瞭解出錯的原因,快速定位問題以及快速解決。 我們總結了以下三個方面: 錯誤分類。使用號段的方式,來分類錯誤,方便使用者快速能夠定位問題和出錯

原创 小話灰度方案實現

在日常軟件建設中,我們有時會遇到一個新舊邏輯、新舊組件灰度切流的過程。如何能夠平滑的切流,相信會是每個開發者面臨的問題。 好的,我們進入正題。 灰度切流的用例圖很簡單。 根據這個用例最直觀的設計就是: 在一個gateway中包

原创 實體對象命名規範思考及總結

實體對象命名規範思考及總結 首先看下阿里規範的說明: 1 ) 數據對象: xxxDO, xxx 即爲數據表名。 2 )數據傳輸對象: xxxDTO, xxx 爲業務領域相關的名稱。 3 )展示對象: xxxVO, xxx 一般爲

原创 Http連接池總結

原创 ArrayList vs Arrays.ArrayList

ArrayList vs Arrays.ArrayList 在一次部署中,發現如下代碼竟然拋出來了UnsupportedException List<String> srcList = Arrays.asList(new String

原创 osx使用launchctl添加定時任務

osx使用launchctl添加定時任務 近期想做一個每天都要檢查的腳本,然後發送執行結果信息到通知裏。 其實思路很簡單,就是寫腳本,然後加入到launchctl裏。 在這個過程中踩了幾個坑,所以記錄一下。 腳本對應的plist文

原创 Generic class raw instance lose all generic ability

Generic class raw instance lose all generic ability 在使用一個泛型的class的時候,如果不用類型去實例化,那麼就會丟掉所有的泛型推斷能力。 參考下面SO的回覆。 It’s not