解決問題之道--將復(fù)雜的問題簡單化
在我們的日常工作過程中,經(jīng)常會(huì)遇到很多復(fù)雜的問題,我們怎么能快速解決這些問題呢?這里我要介紹的個(gè)人經(jīng)驗(yàn)就是“將復(fù)雜的問題簡單化”。下面舉個(gè)剛剛發(fā)生的小例子來說明這個(gè)方法。
最近在做公司ECP升級(jí)項(xiàng)目中引入了Portal中間件,因?yàn)榇蠹叶紝@個(gè)Portal的使用很不熟悉,所以開發(fā)過程中遇到了很多問題。我這個(gè)例子就是解決其中的一個(gè)問題“如果配置PORTAL中的用戶信息從LDAP中讀取”,其實(shí)這件事就是發(fā)生在我寫些文的前十分鐘。下面說一下解決問題的過程。
第一步,閱讀相關(guān)文檔,按照文檔中的說明進(jìn)行配置。結(jié)果由于文檔不是很詳細(xì),而公司使用的LDAP服務(wù)器是微軟的Active Directory所以未能按照文檔說明配置成功。
第二步,確定問題點(diǎn),這個(gè)比較困難,因?yàn)椴恢朗且驗(yàn)榕渲玫脑蜻€是portal中間件本身對AD的支持不好。所以我們只能猜測是我們配置的不正確,雖然我們是完全按照文檔進(jìn)行的。
第三步,找出我們配置中我們哪里配的不對。這個(gè)更困難了,因?yàn)橐呀?jīng)無資料可查,只能自己看源碼了。
第四步,看了半天的源碼無果,只能調(diào)試了。
說到調(diào)試,而且又是比較復(fù)雜的中間產(chǎn)品,可能大家想到的就是使用遠(yuǎn)程調(diào)試的方式了。可是這種方法只能查看一下運(yùn)行時(shí)的變量狀態(tài),也不能插入自己的代碼進(jìn)行測試。而且這重啟一次又是那幾分鐘過去了,解決這個(gè)問題可能要花很多的時(shí)間。
所以我想到了另一種方式,搭建了一個(gè)只針對問題點(diǎn)的測試環(huán)境。在eclipse里新建了一個(gè)項(xiàng)目,把我們前期配置的部分拷到項(xiàng)目中,寫了單元測試程序。這個(gè)時(shí)間我只花了十分鐘。運(yùn)行了一下,發(fā)現(xiàn)確實(shí)不能從LDAP中正確讀取出人員信息。因?yàn)閷DAP不是很熟只好請外援了,把咱大名頂頂?shù)陌补ふ堖^來。因?yàn)榉磫栴}點(diǎn)簡化到了就加載兩個(gè)類和啟動(dòng)一個(gè)單元測試。所以安工花了十幾分鐘就把問題搞定了。
故事描述完了,最后總結(jié)一下。在一個(gè)復(fù)雜的環(huán)境下調(diào)試,其實(shí)我們是很難很快發(fā)現(xiàn)問題的。同時(shí)環(huán)境的加載啟動(dòng)還要浪費(fèi)很多時(shí)間。可是我們在確定或猜測出問題點(diǎn)的時(shí)候,把環(huán)境簡化到,只剩下有可能出現(xiàn)的問題地方。可能我們很快就能解決它了。這就是我要說的“解決問題之道--將復(fù)雜的問題簡單化”。有點(diǎn)啰嗦,很少寫東西。以后還得鍛煉。這個(gè)方法其實(shí)我已經(jīng)用了很多年,說起來簡單,希望你能在碰到問題的時(shí)候想起這個(gè)方法,并能真正的運(yùn)用它。
最后感謝安工的全力幫助。這種全心幫助他人的精神,永遠(yuǎn)是我們學(xué)習(xí)的榜樣。
posted on 2011-11-24 16:49 輕松 閱讀(2999) 評(píng)論(2) 編輯 收藏