在我們的日常工作過程中,經常會遇到很多復雜的問題,我們怎么能快速解決這些問題呢?這里我要介紹的個人經驗就是“將復雜的問題簡單化”。下面舉個剛剛發生的小例子來說明這個方法。
最近在做公司ECP升級項目中引入了Portal中間件,因為大家都對這個Portal的使用很不熟悉,所以開發過程中遇到了很多問題。我這個例子就是解決其中的一個問題“如果配置PORTAL中的用戶信息從LDAP中讀取”,其實這件事就是發生在我寫些文的前十分鐘。下面說一下解決問題的過程。
第一步,閱讀相關文檔,按照文檔中的說明進行配置。結果由于文檔不是很詳細,而公司使用的LDAP服務器是微軟的Active Directory所以未能按照文檔說明配置成功。
第二步,確定問題點,這個比較困難,因為不知道是因為配置的原因還是portal中間件本身對AD的支持不好。所以我們只能猜測是我們配置的不正確,雖然我們是完全按照文檔進行的。
第三步,找出我們配置中我們哪里配的不對。這個更困難了,因為已經無資料可查,只能自己看源碼了。
第四步,看了半天的源碼無果,只能調試了。
說到調試,而且又是比較復雜的中間產品,可能大家想到的就是使用遠程調試的方式了??墒沁@種方法只能查看一下運行時的變量狀態,也不能插入自己的代碼進行測試。而且這重啟一次又是那幾分鐘過去了,解決這個問題可能要花很多的時間。
所以我想到了另一種方式,搭建了一個只針對問題點的測試環境。在eclipse里新建了一個項目,把我們前期配置的部分拷到項目中,寫了單元測試程序。這個時間我只花了十分鐘。運行了一下,發現確實不能從LDAP中正確讀取出人員信息。因為對LDAP不是很熟只好請外援了,把咱大名頂頂的安工請過來。因為反問題點簡化到了就加載兩個類和啟動一個單元測試。所以安工花了十幾分鐘就把問題搞定了。
故事描述完了,最后總結一下。在一個復雜的環境下調試,其實我們是很難很快發現問題的。同時環境的加載啟動還要浪費很多時間。可是我們在確定或猜測出問題點的時候,把環境簡化到,只剩下有可能出現的問題地方??赡芪覀兒芸炀湍芙鉀Q它了。這就是我要說的“解決問題之道--將復雜的問題簡單化”。有點啰嗦,很少寫東西。以后還得鍛煉。這個方法其實我已經用了很多年,說起來簡單,希望你能在碰到問題的時候想起這個方法,并能真正的運用它。
最后感謝安工的全力幫助。這種全心幫助他人的精神,永遠是我們學習的榜樣。