繼上期探討了 javascript 前端技術之後,本期我們將焦點放在筆者開發的一個維基型網誌專案 wikidown.js 上,用實際的案例探討如何將前後端結合在一起的方法。
最近聽到許多用 node.js 的網友改去用 io.js ,然後他們還開始用了 koa.js 這個框架。 筆者不看不知道,一看不得了,發現這是個重要的好東西,只好趕快來介紹給大家認識。 於是就產生了這期的《JavaScript 語言的新進展 (ES6, io.js 與 koa)》
在本期的「程式人雜誌」中,聚焦的主題是「圖形搜尋」,包含深度優先 DFS、廣度優先 BFS 與最佳優先搜尋等,皆有JavaScript + Node.js的實作範例。Arduino系列雖告一段落,Cooper Maa探索Arduino背後AVR晶片的文章馬上就補位。其他專欄文章一樣精采,可別錯過...
Rails 101是一本Ruby on Rails的教學書,作者是知名的網站開發與運營者xdite。xdite使用Ruby on Rails開發網站已逾6年,經驗豐富,訓練其他開發者的資歷,更讓Rails 101切合使用者需求。本書3年來已售出近2000本,xdite善用數位出版的優勢,歷次改版,確...
想學 Node.js 嗎?考慮用本書當你的入門教材吧!作者 Jollen 兼具開發與教學的經驗,先談 JavaScript 設計模式和使用 HTML5 開發 Web App 的基本概念,再開始切入主題 Node.js。進階篇中也會帶到 Express.js、RESTful、Backbone...
繼上期探討了 javascript 前端技術之後,本期我們將焦點放在筆者開發的一個維基型網誌專案 wikidown.js 上,用實際的案例探討如何將前後端結合在一起的方法。
在 wikidown.js 專案中,我們採用了前端的 HTML/CSS/JavaScript 等必要技術,然後用 bootstrap 作為介面以便支持手機類的行動裝置,並用了 showdown.js 這個開放原始碼專案進行 markdown 文件轉為 HTML 的動作,最後再加上 highlight.js 為程式碼區塊加上顏色,還有用MathJax 顯示latex 數學式的功能。
而在 wikidown.js 的後端伺服器部份,則是非常輕量級的,因為我們將所有程式盡可能放在前端,所以後端就只剩下了檔案的讀寫動作。
後端部份採用 node.js 作為伺服平台,然後用 express.js 套件作路徑 (routing) 的比對處理並輸出靜態網站,接著用 [serve-index.js] 套件提供靜態檔案瀏覽功能,於是 wikidown.js 就完成了。
雖然 wikidown.js 看來用到了很多套件,但是事實上整個專案的程式碼非常小,主要包含 wikidown.html 共 200 行,還有 wikiServer.js 共 60 行,可以說是一個超小型專案,但是『麻雀雖小、卻是五臟俱全』阿!
寫了 wikidown.js 維基網誌系統後,我深深地體會到,現在的程式設計是很難獨立建構出整個系統的,我們只有站在開放原始碼的肩膀上,才能做得更快又更好。
就像牛頓的那句名言:『只有站在巨人的肩膀上、我們才能看得更高更遠』,對於程式人而言,那個巨人就是 開放原始碼 ,我們只有站在 開放原始碼 的基礎上,才能做得又快又好阿!
投稿方式
竭誠歡迎程式人投稿,或者成為本雜誌的專欄作家,現在就可以加入 程式人雜誌社團 一同共襄盛舉。
我們最希望的投稿格式是採用 markdown 格式編輯,並將全部檔案壓縮成 zip 之後上傳到社團或寄給編輯。如果無法用 markdown 編輯,任何的稿件只要我們能打開並進行剪貼的,我們都會想辦法編輯後出版。
本雜誌預設用 創作共用:姓名標示、相同方式分享 授權分享,若要採用其他授權方式請於投稿時告知我們。本雜誌編輯為「陳鍾誠 (@ccckmit)」,若要聯絡編輯,請寄信到 ccckmit@gmail.com。
程式人雜誌網頁
http://programmermagazine.github.io/home/
程式人雜誌的臉書社團
https://www.facebook.com/groups/programmerMagazine/
根據台灣現行法規,數位內容( 如電子書、音樂、影片、遊戲、App )形式之商品,不受「網購服務需提供七日鑑賞期」的限制。為維護您的權益,建議您先使用「試讀」功能後再付款購買。