2014年5月4日 星期日

不一樣的 Node.js!終於完成的新書前來報到!

Standard
這陣子,最怕的就是有人問:『書什麼時候要發行?』,參加社群聚會或活動時,有人會問我,平常周圍朋友也會問我,工作上隊友和客戶都會問我,只有一些親人根本不知道不知道我在寫書,所以不會問我。如果你問我,寫書這件事上,你最怕的是什麼?我會跟你說,出版社截稿日期的死線(Deadline)並不是最可怕的,最可怕的是,它是一種詛咒,讓周圍人都會特別關心你的一種魔法。而這個關心的壓力,讓人喘不過氣來。

還好,書總算從初稿、校稿到排版完成,直到出版社編輯傳來最後的封面設計,才讓人鬆了一口氣。可以告訴大家,書總算要真正出來了!



事實上,國內 Node.js 的書其實並不多,其中幾乎多為翻譯書,或是從簡體直接翻成繁體中文的書。這讓這幾年一直在到處推廣 Node.js 的我,相當困擾。每當有人問起 Node.js 有什麼書可以看時,我總是無法推薦出很多本給大家參考。所以,當出版社的編輯跟我說,希望寫一本 Node.js 的中文書時,我其實相當開心。

還記得當時接下這個任務後,我便開始思考和回想,在推廣和使用 Node.js 時,所遭遇到的困難是什麼?我能否藉這本書來幫助讀者排除這些困難?甚至給讀者一個更大的視野,一個 Node.js 可以發揮在各種領域的可能性。

此外,網路時代來臨後,有太多的新資料都可以從網路上取得,這本書要提供什麼內容,更是需要被探討的問題。尤其是 Node.js 這樣版本號快速上升的新技術,可能書還沒寫完,內容就已經過時。在種種思索下,期望本書的定位,將帶給大家的不是絕對的技術新知,而是一本學習 Node.js 的參考書和技術指南,讓想入門的讀者可以學會怎麼使用 Node.js,讓已經懂的人可以知道 Node.js 還能做些什麼不一樣的事,更進一步知道從哪裡去得到更多 Node.js 的新知。如果這本書在幾年後,仍有六成的資料值得參考,那就算完美達成我賦予它的任務了。

從引領初學者的角度來看,並參考了一些市上的 Node.js 書籍,也從過去教育訓練和推廣的場合發現一個現象。Node.js 不是什麼很難的新東西,如果有人已經很熟悉 JavaScript 語言,而且能寫的很好,Node.js 根本是小菜一碟。所以,多半不得其門而入的人,是對 JavaScript 不這麼熟悉,或是想使用 Node.js 技術進行第一次接觸程式開發的人。只不過,往往市面上的 Node.js 書籍,多半假設讀者已經相當了解 JavaScript 語言,所以對 JavaScript 不會多加說明,這的確會造成一些人的困擾。

所以,在寫這本『不一樣的 Node.js』時,就希望從 JavaScript 語言開始講起,除了先破除許多人對 JavaScript 的長久的迷思,也讓從來沒接觸過程式語言或是半路出家來寫 JavaScript 程式的人,可以從語言的角度入門,再去一步步學習 Node.js 的應用程式開發。又因為在使用 Node.js 開發時,有很多的問題是出現在 JavaScript 語言的概念上,所以在書的最後,也會特別提到一些 JavaScript 語言的一些問題和陷阱。因此,稍微著重或是從 JavaScript 語言的角度出發,是本書比較大的特色之一。

當然,介紹 Node.js 基本知識是肯定有的,只是與一些快速直接切入開發網站系統的教學書不一樣,這本書在進入 MVC Web Framework 章節前,會先說明如何撰寫『純』的 Node.js 應用程式,包括了開發傳檔程式和後門程式等。

前面說到這本書也期望給讀者更大的視野,讓 Node.js 不只是聚焦在 Web 上。所以,在本書的後段章節,除了會提及和整理桌面應用程式的開發,也會討論如何在嵌入式(Embedded System)上使用 Node.js。

無論如何,書總算是寫完了,雖然校稿了很多次,但難免有遺漏,還請包涵。只希望這本書能夠讓更多人喜愛使用 Node.js!

後記

世界上已經有太多人在探討如何使用各種 Web Framework 來開發網站應用程式,所以其實如果可以,想花多點章節在討論使用純的 Node.js,以及利用第三方模組來快速實作許多強大的功能。例如,教讀者使用 Node.js 寫 IRC Bot,然後讓大家可以自己寫 Twitch 的聊天室 Bot。

不過,這些想法,也許要等收集完讀者回饋後,或有要寫下本書後,再來看怎麼改進吧!不過至少有機會的話,肯定會在 Blog 持續討論相關的議題。:-)