2019.10月總結

轉眼已經11月份了,寫下最近學到的一些知識以及這個月需要學習的知識,雖然出來實習後時間可能比較少,寫博客的頻率比較低,但是一個月還是必須要總結一下的:

1. DO、DTO、VO、POJO的區別

參考阿里巴巴代碼規範:

  • DO( Data Object):與數據庫表結構一一對應,通過DAO層向上傳輸數據源對象。
  • DTO( Data Transfer Object):數據傳輸對象,Service或Manager向外傳輸的對象。
  • BO( Business Object):業務對象。 由Service層輸出的封裝業務邏輯的對象。
  • VO( View Object):顯示層對象,通常是Web向模板渲染引擎層傳輸的對象。
  • POJO( Plain Ordinary Java Object):在本手冊中, POJO專指只有setter/getter/toString的簡單類,包括DO/DTO/BO/VO等。
  • Query:數據查詢對象,各層接收上層的查詢請求。 注意超過2個參數的查詢封裝,禁止使用Map類來傳輸。

領域模型命名規約:

  • 數據對象:xxxDO,xxx即爲數據表名。
  • 數據傳輸對象:xxxDTO,xxx爲業務領域相關的名稱。
  • 展示對象:xxxVO,xxx一般爲網頁名稱。
  • POJO是DO/DTO/BO/VO的統稱,禁止命名成xxxPOJO。

2.代碼規範

代碼一定要規範,這一點可以參考阿里巴巴代碼規範,總結的還是很詳細的,通讀一遍,會收穫許多,最近我也是一直嫌棄自己的代碼怎麼可以這麼醜,而且無章可循,就比如說

  • 註釋,一般接口、類、枚舉類的屬性、類屬性、類方法這些都是需要註釋的,不然不好維護;
  • 能簡潔就簡潔,比如說能使用lambda表達式那種就使用那種,使人看起來很舒服;
  • 避免踩坑,這裏就要靠經驗,比如說不要在ArrayList.foreach裏面進行add和remove操作,會報異常,應該使用迭代器;
  • 注意時間複雜度,SQL語句編寫要規範。
  • 谷歌編碼規範
  • 曉風輕技術小站

3.Git的學習

對於Git的學習還是實操比較好,可以參考官方文檔。crison也跟我們培訓了Git的常規使用以及原理;

  • Git的分支操作其實就是基於鏈表來實現,鏈表切換分支可以達到O(1)的時間複雜度,切換分支時就把Head指針指向哪個分支;

  • Git不保存文件的內容,Git只存儲變更記錄。

  • git init --bare 跟 git init 的區別:
    git init --bare 只是new 一個裸露的.git文件,不能編輯文件的內容,只有.git文件
    git init 的話除了有.git文件外,還可以記錄文件內容

  • Git的遠程倉庫也可以在本地,不一定只在遠端;

  • .git文件包含以下內容:
    在這裏插入圖片描述

4.中臺戰略思想

我個人理解的中臺就是說把一些公共的東西抽取出來,不要做重複的東西。大中臺,小前臺,簡便開發。
可以參考以下文章:
阿里中臺思想
ThoughtWorks洞見

5. Mybatis-Plus 的常規使用

最近由於業務驅動,持久層的框架是Mybatis-Plus,花一波時間再去好好了解以下,真的,官方文檔就足夠,學什麼都是如此,可以站在巨人的肩膀上學習。

使用這些主要是進行單表的簡單操作,其中還包含一些lambda表達式。使用lambdaQuery相對更好一點,不用硬編碼,以後比較好維護。
在這裏插入圖片描述

6. PostMan的使用

  • 適當建立工作區
    在這裏插入圖片描述
  • 建立收藏夾,以後方便進行測試
    在這裏插入圖片描述
  • 適當使用變量
    在這裏插入圖片描述
    這樣在路徑中就可以通過{{url}}、和{{token}}來獲取值,這樣顯示的就很清楚。
    在這裏插入圖片描述

7.深拷貝和淺拷貝

  • 淺拷貝:對基本數據類型進行值傳遞,對引用數據類型進行引用傳遞般的拷貝,此爲淺拷貝
  • 深拷貝: 對基本數據類型進行值傳遞,對引用數據類型,創建一個新的對象,並複製其內容,此爲深拷貝。

BeanUtils.copyProperties是一個淺拷貝方法,複製屬性時,我們只需要把DTO對象和要轉化的對象兩個的屬性值設置爲一樣的名稱,並且保證一樣的類型就可以了。如果你在做DTO轉化的時候一直使用set進行屬性賦值,那麼請嘗試這種方式簡化代碼,讓代碼更加清晰!

  • org.springframework.beans.BeanUtils.copyProperties(source, dest) 將source複製給dest
  • org.apache.commons.beanutils.BeanUtils.copyProperties(dest,source) 將dest賦值給source

使用org.apache.commons.beanutils.BeanUtils對複雜對象的複製是引用,這是一種淺拷貝,org.apache.commons.beanutils.BeanUtils下的BeanUtils對象拷貝性能太差,不建議使用。

spring下的BeanUtils也是使用 copyProperties方法進行拷貝,只不過它的實現方式非常簡單,就是對兩個對象中相同名字的屬性進行簡單的get/set,僅檢查屬性的可訪問性。

對於以上兩種最好寫一個工具類來進行賦值,不然某天改代碼的話會很麻煩。

TODO List

  • Docker(命令、原理、用途)
  • K8s(原理可參考文檔)
  • Linux(一些不常用的命令也要會)
  • Java8(Lambda表達式)
  • Kafka

路漫漫其修遠兮,吾將上下而求索,感覺還是很多東西要學哈😂,師父領進門,修行還是得靠個人,有幸的是公司很多大牛可以教你,不懂就問,收穫頗豐富。

發佈了44 篇原創文章 · 獲贊 14 · 訪問量 6485
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章