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 Day4

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

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

Odd-e CSD Course Day 3的更多相关文章

  1. [LeetCode] Odd Even Linked List 奇偶链表

    Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...

  2. Odd Even Linked List

    Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...

  3. LeetCode 328. Odd Even Linked List

    Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...

  4. tr:even 与tr:odd

    :even匹配所有索引值为偶数的元素,从 0 开始计数查找表格的1.3.5...行(即索引值0.2.4...)<table> <tr><td>Header 1< ...

  5. Leetcode Odd Even Linked List

    Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...

  6. CSS3伪类选择器:nth-child()(nth-child(odd)/nth-child(even))

    nth-child(odd):奇数 nth-child(even):偶数 使用时,如果是精确到数字时,切记是从同一级别的元素开始计算,而不是指定某个类才开始计算. 比如: <li>< ...

  7. [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. ...

  8. [Educational Codeforces Round 16]C. Magic Odd Square

    [Educational Codeforces Round 16]C. Magic Odd Square 试题描述 Find an n × n matrix with different number ...

  9. 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 ...

  10. 越狱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. 嗯 ...

随机推荐

  1. [LeetCode] Magic Squares In Grid 网格中的神奇正方形

    A 3 x 3 magic square is a 3 x 3 grid filled with distinct numbers from 1 to 9 such that each row, co ...

  2. IntelliJ IDEA配置Tomcat和Lombok

    Tomcat的安装和配置 Tomcat 是在SUN公司的JSWDK(JavaServer Web DevelopmentKit)的基础上发展而来的一个优秀的Servlet容器,其本身完全是由Java编 ...

  3. Windows系统MySQL安装配置

    MySQL是一个开放源代码的数据库管理系统,是由MySQL AB公司开发.发布并支持的,现在属于Oracle旗下产品. 与其他大型数据库管理系统如Oracle.DB2.SQL Server等相比,虽然 ...

  4. BurpSuite 代理设置的小技巧

    原文:https://www.anquanke.com/post/id/85925 作者:三思之旅 预估稿费:300RMB 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 在We ...

  5. web端本地与服务端时间校验

    当前校验逻辑: 本地和服务端的时间校验绑定在一个通用请求上,这个请求每七分钟会到服务端请求一次,本地拿到服务器时间后,计算请求服务器来回的时间,最后得出与服务器时间的差值,然后每次new Date() ...

  6. Consider defining a bean named 'entityManagerFactory' in your configuration解决办法

    错误信息: *************************** APPLICATION FAILED TO START *************************** Descriptio ...

  7. [tkinter]为列表框添加滚动条

    为了给列表框配备滚动条,看来很多别人的博客 终于解决了问题 ,现在我总结一下 from tkinter import * root = Tk() lb = Listbox(root) scr = Sc ...

  8. 脚本语言丨Batch入门教程第三章:逻辑判断

    通过学习Batch入门教程的前两章内容,我们已经大致掌握了基本概念和认识变量的相关内容,今天我们要跟大家继续分享第三章内容:Batch入门教程之逻辑判断.  前期回顾  ◀Batch入门教程丨部署与H ...

  9. 推荐 | Vue 入门&进阶路线

    今儿跟大家聊聊 Vue . 不得不承认, Vue 越来越受欢迎了.对比 Angular 和 React,虽然三者都是非常优秀的前端框架,但从 GitHub 趋势看,Vue 已经排在第一位,达到了13万 ...

  10. [Swift]LeetCode771. 宝石与石头 | Jewels and Stones

    You're given strings J representing the types of stones that are jewels, and S representing the ston ...