JAVA WEB 開發之牛人與能人
引子
利潤是一個企業的命根子。開源也好,節流也罷,都是為企業贏得更多的利潤。當一個項目開發合約簽定的時候,“開源”的工作已經做完了,剩下的,就是在開發階段如何“節流”了。而在開發階段,卻有兩種不同的“牛人”和“能人”的做法。
牛人與能人
比方說做一個列表緩衝。牛人看到需求,馬上就動用設計模式了,設計單列模式,HashMap做儲存,遍曆的方式匹配來類比SQL語句,定時重新整理……。當做到一半的時候,忽然覺得有的表太大了,不適合全部放記憶體重新整理,結果繼續做LRU。最後連編寫帶調試,兩天時候過去了,幾百行的代碼,五六個JAVA類見證了開發的結果。周圍水平一般的同事更新CVS發現突然多了一大堆類,編寫工整,設計合理,忽然覺得大牛,似乎能快速寫出LRU的都屬於了牛人行列。
能人看到了,首先權衡系統中能使用的結構,本身Hibernate就支援EhCache,而EhCache針對不同的表都能夠配上相應的二級緩衝策略,恰好EhCache本身就支援了FIFO、LFU、LRU三種常用的緩衝策略。於是在HBM裡定義開啟緩衝,在ehcache裡設定訪問方式,半天不到就弄好了。CVS裡也幾乎沒更新,繼續去做其它的設計。
這類“牛人”還僅算“小牛”,“大牛”的甚至自己編寫串連池,XML對象映射器,也見過“牛魔王”層級的自己來編寫MVC。但是對企業來說呢?花一大堆時間成本還不算,還要帶領下屬做相關開發時跟著一齊鑽進他個人設計的胡同裡。沒有相關文檔,JAVADOC API不全。這種“牛人”雖然“牛”,但是“牛”錯了地方,“牛”苦了企業。更有害者,將企業開發出來的產品綁死到他個人的開發的功能架構裡,無法升級,只有他個人才知道如何維護,也成為企業繼續維護不可缺少的關鍵“人才”。
而做一個能人呢?對相關的開源要充分的理解,遇到了問題,藉助成熟的開源來快速實現需要的功能,80%的使用能藉助網路、開來源文件來找到使用的方式,再20%在於個人理解及調用方式的設計。開發迅速,縮短工期,留更多的時間去自由支配。產品早日上線,達到企業資金節流的目的,幹活輕鬆,老闆也開心。
能人要“牛”
雖然說靈活掌握開源API就可以做能人了,但是僅此還不夠,JAVA開源都是一些牛人寫的,這些寫開源的牛人所做的工作,與之前所說“牛人”工作性質一樣,只不過是,他們所有的時間都用來去發明一輛車的最好輪子去了。但是並不是每個輪子都沒有問題的,一旦出了問題,一旦與其它功能結合需要深入到內部機制,就需要JAVA能力夠“牛”才能看的懂,才能找到修正的方法。因此個人JAVA編程能力的提高仍然是非常重要的。
結論
一個WEB開發職員的工作,應該讓周圍的人覺得你是“能人”而不是僅受吹捧的“牛人”。這依賴與對開源架構和設計模式的綜合。而能選擇並靈活運用一種合適的開源,則需要開闊的眼光,和對不同開源架構的深入理解。