企業級開發的思考

以前自己一直認爲企業級開發是神聖的,是不容質疑的。儘管有時候自己也認可多大屁股穿多大褲衩的道理,但是那種重量級的開發模式在自己心目中佔據的位置一直是不容侵犯的。直到最近公司打算要做個東西的時候才發現企業級真的很重,重到90%以上的情況用不到。

之前考慮過EJB和Spring,自己一直認爲只有EJB纔是親生的,至於Spring只不過算是一個長得很壯的野草而已。但是最近工作中遇到的問題改變了我以往的觀點。

在一個純EJB的系統中毋庸置疑得使用JPA來持久化,但是由於系統升級的需要我們不得不去更改數據庫,加字段批量更新等等都很常見,起初打算在系統啓動之前直接使用jdbc來執行sql完成升級,但是由於EntityManager有屬於自己的一套管理體系,所以會導致死鎖,而且這個死鎖的問題是在數據庫級別的,更加可怕的是使用jdbc就以爲着放棄了EntityManager的事務,那麼升級這個操作就只能成功不能失敗,否則事務回滾之後系統會起不來。權衡利弊之後決定使用JPA直接執行原生sql,在這個過程中的感受可謂難受至極啊。這就像拿着一把AK47去當錘子用,能敲釘子嗎?能,能砸死敵人嗎?也能,但是它正確的使用方法是裝子彈上膛然後射擊。也就是說當前的使用方式不是這個工具設計之初所定義的那樣。JPA是用來持久化的,直接運行原生的sql雖然也可以但是這不是它的優勢,所以怎麼用怎麼蹩腳。

最近公司打算要進軍P2P了,客戶是有的那麼下一個任務就是迅速開發出一個原型出來,最起碼要能讓客戶大致的瞭解一下界面和功能吧。那麼問題來了技術選型用什麼呢?EJB的那一套?要客戶等一兩個月?估計那時候客戶早就跑了。最終公司決定暫時用Spring的東西把原型搞出來,等客戶拿下之後再去根據客戶要做的規模去權衡到底是EJB還是Spring。EJB固然可以分佈式,固然可以用集羣來解決性能的問題但是在速度方面它的確是不如Spring,要不怎麼叫重量級呢。

難道就沒有一種既能快速又能擴展成爲重量級的東西麼?類似於出將入相的感覺那該多好。

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