1. 程式人生 > >專案上線後遇到的問題總結

專案上線後遇到的問題總結

     專案上線了,一堆堆的問題也隨之出現了。除了時間比較匆忙導致沒有細緻的做驗證之外,當初也確實沒有在最重要的功能需求上把好關,導致後來要做很多的修改而彌補之前的錯誤。下面是上線後遇到的問題和解決辦法總結。

問題一:(使用者非正常流程導致的錯誤)

使用者註冊一半就退出來,導致再次註冊不成功或者用證件號登陸觸發空指標異常。

解決辦法:

一旦輸入證件號時,檢查資料庫的表是否有相應的證件號記錄,有則把相關記錄全部刪掉,從而讓他成功註冊。空指標異常的解決辦法,做非空驗證的判斷。

問題二:(併發插入,流水號不一致)

   出現大量的主鍵唯一約束錯誤,後來想到是產生的預報名號不同步,導致有可能大併發量時產生多個相同的流水號,插入就會出現主鍵唯一約束錯誤。

   解決辦法:

在資料庫裡寫一個insert的觸發器。自動替換掉要插入的主鍵為 max(key)+1.

問題三:(併發刪除,索引失效)

   出現某些表的索引失效,後來發現是插入相同主鍵多次之後導致表失效。

  解決辦法:

   設定oracle任務,讓資料庫每隔12個小時自動重建所有索引。

問題四:(js程式碼的不細緻)

   發現報考志願顯示的專業比原來的少一個。

  解決辦法:

   發現時jsp頁面的js少迴圈一個=號導致的。。。。

問題五:(資料庫的關鍵表設計有問題)

院校專業表設計的有問題,導致不能唯一確定一條記錄,而產生一個考生可以插入4所學校以上的記錄,而導致列印的時候有可能顯示的不正常。

解決辦法:應該把考生院校專業表設計成以下這樣就能唯一確定記錄,犧牲空間來換取簡便。

Ks_H  yx_h  zy1_h  zy2_h  zy3_h  zy4_h

同理,把考生院校表可以設計成以下這樣子也能唯一確定記錄:

Ks_H  yx1_h  yx2_h  yx3_h  yx4_h

臨時解決辦法:

因為查詢出來的記錄不唯一,所有全部排序各個欄位以保證查詢出來的序列是固定的,再放進hashmap裡確保得到唯一記錄,再去顯示和進行插入操作。

問題六:(頁面和後臺程式碼太不通用)

    使用者需求一旦更改或者程式邏輯有錯誤後,導致要修改很多頁面和後臺程式碼,十分不通用,要從業務邏輯上設計的通用點。改一個,就能等同於改全部。用一些設計模式去解決。