Odd-e CSD Course Day 3

Mocking

在提到Mocking時,其實有提到為什麼我們需要 Mocking

Odd-e CSD Course Day 3Odd-e CSD Course Day 3

from: Odd-e CSD course

可以透過上圖來了解這個概念,當我們需要用到 Mock 時,其實是因為我們測試目標與其它類別有相依,而且有進行相關的互動。這時候我們就需要利用 Mock 來解決相依的那一個類別,讓我們測試能更容易的進行

Code Smells & Refactoring

今天主要的是介紹了一下 Code Smells 與 重構的一些技巧

當中也透過 Code Review 提醒我們一些注意事項

Code Smells 與重構網上資源太多,這裡就不多著墨。比較有趣的是一個點,我跟小夥伴在做一個功能時,用了 Code Generator 產出了 CRUD ,但在最後回顧時, PO 說了,他其實並沒有要 RUD 的功能,但是我們卻做了,這是一件很可怕的事。 為什麼? 這代表團隊成員完成後 PO 才知道,而這些時間其實是白花的。

你其實偷了 PO 的錢  ,這件事其實讓我蠻驚訝的,因為平常開發時其實並不會想到這件事,有時候在做功能時,真的會多花了時間去做了一些目前還不需要的設計或額外的功能,卻完全沒想到其實這是一種無形成本。在當下聽完之後其實又有另一種體悟 XD

而在重構這個部分 Terry 有建議我在 C# 中有幾個東西最好不要碰

分別是 反射 、Code Generator 、 If #define ,原因很簡單,因為用了多過這些東西,會讓你的系統變複雜很難維護與測試,(if #define 事實上是 duplicate 的程式碼)

而在測試的部分他建議寫完一個新的測試後,應該要跑完全部的測試並且通過,而不是只看當下那個新的測試是否通過。

另一個更重要的是,保持一次只處理一件事,意思是當你的測試中有一個是 Fail 的,你應該先修復他後再進行下一個測試,千萬不要漏掉了這個步驟。

而在 TDD 不斷演進的過程中,也可以透過命名來覺察目前的階段。原因是命名在一開始的時候其實是比較具象化的,但在演進了一段時間後命名應該會變的比較抽象化才對

團隊

最後我問 Stanly 關於團隊的一些問題

Stanly 首先說了,他去日本帶 CSD 的時候,發現到日本團隊在進行的過程中,常常會問大家是否有聽過某個新技術,然後當下就進行分享。而其中一個更利害的是,他們有一個 Task 是要利用住址來取得經緯度。這個團隊成員討論完後就進行相關的調研,最後列出了一個表格,包含了實作方法、價格、使用限制。感覺真的很利害 !!!

而我提了一些問題是,如果回去就分享的話,對團隊會有幫助嗎?

Stanly 回應我,大多數人在分享的時候其實是會誤入一個陷阱,這個陷阱在於分享的內容沒有連結到聽眾的痛點,所以整個分享是沒有意義的,因為對他來說沒有任何的感覺

而如果想改善組織現況,比如說關於 TDD ,可以先觀察同事是否已經對持續做 Task 這件事上癮了,如果他已經上癮了。其實是比較難改變的

另外一種作法是,先持續的解決其它人問題,幫助其它人。

久了之後其它人就會有認知,你可以解決他們的問題 ,這時候再影響與推動改變就比較有機會

繼續閱讀 Odd-e CSD Course Day4

對課程有興趣的同學,可以到以下網站找到相關的資訊

https://www.odd-e.com/

上一篇:C# winfrom 通过代码 删除TableLayoutPanel控件的一行或列


下一篇:Zerojudge解题经验交流