最開始的幾年,在應用服務器編程領域,我存在著一個選擇。那時候,我已經遠離了C一些時間,喜歡上JavaScript很長時間。
我喜歡JavaScript是因為JavaScript很輕,很優雅,很容易表達我的想法。并且如果我想實現一個可視化的內容,我可以在半小時內通過HTML Css寫出一個漂亮的、生動的交互工具,然后把我任何想到的東西扔進去給別人看。
我很喜歡這樣寫javascript,雖然我知道道上這樣寫:JavaScript。但是javascript這樣的寫法讓我覺得更加的輕快,雖然javascript本質上已經很輕了。
應用服務器編程,需要更快速高效的編碼,更嚴格繁雜的口令認證安全檢測。當我在面臨這個轉向選擇時,我猶豫在兩個方面:一個是Node.js,而另一個則是Golang。沒錯,就是Golang。
當時這兩個領域的資料非常少。我在書庫市場上挑選了幾天后,我決定了使用Golang:
- 肯·湯普遜編寫
- Google背景
- C的簡化版,封裝了大量通信函數
- 有兩本書《Go語言程序設計》《Go語言編程》
我訂閱了兩本書,并且開始Golang。開始的幾章是很順暢的,一些C風格的保留,一些DDL語言的語法,倒也充滿了新鮮的樂趣。不過當我讀到新的結構體,和對象的時候,臃腫的聲明方式和難看的定義,讓我產生了極大的反感。這絕不應該是21世紀發明的語言。如果我要寫Go,那我還不如去寫Java,或者轉回C。
所以很快的,我丟棄了Golang。并且關注Node.js的消息。
在我開始真正決定全面轉向Node.js時,來自一本書籍的出版:《Node.js高級編程》。一本真正撥云見日,深入淺出,用最通俗的文字解釋了Node.js的使用過程。于是,在這個背景下,我很順利并且快速的轉入Node.js,并以此為主要編程工作。
要想完全的理解一個領域的內容,紙質書本是絕對必要的。電子書本雖然有其便易性,但是在閱讀上并不方便。在研究的過程中,你會需要不時地翻閱書中的某些特定內容,而電子書并不適合。紙質的書本可以讓你迅速定位到需要的內容,并且把思維限制在一個小的范圍,進而獲得深入的探索、領悟。
亞馬遜和京東,都提供貨到付款,花幾分鐘選好書,然后點擊購買,當天或者第二天就能收到你需要的書本。獲取知識很容易。
I 你需要閱讀的Node.js基礎書籍
進入Node.js,一定要搭配輕松易懂的書籍,這樣才能花費最少的時間,獲得最高的收益。以下是我對一些Node.js書籍的讀后印象。
-
《Node.js高級編程》
Node.js是一種主流框架,它允許你使用JavaScript快速構建具有高度可伸縮性的網絡程序。可是,它有自己的學習曲線,這本較為深入的指南性圖書首先介紹了Node.js平臺的安裝,然后重點關注:創建和加載模塊;使用緩沖區對二進制數據進行處理、編碼和編碼;用事件發射器模式簡化事件綁定等。本書還涵蓋了從使用定時器制定函數執行計劃到創建和控制外部進程等內容,可以讓你為運行、構建和測試自定義模塊做好準備。
Pedro Teixeria是一位高產的開源項目程序員,同時也是眾多Node.js模塊的構建者。他是Node公司的創始人之一,同時也是Nodejitsu公司的高級程序員,Nodejitsu公司是以Node.js平臺作為服務的領頭羊。自從在14年前獲得軟件工程學位后,他從事過的職業包括咨詢師和程序員,并且他還是世界知名的Node.js社區活躍成員。此外,他還是廣受歡迎的Node Tuts視頻的制作者。
沒有更多的言語來形容這本書的價值,這本書絕對是你進入Node.js領域必讀的第一本書!
從異步模型開始,作者逐步講解了事件、流、二進制數據處理、文件系統、TCP HTTP常識、TCP客戶端服務器、HTTP客戶端服務器、TLS以及HTTPS安全通信、進程子進程、mongodb、mysql、redis數據庫的連接操作,甚至還介紹了一些流行的中間件和express。
通俗易通,內容廣泛。被稱作Node.js領域的《JavaScript高級編程》(JavaScript圣經)。這本書堪稱Node.js圣經, 我直到現在還是經常翻看其中的某些內容。
-
《了不起的Node.js:將JavaScript進行到底》
《了不起的Node.js:將JavaScript進行到底》是一本經典的 Learning by Doing的書籍。它由 Node社區著名的 Socket.IO作者—— Guillermo Rauch,通過大量的實踐案例撰寫,并由 Node社區非常活躍的開發者—— Goddy Zhao翻譯而成。 《了不起的Node.js:將JavaScript進行到底》內容主要由對五大部分的介紹組成: Node核心設計理念、 Node核心模塊 API、Web開發、數據庫以及測試。從前到后、由表及里地對使用 Node進行 Web開發的每一個環節都進行了深入的講解,并且最大的特點就是通過大量的實際案例、代碼展示來剖析技術點,講解最佳實踐。
本書寫作精良 —— Amazon.com讀者Shawn Rapp
本書直指要點,且無無用廢話,可謂字字珠璣 —— Amazon.com讀者Pragmateek也是把Node.js講的非常清晰的一本書,比《Node.js高級編程》稍遜一籌,但是也是非常難得。里邊的內容《Node.js高級編程》基本上都講到了,不過大家站的角度略有不同,可以搭配翻看。另外此書還講解了TDD和BDD測試開發,并且講解了Mocha測試框架,對于想了解測試是不錯的選擇。
-
《Node即學即用》
"本書探討了Node及許多第三方模塊,并給出了指導練習,旨在帶你了解Node。通過學習本書,你不但能夠熟悉JavaScript的基本操作,還能逐漸開始構建復雜、交互式的網站。如果你曾經使用過其他服務器端Web框架,定會震驚于用Node這么容易就能編寫一個服務器!"
-- Ryan Dahl,Node.js的創建者"本書很好地詮釋了Node的精髓,并講述了如何用它構建交互式網絡應用和網站。Node棒極了,而本書就是關于Node的很好的指南,請盡情享受閱讀的樂趣吧!"
-- Brendan Eich,JavaScript的創建者我第一本Node.js書買的此書,但是實在不適合作為第1本Node.js參考書。
書很薄,內容講的點到為止,但是內容都充滿了黃金。適合作為第2本進階書籍,如果你沒有Node.js基礎,看此書會讓你十分困難。然而當你掌握了Node.js之后,看此書能讓你認清Node.js的內部成分。
書中一開始就是Twitter應用客戶端和服務器的Demo,然后逐步講解了REPL、常見服務器模型、加密解密、緩沖區、TCP HTTP原理、中間件、常用數據庫的通信過程。
非常實用的書籍,一定要買一本!
-
《Node.js開發指南》
這本書更確切的說是一本小冊子,對Node.js的介紹比較簡單,沒有深入太多。講解了TCP HTTP服務器的構建和使用express構建博客的過程,和一些其他的Node.js內容。
讀這本書比較容易入門,文字寫的很清晰。但是切記,讀完之后務必要有一本系統介紹Node.js的書作為后盾,不然你很容易停留表面。
II 你需要閱讀的TCP HTTP基礎書籍
TCP?
HTTP?
沒錯,如果你想搞Node.js,那就意味著你要跟TCP HTTP搞在一起。那么你就必須了解TCP HTTP的內部原理。如果你不能正確理解TCP HTTP的底層內容,就無法編寫出靈活高效的應用服務。
上邊的一些Node.js書籍對TCP HTTP有了一些系統性的介紹,但是我覺得還遠遠不夠,尤其是HTTP HTTPS,應用服務器最主要的內容。
所以,你大概還需要以下的書籍。
-
《HTTP權威指南》
《HTTP權威指南》詳細解釋了HTTP協議,包括HTTP是如何工作的,如何用HTTP來開發基于Web的應用程序,核心的因特網協議如何與架構構建塊交互,如何正確實現因特網客戶和服務器等。《HTTP權威指南》的中心內容是HTTP,本質是理解Web的工作原理,以及如何將這些知識應用到Web編程和管理之中,主要涵蓋HTTP的技術運作方式、產生動機、性能和目標以及一些相關技術問題。
不需要我多說了,HTTP的圣經!
學習HTTP不可能不看這本書。
而且書中還同時講解了部分TCP原理。你想要的東西都在里邊:報文,編碼,新鮮度,命中,緩存,隧道、連接管理,代理,機器人,DNS,...應用盡有。學習HTTP最全面最權威的書籍!
如果你是Node.js程序員,卻從來沒有閱讀過本書,那么很難成為一個高層的Node.js程序員。
-
《Web性能權威指南》
《Web性能權威指南》是谷歌公司高性能團隊核心成員的權威之作,堪稱實戰經驗與規范解讀完美結合的產物。《Web性能權威指南》目標是涵蓋Web開發者技術體系中應該掌握的所有網絡及性能優化知識。全書以性能優化為主線,從TCP、UDP和TLS協議講起,解釋了如何針對這幾種協議和基礎設施來優化應用。然后深入探討了無線和移動網絡的工作機制。最后,揭示了HTTP協議的底層細節,同時詳細介紹了HTTP 2.0、 XHR、SSE、WebSocket、WebRTC和DataChannel等現代瀏覽器新增的具有革命性的新能力。
我覺得這本書的性價比不怎么樣,不過也值得一看。如果你手頭不那么寬裕,不買也罷。書中講解了一些實際運用的服務器,特別講解了通信的延遲、帶寬、請求響應需要考慮的方方面面,以及其他服務器所能涉及到的實際問題。
如果你不在乎多花幾十大洋,可以買一本搭配《HTTP權威指南》看。
-
《RESTful Web Services》
《RESTful Web APIs中文版》是針對RESTful API的實用指南,通過展示各種用來創建高可用應用的強大工具,講解REST的深層原理,以及介紹基于超媒體API的策略,使讀者得以在將上述內容融會貫通后,設計出讓客戶高度滿意的RESTful的web API。《RESTful Web APIs中文版》極具權威性與前瞻性,既代表了API領域的最前沿趨勢,也覆蓋了API領域的最重要實踐。
“這是一本了不起的書!《RESTful Web APIs》覆蓋了當今API領域最重要的趨勢和實踐。”
——John Musser ProgrammableWeb創始人很不錯的書。
看了這本書,能讓你了解RESTful的常識,并進一步增加對HTTP URI設計的了解。對于應用服務器開發和架構設計,也是一本非常好的參考書。
如果你是服務器應用設計的新手,這本書能很好地指導你如何設計你的URI。
III 你需要閱讀的設計模式書籍
如果你不想局限于做一個"小工",那么具備模型設計思維是非常必要的。
如何更好的設計目標,更有結構性的編碼,提供更好的接口,那么有必要讀一讀設計模型的書籍。
并不是面向對象才需要設計模式!
-
《Head First 設計模式》
。《Head First設計模式(中文版)》的產品設計應用神經生物學、認知科學,以及學習理論,這使得此書能夠將這些知識深深地印在你的腦海里,不容易被遺忘。《Head First設計模式(中文版)》的編寫方式采用引導式教學,不直接告訴你該怎么做,而是利用故事當作引子,帶領讀者思考并想辦法解決問題。
編程書籍哪家強?圖靈暢銷找Head First!
我覺得Head First系列的書籍不止是用匠心獨具來形容了,這套叢書簡直就是許多高端程序員送出的禮物。讀這些書,如同在幼稚園同老師做益智游戲,簡單輕松搞笑,同時學到刻骨的知識。
Head First的每一本書都是經典中的經典!
這本書的編程語言是Java,沒有關系,即便你不懂Java,有任何一門語言基礎,你都能看懂這本書。書中對設計模式Gof圣經進行了白話講解,你不知道如何就學通了設計模式。
-
《計算機科學叢書:設計模式 可復用面向對象軟件的基礎》
《設計模式:可復用面向對象軟件的基礎》是引導讀者走出軟件設計迷宮的指路明燈,凝聚了軟件開發界幾十年設計經驗的結晶。四位頂尖的面向對象領域專家精心選取了最具價值的設計實踐,加以分類整理和命名,并用簡潔而易于重用的形式表達出來。本書已經成為面向對象技術人員的圣經和詞典,書中定義的23個模式逐漸成為開發界技術交流所必備的基礎知識和語匯。
設計模式范式化的出處。設計模式書籍的權威鼻祖。
但是我對此書的評價是差評。此書使用C++作為語言,而且4位作者似乎并不像真的告訴你設計模式是怎么回事,雖然作者們看似很勤勞,配圖一個接著一個,但是該講的內容作者是不會講的。
你可以把ta買來翻看翻看,然后放在書架上唬人。因為只需要看《Head First 設計模式》已經讓你通達設計模式的境界。
-
《JavaScript設計模式》
Web應用取代桌面程序的時代已經到來!作為Web前端的核心技術,JavaScript的重要性不言而喻,它有望成為下一代統治性程序語言。但由于業界長期的誤解和濫用,也有不少人仍然對此半信半疑。那么,JavaScript到底能否當此大任呢? 本書中,Google和Yahoo公司的兩位資深Web專家對此給出了擲地有聲的肯定回答。作者針對常見的開發任務,從YUI等實戰代碼中取材,提供了專家級的解決方案,不僅透徹剖析了JavaScript中的面向對象編程。而且深入探討了如何用JavaScript實現以前只在服務器端應用的設計模式。如何根據實際場景選擇恰當的設計模式,開發出高質量的企業級代碼。本書充分證明:JavaScript不僅毫不遜色于其他高級語言,已經是一種成熟且強大的面向對象語言。而且還擁有Java和C++等語言不具備的面向未來的特性,因此更加靈活、更富于表現力。 無論是前端工程師-還是服務器端程序員,通過本書都將使自己的JavaScript功力提升到前所未有的高度。
Google的工程師聯合Yahoo工程師的著作,JavaScript版本的設計模式,講解非常精彩。
不過我懷疑市面上是否能夠買到,當初我是搞了個打印版本。如果你能搞到一本,那么對于JavaScript的理解將會至上一個臺階。
IV 你需要閱讀的JavaScript書籍
萬丈高樓平地起,JavaScript功力不夠?
那么你的Node.js編碼過程將會非常受挫。
因此,系統地學習JavaScript是非常必要的。
-
《JavaScript高級程序設計》
《JavaScript高級程序設計(第3版)》是JavaScript超級暢銷書的最新版。ECMAScript 5和HTML5在標準之爭中雙雙勝出,使大量專有實現和客戶端擴展正式進入規范,同時也為JavaScript增添了很多適應未來發展的新特性。《JavaScript高級程序設計(第3版)》這一版除增加5章全新內容外,其他章節也有較大幅度的增補和修訂,新內容篇幅約占三分之一。全書從JavaScript語言實現的各個組成部分——語言核心、DOM、BOM、事件模型講起,深入淺出地探討了面向對象編程、Ajax與Comet服務器端通信,HTML5表單、媒體、Canvas(包括WebGL)及Web Workers、地理定位、跨文檔傳遞消息、客戶端存儲(包括IndexedDB)等新API,還介紹了離線應用和與維護、性能、部署相關的最佳開發實踐。《JavaScript高級程序設計(第3版)》附錄展望了未來的API和ECMAScript Harmony規范。
“如果你像我一樣,想學習或者熟練掌握今天最熱門的Web開發技術,《JavaScript高級程序設計》是一個絕佳的起點,適合在所有Ajax圖書之前閱讀。”
—— J.Ambrose Little Microsoft MVP“《JavaScript高級程序設計》作者顯然非常了解讀者的需要,落筆切中要害,行文信息密集.單單對客戶端通信、Web服務、正則表達式、DOM、XML處理等現代JavaScrpt技術的詳細講解,就已經物超所值。”
—— JavaScriptkit.comJavaScript的編程圣經,Yahoo程序員作品。目前已經是第3?版了。
基礎語法,面向對象,柯里化,高級函數,定時器節流,Document,XML,JSON,...應有盡有。書有600多頁厚度,然而講解的非常簡單細致,足見作者的心思細膩和思維伶俐。
學JavaScript買此書就對了!
-
《編寫可維護的JavaScript》
本書是一本教你寫出具有前瞻性的JavaScirpt代碼的完全手冊,在團隊作戰中特別有用。
—— YUI工程師 Ryan Grove,Yahoo!作者將他十多年工作經驗的精華部分濃縮至這本通俗易讀的書中。我建議每個開發工程師和在校學生盡早閱讀本書。不管你有多少經驗,本書中的每一頁內容都會讓你變得更加優秀且倍受大家歡迎。
—— Web設計師兼Web開發人員 Lea Verou這是一本前端工程師的指南,指明了在編碼過程需要注意的方方面面。提高可維護性是一個非常大的話題,而這本書,是一個非常不錯的起點。
—— 支付寶Web前端工程師 王保平(玉伯)與上面的書籍同一個作者。這本書側重介紹工程化的JavaScript,全面細致的講解了實際項目如何解決JavaScript編程。包括注釋,模板引擎,配置文件,編譯預編譯,UI設計,兼容性,文件合并壓縮,自動化測試,版本構建...
-
《JavaScript權威指南》
從1996年以來,本書已經成為JavaScript程序員心中的《圣經》。該書已經印刷了50多萬冊,Web開發人員對它如是評價:“本書是JavaScript程序員的必備參考……內容組織得很好,而且非常詳細。”
—— Brendan Eich,JavaScript之父,Mozilla CTO“我從本書學到的內容直接影響到我的職業生涯。”
—— Andrew Hedges,Tapulous公司游戲工程師“本書教會了我JavaScript。”
—— Tom Robinson,280 North的創始人,Cappuccion的合作創始人“通過閱讀本書,我能全面地掌握JavaScript這門語言,本書讓我受益匪淺。”
—— J.Chris Anderson,CouchBase的創始人,Apache CouchDB委員會成員,《CouchDB:The Definitive Guide》一書的作者“如果讓我來推薦一本學習JavaScript的最佳書籍,我一定會推薦本書。”
—— Rey Bango,微軟客戶端Web社區項目主管和jQuery團隊成員然而,作為一個反復讀了3次以上的親身體驗者,我認為此書寫的很差,非常之差:
- 大百科
- 書很厚
- 書很貴
- 每一章作者都沒有講清楚所要解決的問題
要說書中優秀的地方,也就是關于函數式設計和子集這兩部分了,如果你想了解一些函數式和算法的東西,看一看這兩章的內容。
-
《JavaScript經典實例》
《JavaScript經典實例》各節中的完整代碼解決了常見的編程問題,并且給出了在任何瀏覽器中構建Web應用程序的技術。只需要將這些代碼示例復制并粘貼到你自己的項目中就行了,可以快速完成工作,并且在此過程中學習JavaScript的很多知識。你還將學習如何利用ECMAScript5和HTML5中的最新功能,包括新的跨域掛件通信技術、HTML5的video和audio元素,以及繪制畫布。《JavaScript經典實例》中一些章節介紹了如何將這些技術與JavaScript一起使用,構建高品質的應用程序界面。
你可以把此書當成一個工具參考書,當你有問題無法解決時,可以到書中目錄搜尋以下,也許能找到你需要的東西。包括正則表達式,循環,事件,瀏覽器處理,表單訪問,...
-
《基于MVC的JavaScript Web富應用開發》
《基于MVC的JavaScript Web富應用開發》所涵蓋的知識點非常全面,從Mvc的基本理論到網絡協議、從模塊解耦到異步編程模型、從HTML5/CSS3到NodeJS、從軟件測試到部署調試,對于很多前端工程師來說,這些知識正是突破自己的瓶頸所亟需的。《基于MVC的JavaScript Web富應用開發》將專注于講述如何構建“優雅又不失高水準”(state of the art)的JavaScript應用,包括軟件架構、模板引擎、框架和庫、同服務器的消息通信等內容。書中同樣提供了大量的示例代碼,可以幫助你更深入地理解很多重要的概念。除此之外,作者在MVC和架構方面的很多觀點都很有啟發性,即使你不是一名JavaScript程序員,讀完《基于MVC的JavaScript Web富應用開發》后也會受益匪淺。
“強烈向讀者推薦此書,它將會教你如何構建先進的富應用程序,書中給出的很多優秀的工具和最佳實踐都是很多程序員和工程師在工作中亟需的。我已經記不起向多少人推薦過這本書了。”
—— Addy Osmani 美國在線JavaScript工程師這本書可以讓你全面了解編寫瀏覽器客戶端的知識,而且書中使用了MVC和許多設計模式的內容。如果你偏愛面向對象,這本書會比較適合閱讀。
另外,這本書中的許多實例都介紹了一些很有價值很實用的編碼方法。
V JavaScript 九陰真經
當你想要JavaScript技巧通往更神秘的境地時,那么下面的兩本《九陰真經》就不能錯過。
-
《JavaScript語言精粹》
JavaScript曾是“世界上最被誤解的語言”,因為它擔負太多的特性,包括糟糕的交互和失敗的設計,但隨著Ajax的到來,JavaScript“從最受誤解的編程語言演變為最流行的語言”,這除了幸運之外,也證明了它其實是一門優秀的語言。Douglas Crockford在本書中剝開了JavaScript沾污的外衣,抽離出一個具有更好可靠性、可讀性和可維護性的JavaScript子集,讓你看到一門優稚的、輕量級的和非常富有表現力的語言。作者從語法、對象、函數、繼承、數組、正則表達式、方法、樣式和優美的特性這9個方面來呈現這門語言真正的精華部分,通過它們完全可以構建出優雅高效的代碼。作者還通過附錄列出了這門語言的糟粕和雞肋部分,且告訴你如何避免它們。最后還介紹了JSLint,通過它的檢驗,能有效地保障我們的代碼品質。
這是一本介紹JavaScript語言本質的權威書籍,值得任何正在或準備從事JavaScript開發的人閱讀,并且需要反復閱讀。學習、理解,實踐大師的思想,我們才可能站在巨人的肩上,才有機會超越大師,這本《JavaScript語言精粹》就是開始。
天下武學,唯我獨尊。
想了解JavaScript的真正奧秘?那么你必須擁有此書。
JSON、JSLint、JSMin和ADSafe的作者,ECMAScript標準委員會的制定者之一,而且多次在ECMAScript規范制定中起到關鍵作用,被JavaScript之父Brendan Eich稱為JavaScript的Yoda。
JavaScript中的糟粕和精華,模塊,閉包,遞歸,柯里化,記憶,原型,...各種內功心法,大力丸藥房,奇招妙手,你都可以獲得深入的了解。
而且附帶json_parse()源碼。
-
《JavaScript編程精解》
編程原理與運用規則的簡練、完美融合。我喜歡游戲式的程序開發教程。本書再次點燃了我學習編程的熱情。對了,是JavaScript!
—— Brendan Eich,JavaScript之父因為這本書,我成為了更棒的架構師、作家、咨詢師和開發者。
—— Angus Croll,Twitter開發者如果你決定只買一本有關JavaScript的書,那么就應是Marijn Haverbeke的這本書。
—— Joey deVilla,Global Nerdy本書不僅是學習JavaScript最棒的教材之一,也是通過學習JavaScript進而學習現代編程的優秀圖書。當有人問我如何學好JavaScript時,我會推薦這本書。
—— Chris Williams,美國JSConf組織者我讀過的最棒的JavaScript書籍之一。
—— Rey Bango,微軟Client-Web社區項目經理和jQuery團隊成員這本書對編程基本原理的詳述以及對棧和環境等概念的解釋非常到位。注重細節使本書從其他的JavaScript書中脫穎而出。
—— Designorati如果你沒有聽說過CodeMirror,那就說明你的編程功底恐怕還有待提高。現在,許多大名鼎鼎的代碼編輯器都內置了CodeMirror,作為代碼高亮以及文本操作的程序庫。許多流行編輯器都內置了CodeMirror,甚至現在流行的Markdown語法在線編輯器。
此書作者就是CodeMirror的作者,編程功底無話可說。
函數式,面向對象的本質是什么?這本書會給出一個深刻的解釋。最有意思的是,本書每一個章節都有一個謎題一樣的任務,作者一步一步的使用精深的JavaScript功力,為大家一層層的解答各個謎題,并且過程清晰簡明。