讓「錘子理論」適可而止

2022-02-09 08:34:17 字數 1003 閱讀 6203

「當你有一把錘子,你會把一切看成是釘子。」

——馬斯洛

技術人員經常會陷入「錘子理論」中。當掌握一門新技術,了解一門新框架,或者編寫了乙個外掛程式,我們總是迫不及待的想大展身手,把這些新的東西,融入到產品中、專案中,或者自己的作品裡,甚至很少會去想,它是否真的適合?

昨天下午,在我的hoorayos***裡,和群友討論圖示拖動排序的原理,後面討論到拖動結束後排序是否要改變dom結構,有人提了個不錯的思路,就是不改變dom結構,只改變dom的top和left樣式,實現排序更新,達到高效。

無需質疑,這肯定是個好方法,並且當晚我就在考慮怎麼將現有排序修改dom的模式換成新模式。然而在實際情況下,卻有很多問題,比如,想要達到不修改dom必須保證dom元素必須是同輩的,如果將桌面圖示拖動到資料夾,這種情況就無法處理。

但我有新思路,就是當拖動的區域處於同個父級下時,採用不更新dom結構的模式,跨區域拖動依舊採用原有模式。問題又來了,如果不更新dom結構順序,那就必須建立乙個陣列來記錄圖示的實際順序,每次拖動結束後,更新陣列,然後通知dom更新top和top。

這時候,我不得不開始思考,這種模式是否真的適用?因為提供專屬的解決方案只能解決某種特定環境下的拖動,如果這樣操作,勢必會提高維護的成本,同時也潛在的增加了**的閱讀體驗。同乙個操作為什麼會有不同的處理模式,新手閱讀**會很困惑,這樣我就必須花下足夠的時間成本去講解,讓其明白其中的「奧妙」。在這幾點的權衡上,我決定放棄。

這件事過後,我就想到了「錘子理論」,還真是像,不過我很慶幸,我沒有陷入。一把錘子,想解決所有問題,必然不可能。而我們要做的是,權衡這把錘子,它可能每下能敲3個釘子,但敲每下必須用出原先5倍的力氣,這就需要我們自己來決定是否使用這把錘子了。

架構師尤其要在這方面注意,因為每一步的舉棋落棋,都影響著整個專案、產品的未來,不要盲目的去「為了解決問題而解決問題」。

出租司機微軟上MBA課 精闢理論讓其月入1萬6

劉潤先生在他的部落格上所寫的內容全部屬實。昨天,微軟高管在 計程車司機給我上的mba課 中提到的大眾的哥臧勤終於現身。今年42歲 已開了17年計程車的他雖然只有高職的學歷,但是喜愛學習 善於言談,使得他的言語中無處不透露出一種快樂的心態和享受生活的理念。據了解,早在17日下午3時,臧勤就已接受劉潤以...

軟體測主理論基礎,讓你一文了解軟體測試的點點滴滴

軟體質量的定義 軟體測試與軟體質量的區別 軟體測試內容 軟體測試的分類 軟體測試的常用種類 用來促進鑑定軟體的正確性 完整性 安全性和質量的過程 是一種實際輸出與預期輸出間的審核或者比較過程 使用人工和自動手段來執行或測試某個系統的過程,其目的在於檢驗它是否滿足規定的需求或是弄清預期結果與實際結果之...