框架很重或者框架很輕,到底是好還是不好?

2018-07-08  本文已影响0人  OdooLive

在剛剛進入職場的時候,有很多的討論是關於框架很重到底有哪些缺點,主要的批判對象當時是EJB2.0,然後引申出了一些輕量框架來闡述輕量級的好處,造成很長的一段時間裡面,我都覺得框架應該是輕量級的才是好框架,很重的框架就是落後的表現。

這兩年持續有在接觸Odoo這個ERP系統,加上最近有用Vue.js跟Mongodb來實現基於Micro service系統架構的平台,又回想起來剛工作時的這段輕重之爭。

其實框架的輕量和重量不是只有套用在IT上面,生活中也處處存在這樣的概念,就比如今年3月份我買了一組還不錯的音箱,要去找一個比較般配的擴大機,就面臨自己DIY和購買現成的產品之間對比,我是一個很愛挑戰DIY的人,於是自己買擴大機晶片,變壓器,散熱片,外殼……從接線,焊接,機箱開孔都統統自己來,歷經上網查線路圖,焊錯線,焊壞主機板,燒保險,用了一個多禮拜迭代N次之後,好不容易做出來了擴大機,雖然内部走線很難看,焊点更难看,但是聲音却很好聽。可是如果要我重新選擇一次,我一定買現成的擴大機 XDD。在這个Case里面買現成的擴大機就是選擇了重的框架,而自己去DIY一個擴大機就是輕量框架,選擇哪一種方式是根據當下的情境做出的決定,而不同的方式本身沒有好壞之分。

Odoo是一個很不錯的框架,最完美的展示則是ERP的部分,但如果你不需要它ERP的部分,它也可以很快的來實現一些企業內部的需求。Odoo有很多很精彩的特性可以分享一下:

  1. Odoo不需要開發者接觸到Database Schema,都是以Object的觀念來實現需求,底層的Schema以及對應版控都由框架來自行管理
  2. 我們只要定義好了對象和屬性欄位之後,及基本視圖,就會自動產生列表功能,Form,查詢功能,分組功能,導入導出功能,頁面排序及分頁功能
  3. Odoo已經預先實現了極其強大的權限管理功能,有分組,分組繼承,功能權限,對象權限,數據權限,按鍵權限,不用寫一行代碼就已經都實現了
  4. Odoo已經預先載入了SNS功能,一個自己定義的對象上也可以加載歷程的LOG,可以設定關注,可以發送郵件提醒
  5. 企業应用的一些必要功能也已經內嵌,如可輸入查詢的下拉選單,下拉欄位如果查詢不到資料時可直接在下拉框中選擇新建對應主數據資料
  6. 框架原生就包含Web Service特性,所建立的對象不需要任何的額外設定即可使用Web Service調用

簡而言之,Odoo就是一套非常適合企業應用的框架,可以讓我們快速實現可用的系統模型并持續的迭代改善。

但是如果你用Odoo來做網頁,或者要強制指定輸入框的長寬高邊框距這類,那麼用Odoo來做開發就及不適合,你會發現用起來處處不順手,為了改一點小小的樣式,卻要翻天覆地的來修改你從來沒考慮過的底層實現。

此時你如果用Vue.js來實現則感受到輕量級的好處,你需要什麼就調整什麼,需要什麼樣的呈現方式就自己來實現什麼樣的外觀界面,全然沒有約束。

但用Vue.js來實現企業應用就表示我們需要從頭實現一遍權限,列表,視圖,查詢,分組,頁面排序....而且這些功能要不停的重構來優化,以便於多個對象之間可以複用代碼,還有可能會遇到我們沒考慮過的細節實現會造成的Bug,結果業務需求還沒實現半個,項目時間就已經拖過了半年。

好不容易把項目攻上線了之後,開發期間因凍結而累計的需求變更猶如山洪暴發一樣湧過來,我們只能一邊重構基礎元件代碼一邊實現業務需求,而開發時間卻和業務部門的市場變化無法接軌,導致IT部門一直被抱怨。

此時我們也許會反思,框架上我們是否需要用到如此靈活,有沒有人有更好的解決方案呢?

框架是重量級還是輕量級本身都有其發揮最大價值的情境,但我們自己選錯工具的話,第一個感受到永遠是我們自己。

上一篇 下一篇

猜你喜欢

热点阅读