天天看點

從選擇 Java 架構談談技術人員的"舒适區"

[前言: 技術人員的舒适區是本文的要說的一點内容, 至于 Hibernate 是否優秀, 那是"專家"才有資格讨論的問題]

這幾天, 一位 DBA 朋友很是苦惱. 起因是他所在的開發團隊的架構師與程式員準備在接下來的項目中繼續采用 Hibernate 作為 Java 架構 . 衆所周知(有人說,他沒有聽到過類似的說法, 是以不能是"衆"), 從 DBA 的角度來看, Hibernate 對 DBA 來說如同噩夢, 非常的不友好, 是以 DBA 極力推薦 iBatis . DBA 看來, 在該應用場合下, 應用 iBatis 更容易控制資料庫的性能, 而程式員們也不用因為性能低下的 SQL 而一遍遍返工修改程式. 可是開發人員們羅列了各種 Hibernate 的優點證明使用 Hibernate 将會是正确的, 帶來的開銷是值得的.

DBA 也知道, 在過去幾年的時間裡, 這個開發團隊一直在使用 Hibernate , 開發人員熟悉 Hibernae 的方方面面, 他們自認為針對 Hibernate 有足夠的控制能力, 不願意離開現在的技術環境, 這才是他們反對更換到其他環境下的主要原因.

當然, 今天我不是要比較這兩個架構的優缺點. 而是要說說技術人員都會面臨的一個很有趣的問題:舒适區.

最近幾年, 舒适區這個詞我們經常從一些"教育訓練大師"的口中聽到,引起了無數渴望成功者的共鳴.其實說的倒是自古以來人皆有之的一個共性.

引用I : 現代西方認知心理學認為"舒适區" (Comfort Zone)是指人們一定限度的感覺和聯想的範圍,在這一範圍裡,個人或集體能有效地運作,不會出現不自在和恐懼,是以人們會本能地尋找自己的"心理舒适區"。

從"舒适區"的角度上看, 架構師/程式員不願意更換到其他架構下無疑也有一部分心裡因素的問題. Hibernate 已經使用了幾年, 對他們來說已經相當熟悉了, 遷移到其他環境下不确定性因素很多, 這樣"不确定性因素"給他們帶來了不安全感. 是以, 他們自然會熟記 Hibernate 的各種優點, 并期望一直使用下去.

不過換個角度上看, 這種保守性無疑在需要快速面對變化的軟體業有一定的風險.

引用 II: 每當人們處在舒适區中,就會有安全感、自信心,覺得自己能夠勝任所擔當的一切。但如果長時間 處于這樣的狀态,就像留戀在溫水盆裡遊泳的青蛙一樣,等有一天自己想跳出來時卻已經太遲了!

就拿這個 Hibernate 來說, 最近就有 FireStar 軟體公司在指控 JBoss 公司的 Hibernate 3.0 軟體侵犯了其連接配接關系資料庫與面向對象的軟體的技術專利, 如果 FireStar 勝訴并要求停止開發該軟體, 依賴于 Hibernate 的程式員們該怎麼辦呢? 這個事情就好比青蛙泡在緩慢加熱至沸騰的水中一樣,代價恐怕是慘痛的.

作為技術人員, 積極的心态面對變化是必需的. 如果死死的守住一個小技術環境, 回報率自然會下降. 從軟體業的發展來看, 也是這樣.

oops, DBA 也不要把自己捆在一種資料庫上......

--End.

--Updated:

針對 一本正經道地聽途說 的回複:

我說的“衆所周知”的"衆"指DBA 而言, 當然,如果用你沒有聽過就不算"衆"倒也說得過去.

你應該不是DBA吧 ? 從一個開發人員看問題,自然是另外一回事。我們曾經面臨這樣一個案例: 資料庫執行計劃走錯, 需要修改 SQL, Hibernate 上作這樣的修改,并不是很快捷(因為不是直接的資料庫SQL, 當然現在的 Hibernate 3.0 支援naive SQL 了)。這個案例,如果放到 iBatis 上,可能隻是幾分鐘的事情. 或許,你已經把 Hibernate 玩得靈活無比, 做起變更靈活無比, 那隻能說佩服了。真希望每個項目中的人員都能夠有這樣的天才.

另外,也不一定是 Hibernate “專家”才可以發表評論. 每個人看問題的角度不同. DBA反對 這個東西,或許有他的理由(正如那篇Blog讨論的"舒适區") . 不要忘了,一個領域是所謂的專家,可能另一個領域就是新手.

或許你認為别人沒引用英文資訊就是"道聽途說", 那麼 "主觀推測' 算什麼呢?