存儲過程處理業務

        當開發中的業務邏輯既可以在數據庫中完成(存儲過程),也可以在java的service層中完成時,我們應該依據什麼樣的標準來進行選擇?各自可能的優點和缺點有那些? 

        數據庫中處理業務的觀點是爲了效率。認爲存儲過程的效率比程序代碼要好。但是存儲過程最大的缺點是不好維護,傳統的面向過程的代碼是很難維護。而且SQL語句有時候還是有一定限制的,不能很好的處理業務,但一般的業務還是完成可以處理滴。
      支持程序(java)處理業務的觀點是爲了代碼的靈活性,效率本來也不低。可以相對更靈活的處理各種業務。但是讀取數據庫的數據量比存儲過程多,所以很多人都認爲效率比較低。不過通過緩存等技術還是可以提高效率。

     其實這兩種思路並不是絕對衝突的,可能在某個地方使用一種方法比較合適,在另一個地方使用另一種方法更合適。而且根據具體的業務邏輯也會表現出各自不同的優點!

      個人還是比較傾向於Java,畢竟對java的熟悉還是遠遠要大於數據庫的。將業務邏輯放入Java代碼中,表現層-業務邏輯層-數據訪問層的經典劃分MVC還是很有道理的,儘管實現起來稍嫌麻煩,但在高併發的情況下容易擴展。

       在整個軟件生命週期的過程中,維護用的時間是最長的,也會在很大程度上的提高軟件成本。所以,軟件必須要可維護性強。客戶的需求是不斷變化的,這個是軟件開放過程中的真理,因此,擴展性也是必不可少的。總得來說,劈開那些說java將死的謠言,我還是比較推崇在java程序中處理業務!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章