TDDDDDD

好吧,其實是要講 TDD,結果手滑多打一個 D 就乾脆再送他三個。

如果你沒有在 Facebook 上訂閱一堆腦殘農場的話,最近的你也許會看過這一則貼文。你們可能都覺得又是一個 lmgtfy 的連結,不,這不是。但假如你真的不想點進去看,那我講給你聽。

一則新聞報導,一位業務抱怨著在捷運取消八折後,他一天的交通費會增加 200 元。這用小時候(想當年的黃金傳奇)就知道的捷運一日票就可以隨便打臉了,這沒什麼,重點是後面提到的這個用捷運一日票來進行檢驗的行為 sanity check。

sanity check:用最簡單的邏輯去驗證數據是否合理。

我是沒聽過這個詞啦,畢竟以前寫學士論文只是混口飯吃,沒有被教授狂電過。倒是教授跟我們咪的時間都超短,不知道能討論什麼重點,跟學生咪挺的時間這麼短真不知道他是怎麼……

離題了。

在我看來,sanity check 這個概念的核心精神不是要對每一則資訊存疑,而是一定要記得檢驗、時常檢驗、用常識檢驗。再直覺再常識不過的檢驗,都有價值。有時埋首苦幹了很久,整個思維深深陷入其中而不自覺。數據在一個演算過程中出了岔子,結果整組害了了。所以,不時做一些小而簡單的檢驗,是重要的。

一直以來大家都說媒體很糟,我是不覺得真有那麼糟啦。在看過諸多天兵之後,我覺得媒體這一行也不過是正常發揮而已啊,有好有壞還搞不好常態分佈,何來糟糕這種「相對」之說。

但還是因為資訊傳播有諸多限制,例如人類在非面對面進行語意傳達有時像接觸不良一樣,或是更多的,無心的低級失誤。因此我對於普遍的資訊正確性日漸失去信心,所以很早以前就養成習慣,接收資訊時大多會先預設是錯誤資訊,或者說腦中會一閃而過「真假?」這種無腦膝跳反射。

如果能判斷,就快速的想一下這則資訊有沒有道理可言。這時腦中的運轉方式幾乎就是 sanity check 了,只是面向很多種,不侷限於數據驗證。如果不能判斷,也就是以我的知識、智力和資訊無法快速驗證訊息的正確性,我通常就不判斷了,然後貼個標籤告訴自己,這則資訊有毒(poisoned)。有毒的資訊,不能用作 supportive argument 來協助我下結論。

然後這跟 TDD 有什麼關聯呢?那個…… 就是 TDD 這種在開發功能前先寫個功能正確性的測試,讓一開始就先面臨測試不通過,之後再慢慢寫出功能一直寫到測試通過的這個開發方法,我覺得很像我資訊接收的邏輯。一則新的資訊進來我先視為錯誤資訊,用我現在持有的知識、智力和資訊,做一些簡單的思考去驗證,要是驗證失敗了就貼個標籤擺一邊。

恩好吧寫到最後我覺得不像,上一段可以直接忽略了。一開始覺得像果然是錯覺,思路這一回事真是不寫到最後不見真章。