謹慎行事
「無論你做什麼,都應謹慎行事,考慮後果。」 佚名
不管在迭代開始時制定的日程計畫看起來多麼輕鬆,也無法避免在某些時候受到壓力。當發現需要在「正確做」和「迅速做」中二選一時,經常會選擇「迅速做」,認為後續會回來修正。在給自己、團隊、客戶做這個承諾時,確實是認真的。但是往往下個迭代會出現新問題,而你必須專注於他們。這種工作上的延遲即技術債務,對你沒好處。特別地,martin fowler在他的taxonomy of technical debt中稱之為蓄意技術債務,它不應該與無意技術債務相混淆。
技術債務就像貸款:短期內會從中得利,但必須付出利息,直到全部還清。**中的捷徑會令增加特性和重構更加困難。它們是缺陷和易失效的測試用例的滋生地。被擱置的時間越長,就變得越差。當你回頭來修復最初的問題時,可能在其之上已經積壓了一大堆不太正確的設計決策,造成**的重構和修正更加困難。事實上,經常是到了事情太糟必須修復的時候,才會回去修復它,而那時又往往非常難以修復,以至於你真的無法承受所需的時間和風險。
有些時候,需要趕某個截止時間,或者實現某個特性的一小塊功能,必然遭遇技術債務。盡量避免這樣,除非是形勢必需。但是(這裡是特別著重的「但是」),必須跟蹤技術債務並盡快償還,否則就會迅速惡化。一旦做出了妥協的決定,就要寫一張任務卡片或在問題跟蹤系統中作記錄,以確保不會忘記。
如果安排在下個迭代償還債務,代價將是最小的。擱置債務會累計利息,也應跟蹤利息以便明確所需的代價。這會強調專案技術債務的商業價值的影響,並且為償還確保合適的優先順序。如何計算、跟蹤利息的決策因專案而異,但是必須要跟蹤。
盡快償還技術債務,不然則是在草率行事。
原文:act with prudence
by seb rose
安全隨筆1 謹慎一次MD5值的可被窮舉性
md5不再安全不是從演算法本身而言。如果從可逆性角度出發,md5值不存在被破解的可能性。md5的演算法公式如下 r h s 該公式指出 對於給定的乙個源內容s,h可以將其對映為r。這裡要注意幾個特點。首先,s到r的對映是一種多對一的對映 其次,r作為目標內容,是乙個無規律的定長的字串 最後,對映h是...
安全隨筆1 謹慎一次MD5值的可被窮舉性
md5不再安全不是從演算法本身而言。如果從可逆性角度出發,md5值不存在被破解的可能性。md5的演算法公式如下 r h s 該公式指出 對於給定的乙個源內容s,h可以將其對映為r。這裡要注意幾個特點。首先,s到r的對映是一種多對一的對映 其次,r作為目標內容,是乙個無規律的定長的字串 最後,對映h是...