用戶登錄后,修改狀態,結果頻繁死鎖,剛開始由于不太在意,同時也因為服務器打印的異常包含了太多其它功能造成的錯誤信息,導致了真正錯誤的隱藏,后來終于發現問題,原來一切都是偷工減料惹的禍。
原來在作修改用戶時,由于考慮到角色權限的改變,我就直接把所有用戶角色相關的組角色清掉重建,然而在修改狀態時,又重復調用了這個方法,死鎖在所難免了。
考慮到這個錯誤引發的問題,我有兩點感觸,一是功能最好不要疊加,否則造成的連鎖反應很難調試;二是不應該偷工減料,應該針對不同的需求實現不同的功能,忌諱復制粘貼,很容易引發許多莫名其妙的問題。在出現大量復制粘貼的功能時,盡可能的重構自己的代碼,這一點也許有些困難,但要盡可能的去做,目的是減輕后續工程的維護量!