思維慣性引發的程式設計問題

2021-09-30 14:52:20 字數 689 閱讀 9841

為什麼程式要了解思維的障礙,並要練習有意識的加以克服?這裡舉乙個實際發生的問題。

寫**像寫作一樣,有時思如泉湧,順著思路就把一段**寫得有模有樣。

下面是乙個狀態碼檢查的例子(這種寫法本身並不嚴謹,但這裡要討論是乙個更為嚴重的問題.):

typedef enum  state_item;

// state為獲得的狀態

if (state_a & state)

else if (state_b & state)

else if (state_c & state)

這樣很自然就有了乙個模型state & state就可以判斷是不是當前這個狀態。

順著前面的思路,就有了:

if (state_default & state)

一切看起來都合情合理,程式設計師這時往往是很難會想到要回頭檢查的(至少我是這樣)。於是乙個bug就在不久之後被發現了! 因為state_default & state永遠為0!

而解決方案有兩個: 1.將設計用圖形化的先表現出來,即使只是在紙上畫一下。2.**走查,特別注意邊界條件,可以是自己回頭查一下,也可以類似結對程式設計一樣,請同伴幫助走查。但最起碼的是,程式設計師要意識到這種問題的存在。這就是本文的目的。

思維的慣性

我們經常說要破除思維定勢。避免思維慣性。這個想法是非常對的。但事實上是非常難做到的,由於大腦研究發現。人在使用眼睛看東西時。並非把全部的資訊都進行處理,僅僅有大約10 的資訊是新的,其它的資訊都是補全的。人一方面須要這樣的資訊 抽象 自己主動補償來加速腦袋cpu的處理速度。但還有一面這樣的處理機制又...

「習慣性思維」引起的血案

好久沒有更新了,一客戶因為it規劃問題,需要將citrix伺服器遷到新的域,citrix服 務器需要重新配置。但是當我重新配置完站點後,發現無論如何都登入不了。錯誤截圖 我按照傳統的思路來解決問題,1 檢視伺服器日誌 2 懷疑問題有可能出現在域驗證。我就一直糾結在這邊,在這一塊上一直在測試。因為遷域...

「習慣性思維」引起的血案

好久沒有更新了,一客戶因為it規劃問題,需要將citrix伺服器遷到新的域,citrix服 務器需要重新配置。但是當我重新配置完站點後,發現無論如何都登入不了。錯誤截圖 我按照傳統的思路來解決問題,1 檢視伺服器日誌 2 懷疑問題有可能出現在域驗證。我就一直糾結在這邊,在這一塊上一直在測試。因為遷域...