開鎖,不一定要用鑰匙

如果把一個(gè)待解決的難題類比為一把鎖,那么,為了解決這個(gè)問題--也就是說為了打開這把鎖,我們需要的是這把鎖的鑰匙。通常來講,在生活中我們需要開一把鎖的時(shí)候,“找到這把鎖的鑰匙”幾乎成了我們的本能反應(yīng)。當(dāng)找不到這把鎖的鑰匙時(shí),我們基本上在心里默認(rèn):我們無法打開這把鎖。然而,使用鑰匙并不一定是打開鎖的唯一途徑--開鎖的師傅有各種精妙的工具來打開這把鎖。同理,當(dāng)碰到一個(gè)難題時(shí),我們常常會(huì)困于解決此問題的“第一反應(yīng)”,當(dāng)卡在這個(gè)我們認(rèn)定是“解決方案”的解決方案時(shí),我們可能忘了去思考:或許,真正好的解決方案是另一個(gè)方案。所以,當(dāng)陷于某個(gè)難題中沒有進(jìn)展時(shí),應(yīng)該停下來想一想:為了解決這個(gè)問題,需要的到底是什么?搞清楚需求,再想解決方案,效果可能會(huì)好得多。

一個(gè)例子:我需要在Wordpress搭建網(wǎng)站的導(dǎo)航欄中的條目中使用二級,三級菜單,并且,點(diǎn)擊每個(gè)子菜單后,頁面跳轉(zhuǎn)至一個(gè)把這個(gè)子菜單下的所有同類文章匯總的一個(gè)文章列表頁面。一開始,我發(fā)現(xiàn)可以通過構(gòu)建很多的“頁面(page)”來實(shí)現(xiàn)菜單的層級。但是在每次點(diǎn)擊一個(gè)子菜單跳入到一個(gè)頁面后,我不知道如何在此頁面內(nèi)構(gòu)建一個(gè)文章列表。我卡在這里很久。后來,找一個(gè)同學(xué)幫忙,他鼓搗一會(huì)兒后給出了解決方案:把所有的使用“頁面”來構(gòu)建的菜單層級,改成用“目錄(category)”來構(gòu)建菜單層級,然后再把文章歸在各個(gè)category下面,這樣,在每點(diǎn)開一個(gè)子菜單之后,所以的文章就列在頁面里了。后來我想:我需要的,是把文章列在一個(gè)子菜單內(nèi),至于這個(gè)子菜單是一個(gè)page還是一個(gè)category并不重要。由于我一開始是在按著page的思路走的,所以一心只想著怎么在一個(gè)page里把內(nèi)容做出來,這就屬于前面說的,想到了一個(gè)解決方案,然后認(rèn)定要在這個(gè)解決方案的范圍內(nèi)解決,而忽略了問題的本質(zhì)。

以上思考受啟發(fā)于以下是TK教主的一段話:

正好前幾天有個(gè)同事找我聊視野和思路的問題。我后來拿出一把鎖打比方:多數(shù)人只知道拿鑰匙開鎖,這是一般用戶;認(rèn)真從外部觀察過鎖的人會(huì)想到通過撥鎖舌也能開鎖,這是比較好的程序員;在相應(yīng)位置設(shè)計(jì)一個(gè)擋片阻止直接撥鎖舌,這是漏洞防護(hù);學(xué)過開鎖的人,知道怎么通過撥彈子這種通用的方法把鎖打開,這是一般的信息安全技術(shù)人員;把鎖拆開,觀察內(nèi)部原理,這是逆向工程;用逆向工程技術(shù)全面透徹地分析某種鎖的內(nèi)外結(jié)構(gòu)、運(yùn)作細(xì)節(jié),設(shè)計(jì)出甚至無人談及過的開鎖方法,這就是安全研究。然后我向他演示了一種我研究的方法,利用一個(gè)漏洞幾秒鐘就可以把鎖打開。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容