![]() |
VOOZH | about |
整個故事正如好萊塢大片的經典劇情走向:兩位昔日好友如今分道揚鑣,甚至被迫陷入了你死我活的鬥爭當中。剛開始的分歧並不嚴重,無非是一位老友對於另一位夥伴長久以來占據、但又絕口不提的業務領域產生了點興趣。而在現實版的這場程式語言決鬥大電影中,Node.js成了那位成了好兄弟反目成仇的導火索,並由此引發一場勢均力敵、旗鼓相當的大戰:PHP與JavaScript,雙方曾一度攜手統治整個網際網路世界,但如今卻為了爭奪開發人員的支持而向對方痛下殺手。
遙想當年,合作關係總是簡單而純粹。那時候JavaScript負責處理瀏覽器上的細枝末節,而PHP則管理著存在於埠80與MySQL之間的全部伺服器端任務。當時雙方保持著愉悅的合作心態,並不斷為網際網路旗下的各種關鍵性部件提供支持。無論是WordPress、Drupal還是Facebook,缺少了PHP、人們在網絡中幾乎一分鐘也待不下去。
然而某位機靈的技術人員發現了一個驚人的秘密:JavaScript也完全能夠運行在伺服器之上。幾乎在一夜之間,我們似乎根本用不著藉助PHP的力量來打造下一代伺服器堆棧了。單憑一種語言,我們已經能夠構建起Node.js以及其它各類運行在客戶機上的框架。「JavaScript無處不在」甚至成為一部分開發人員的工作信仰。
當然,這個故事的結局還沒有敲定。對於每一位到處宣揚Node.js先進性以及JavaScript便捷性的開發人員來說,總有跟自己作對的傢伙存在——他們更傾向於PHP深邃的代碼基礎以及長期穩定的實際表現。那麼這位舊日支配者能夠在自己多年盤踞的伺服器端主場上擊潰挑戰方嗎?JavaScript又是否會無情地推翻自己的老朋友,完成自己的天下一統野心?請大家拿起手中的爆米花桶與可樂,共同觀看這場精彩紛呈的同室操戈好戲。
大家在輸入的過程中當然希望能將自己的思路直接轉化為網站的文本內容,同時還要為進程添加分支、一部分if-then語句以保證站點擁有漂亮的視覺效果,具體取決於URL中的某些參數。又或者,我們希望能夠利用單一資料庫將文本或者數據加以混合。在PHP的幫助下,大家只需要打開魔法般的PHP標籤,幾秒之內即可開始編寫代碼。是的,不需要任何模板——因為一切都已經從屬於模板了!也用不著使用額外的文件或者複雜架構,可編程邏輯的強大力量就在我們的指尖、等待著各位的調遣。
不可否認,成千上萬的開源PHP文件確實能幫助大家更輕鬆地完成項目開發,但其中也有不少已達八歲高齡的WordPress插件等待並盼望著開發人員將其下載並加以運用。誰願意用幾小時、幾天甚至幾個禮拜時間對這些多年未曾更新的代碼進行調試?至少我不願意。Node.js插件不僅更加年輕,而且也享受到了最新架構方案所帶來的種種便利。開發這部分代碼的程式設計師們非常清楚,現代Web應用程式應當為客戶端引入更多智能化元素。
JavaScript在使用中的一些小彆扭可能會令某些開發人員抓狂,但總體而言這是一套現代程式語言、其中包含大量現代化語法加上以閉包為代表的一系列實用特性。大家可以輕鬆對其進行重新配置與擴展,從而使jQuery等強大的庫成為可能。我們用不著為對象之類的功能而心煩。為什麼要跟自己過不去呢?
儘管AJAX常常將大量活動部件塞進HTML 5 Web應用當中,但它們確實很酷——而且極具實效優勢。一旦JavaScript代碼進入瀏覽器緩存,需要在網絡線路間往來傳輸的就只剩下新數據了。在這裡我們不需要面對成噸的HTML標記,而且無需重複下載整個頁面內容。只有其中的數據會發生變化。如果大家願意花點時間來創建一款精緻的Web應用程式,那麼它絕對能給各位帶來理想的回報。Node.js針對數據交付機製作出了深入優化,而且數據只需要提供給Web服務。如果大家的應用程式非常複雜而且充斥著大量數據,那麼Node.js無疑為信息的有效傳遞建立起良好的基礎。
如果大家必須接入SQL,那麼Node.js也提供相關庫來完成這項任務。但除此之外,Node.js還能與JSON互通,這套通用方案能夠與眾多最新NoSQL資料庫實現交互。這並不是說我們沒辦法在自己的PHP堆棧中獲得JSON庫,但在將JSON與JavaScript配合使用時、往往能夠帶來簡單便捷的任務處理流程。通過這種方式,我們能夠保證從瀏覽器到Web伺服器再到資料庫全部使用同一種語法,其中冒號與括號的使用方式及作用完全相同。這將幫助大家在節省開發時間之餘,顯著降低代碼編寫時的挫敗感。
如果您喜歡這篇文章,請記得點讚哦