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