Odd-e CSD Course Day 3
Mocking
在提到Mocking時,其實有提到為什麼我們需要 Mocking


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 Day 3的更多相关文章
- [LeetCode] Odd Even Linked List 奇偶链表
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...
- Odd Even Linked List
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...
- LeetCode 328. Odd Even Linked List
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...
- tr:even 与tr:odd
:even匹配所有索引值为偶数的元素,从 0 开始计数查找表格的1.3.5...行(即索引值0.2.4...)<table> <tr><td>Header 1< ...
- Leetcode Odd Even Linked List
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...
- CSS3伪类选择器:nth-child()(nth-child(odd)/nth-child(even))
nth-child(odd):奇数 nth-child(even):偶数 使用时,如果是精确到数字时,切记是从同一级别的元素开始计算,而不是指定某个类才开始计算. 比如: <li>< ...
- [CareerCup] 5.6 Swap Odd and Even Bits 交换奇偶位
5.6 Write a program to swap odd and even bits in an integer with as few instructions as possible (e. ...
- [Educational Codeforces Round 16]C. Magic Odd Square
[Educational Codeforces Round 16]C. Magic Odd Square 试题描述 Find an n × n matrix with different number ...
- 328. Odd Even Linked List——多利用fake_head
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...
- 越狱Season 1-Episode 12:Odd Man Out
Season 1-Episode 12:Odd Man Out -Sorry to keep you waiting. 抱歉让你等了半天 -Oh, it's, uh, not a problem. 嗯 ...
随机推荐
- angular.toJson()
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 网站 Cookie only 唯一 防止被截获
void Page_Load(object sender, EventArgs e) { // Create a new HttpCookie. HttpCookie myHttpCookie = n ...
- 小程序重新封装打印函数console.log
习惯性使用console.log打印获取到的数据,信息等,然后上星期大佬看见了说怎么那么多打印信息出来,线上那个也是吗?问我能不能线上的就不打印出来? 我就说那就封装一个打印函数呗. 重写一个没问题, ...
- 【C语言】多项式加法(mooc第七周测试题)
这个小题目吧我折磨的够呛,,主要在于特殊情况考虑不周,测试用例老是通不过.. 小结: 做法:用一个数组来存储多项式,用下标表示幂次数,数组元素值表示对应系数 输出特殊格式考虑:系数和幂次数为0,1,- ...
- 【记录】Windows 操作系统常用快捷命令
https://www.lifewire.com/command-line-commands-for-control-panel-applets-2626060 打印机 control pr ...
- centos7 64运行32位程序
yum在线安装: sudo yum install xulrunner.i686 或者: sudo yum install ia32-libs.i686 PS:可以查看一下当前源库里有没有ia32-l ...
- request.getRequestDispatcher跳转jsp页面失败
我在JS里面写了个Ajax,传值给控制器,然后利用request.getRequestDispatcher(),打算跳转至另外一个页面.但是没有跳转成功,运行之后没反应. 在网上搜了资料发现,利用aj ...
- 让 ComboBox 的每个栏目显示不同颜色
在一般的应用程式中,使用 ComboBox 提供下拉选单的功能,让使用者选择不同项目,一般而言, ComboBox 的项目没有什么特别的,但在特定的应用程式中,有时候会希望每个项目有一些效果呈现,例如 ...
- java字符串应用之字符串编码转换
[转载]原文地址:https://blog.csdn.net/zhouyong80/article/details/1900100 无论是对程序的本地化还是国际化,都会涉及到字符编码的转换的问题.尤其 ...
- PHP算法之选择排序
//选择排序 $array = [10,203,30,2,4,43]; //第一次从下标为0的开始下标为0的这个数与后面的n-1个进行比较:找出最小或者最大的放在下标为0的这个位置; //第二次从下标 ...