從一本 Java 書說 工程

從一本 Java 書說 工程


最近看了一本工具書,是 Effective Java 中文版(第2版)


我用時兩個多星期,分別在早起、晚上和週末的時候把這本書細細過了一遍。覺得很有意思。在我的感覺來看,這個是Java語言的《原則》的書。同樣的這就說明我看的工具書很少哈哈哈。


這本書不適合入門的時候看,而是使用了Java半年以上、較為熟悉Java生態了之後,去翻看比較合適。我覺得裡面提到的很多原則在編程時都應該儘可能遵守。


很多Java規則,讀這書之前並不知道的,但可能你一直就是這麼做了,也許你會驚訝。


其實這些都是IDE(集成開發環境,Java常用的是IEDA)在無形的幫助我們養成良好的習慣而努力。因為他會通過各種警告提示我們。如果你有很好的信任IDE的話,你將養成了不少好習慣。


對於書中的 78 條規則,這裡就不細講了,因為這裡是讀書筆記而不是技術分享。


今天想說的是根據這些Java開發規則而想到的一些七七八八的個人的想法。


首先,使用 Java 的人,絕大多數都是程序員,就是所謂的軟件工程師。我們在公司裡,從事的是代碼生產工作,也就是說,我們做的是一項非常嚴謹的工程,這裡的嚴謹的工程,我們首先是工程師。我的意思是相對的,是相對於科學研究和所謂極客精神。科學研究是不太考慮成本的,是可以試錯的。而極客精神,是帶有個人主義色彩的,是探究到底的精神。而在我認為的工作中,這些都不是最重要的,最重要的是嚴謹和規範的工程。


基於這個指導思想,在《Effective Java》裡,反覆嘮叨的是要嚴格規範寫法,要寫文檔、能夠不用複雜的東西就不用。


這裡有幾個詞,嚴謹和規範就意味著約束和要求,「沒有規矩不成方圓」,我們生產的是商業代碼,是要經過多人之手的。在這種約束下,個人必須遵從集體,組織的約定是首要的,個人的代碼風格必須遵從組織的代碼風格,代碼註釋、命名、通用寫法都必須有強一致性。因為只有這樣,這項工程的可維護性才高,生命力才夠頑強。


還有「工程」一詞,這個意味著穩定和成本。什麼意思呢?就是在工程裡,不允許出現比較激進的東西,必須是被廣泛使用了的,有使用基礎和較為廣泛的使用生態的技術,才能夠被引進到工程裡面來,因為這意味著維護這個工程的成本比較低,我們不做研究,因為大多數時候的工程代碼,都是效率優先。因此常常有「拿來主義」。這個再正常不過了,國內的Java生態,常常就是阿里巴巴有什麼開源了什麼,其他中小型廠商就看一看能不能為己所用,如果有用、成本不高、能夠解決問題的,就直接用起來了。不少廠商也會開源各種各樣的組件,然後相互抄襲和借鑑,其實是蠻好的事情。


甚至我覺得,對於一個五年工作經驗以下的開發者,都不太需要考慮創新,一板一眼地學習,根據規範來就好了。


二八定律在哪裡都可以套用。這個感覺也有點奇怪,這二八定律難道是萬精油?到哪都可以扯上兩句,容易形成詭辯了。


這一點是在工作過程中感受的,和書中所看到的也類似吧。大概就是20%的技術可以解決80%的需求,因為對於同一類的工程,需求都是類似的,則20%的技術積累就可以了。這樣常常導致一個開發者容易陷入自我滿足的狀態,感覺沒有成長性了,大部分事情都可以解決,沒有自我學習的動力了。那沒辦法噢。學習這種事情,就是靠自己的。


這本書的確是一本工具書,不是Java開發者的話也是看不懂。而後面引申出來的想法,大概是可以在工程領域通用的。書翻來翻去都是那樣,甚至越學越窄,而思想則越思考越多,並且還挺通用的。這個真是有意思的事情。


全文完!


分享到:


相關文章: