上午
圓老師 建哥帶我們先回顧了昨天寫的代碼,做了一次code diff,找出了下列幾個問題。
問題
- 測試文件中在每一個測試案例中都初始化了類
- 類中的方法行為不是該類所具有的
- 代碼沒有格式化
- 類名和方法名不適合
- 每重構一次代碼,需要運行一次測試
- 有重復代碼
- 在一個方法中處理了兩件事
- 有不必要的臨時變量
解決辦法
- 在測試文件中加一個setup方法
- 移動方法到正確的類中
- 檢查代碼空行/格式化
- 類名是名詞,方法名用動詞
- 重構一次運行測試
- 消除重復
- 分離職責
- 去除不必要的臨時變量
下午
part1
我們過了每個人前一天畫的4個概念圖,包括Map, Collection, Java面向對象, RESTful API. 話說概念圖真的好難畫!!!
每個人都找出了一些問題,每個人都有的問題有:
- 表達不清晰
- 概念不具體
- 分類不正確
還好今天只要先完善兩個概念圖。寫完這個就去改圖。
part2
圓老師 建哥簡單地給我們介紹了三層架構,這是經典的三層架構圖:
表現層大多用JSP, Js, Angular, Reactive等技術,是展示給用戶看的。
業務層多用model, DTO, utils等技術,在這一層處理業務邏輯。
數據層用mapper, JPARepository,這一層存儲數據。
首先,表現層向業務層發請求,業務層處理邏輯,從數據層拿到數據,然后業務層對數據進行處理,再返回給表現層。
規定:低層不能調用上層,同層可以互相調用,不夠數據層和Controller除外。
三層架構的優點有
- 開發人員可以只關注整個結構中的其中某一層;
- 可以很容易的用新的實現來替換原有層次的實現;
- 可以降低層與層之間的依賴;
- 有利于標準化;
- 利于各層邏輯的復用;
- 結構更加的明確;
- 在后期維護的時候,極大地降低了維護成本和維護時間。
有優點就有缺點,三層架構的缺點有
- 降低了系統的性能。這是不言而喻的。如果不采用分層式結構,很多業務可以直接造訪數據庫,以此獲取相應的數據,如今卻必須通過中間層來完成。
- 有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和數據訪問層中都增加相應的代碼。
- 增加了開發成本。
很多時候我們講三層架構都會提到MVC框架,建哥也給我們介紹了MVC。
模型(Model),用于存儲程序中使用到的數據;
視圖(View),用不同的表現形式來呈現數據;
控制器(Controller),更新模型。
MVC是表現層的設計模式,核心目的是解耦。
MVC與三層架構的對應關系是:
- V(View) 對應表現層
- C(Controller)對應表現層與業務邏輯層之間的Controller
- M(Model)對應表現層與Controller下面所有的東西,包括業務邏輯層和數據層
總結
以上就是圓老師 建哥給我們今天講的東西,期待明天的RESTful和Spring。
話說RESTful還沒講23333