《全端Web開發》選譯——總結

群峰發表於2014-09-08

《全端Web開發》這本書翻得我如痴如醉:一是作者高屋建瓴,涉及到了Web開發的方方面面,我還沒讀過一本這樣的書,沒見過一個這樣知識面廣的作者;二是思想深刻,很多觀點振聾發聵。我這大半夜翻完一章,有種夜讀聊齋的感覺,忍不住貼上來與大家共享。

生命就是一個分散式系統。人與人之間通過一個分散式、超媒體系統交流,人類的智慧、聲音和手勢、視覺和聽覺、還有想象,都是其中的元件。
—Roy T. Fielding

從一個大概的計劃開始寫一本書,然後現在回頭再看看最終的結果,這是一段令人著迷的經歷。雖然和我的最初預想略有出入,但本書還是忠於早先介紹的主題——變化。在第1章我們指出,由於技術的革新,世界發生了巨大的變化,這在很多領域是顯而易見的。而且變化的速度在最近幾年變得越來越快。一個大型專案,在其上線之日起就變成了一個遺留系統,這種事已經司空見慣了。

去迎合所有的創新,或者選擇完全忽略它們,這兩種極端反應是短視和徒勞無用的。更好的面對方式是找出那些真正改變遊戲規則的因素。本書突出了一些Java開發者會碰到的問題,需要他們仔細研究。如何響應持續改變的Web開發方式?我們應該從更廣大的開發社群和前人的經驗上學習。

14.1 社群

其他語言社群有著完全不同的觀點,因此可以啟發Java開發社群產生不同的創新。總體上來說,Java開發者基礎牢固,但有時候有點固步自封。他們能從圍繞JavaScript、Ruby和Python等其他社群身上學到很多(同時也能貢獻很多)。很多偉大的想法一經實現,便可應用於其他更為廣泛的領域。一個環境下的新奇想法,可能在另一種環境下就成了革命性的概念。

14.2 歷史

第二個來源是對過去的瞭解。當代文化對新事物不加思索的接受,更好的做法是對創新保持開放的心態,從一個更廣闊的視野上評估其價值。電腦科學和軟體開發歷史雖短,但內容卻很豐富。奠定了“物件導向”這一術語、並且發明了Smalltalk語言的電腦科學家Alan Key曾經指出,現代電腦科學和軟體開發的很多方面表現出和流行文化相近的趨勢,不關心,也不瞭解過去。很多重要的、持久的想法其來有自,幾年前甚至幾十年前就已經存在了。如有可能,最好站在巨人的肩膀上,從過去所犯的錯誤中學習:

在過去的大概25年裡,我們有點朝著流行文化的方向發展,就像電視發明之初,一些發明電視的人認為這是一種向大眾普及莎士比亞的新方式。但是他們忘記了那些看電視的人首先要學養豐富,能看得懂莎士比亞。電視所能做的只是讓人們看,能看出什麼來就是他們的事了。

因此我認為現在缺乏真正的電腦科學和軟體工程,部分要歸咎於這種流行文化。
{--:}— Alan Kay

14.3 結尾

我希望讀者或多或少從本書中學到點什麼。能在這樣一個時代從事軟體開發是一件讓人興奮的事,時代的變化帶來了前所未有的機遇。新技術層出不窮,永遠有解決不完的問題。閱讀本書,練習其中的專案能成為其中一步,希望這是你們中某些人的第一步,讓您從中獲益,並且創造出新的系統,讓這個世界變得更加美好。我將引用偉大的數學家和老師喬治·波利亞的話給讀者們留作思考,喬治·波利亞聰明過人,但他認識到人性和個人因素在解決問題中的作用,這對於軟體開發同樣適用:

認為解決問題是一種純粹的“智力活動”是錯誤的,決心和情感在其中起了重要的作用。不溫不火、懶洋洋地費些功夫也許足以去解決一些課堂上遇到的常規問題,但是對於嚴肅的科學問題,唯有意志力才能引領你經受住長年累月的艱辛和挫折…教授如何解決問題,就是在教你如何培養自己的意志力。
{--:} — 喬治·波利亞

相關文章