如何撰寫虛擬碼 (Pseudocode)

直接使用程式碼來呈現 (資料結構和) 演算法,往往需注意過多細節,像是型別、陣列長度、存取權限、記憶體管理等,而且程式語言很多,單一語言能滿足的客群相對小。有許多演算法的書籍會轉而使用虛擬碼 (pseudocode) 來表示,由讀者自行將其轉為可用的程式碼。虛擬碼不需在意程式語言的細節,敘述上比較簡潔。 在虛擬碼和程式碼之間的轉換,需要一段時間的學習才能上手。但學過一段時間的程式設計後,反而會覺得程式碼比虛擬碼簡單,因為編譯器或直譯器會協助我們找出程式碼中的錯誤,而虛擬碼沒有固定的格式,只能由人工閱讀來確認是否正確。有時候我們需要撰寫虛擬碼而非程式碼,像是學校考試、學術報告、技術文件等;因此,除了能讀懂別人寫的虛擬碼,最好還是要能自己寫虛擬碼。 虛擬碼的風格差異很大,有些會用數學表...
「點我閱讀更多」

JavaScript 轉譯器百百種,孰優孰劣?

程式設計者對 JavaScript 的態度是毀譽參半,喜歡 JavaScript 的開發者會說 JavaScript 跨越網頁前後端、桌面端、行動端、物聯網,儼然是大一統的程式語言,討厭 JavaScript 的開發者會說 JavaScript 坑坑洞洞超多,為了相容性,舊洞不修又再加新特性,根本就疊床架屋。開發者對 JavaScript 強烈的情感一部分是來自於 JavaScript 目前是網頁前端實質的 (de facto) 標準,是寫網頁程式的必然之惡。 為了能在保持相容性的前提下改善 JavaScript 先天不良的體質,使用 JavaScript 轉譯器 (JavaScript Trans-compiler) 就成了一個可行的方向。這類工具的思維在於減少手動撰寫樣板程式碼的...
「點我閱讀更多」

[投票] 入門級網頁教學所用的輕量級框架

我們初學程式設計時,通常會先從最簡短的程式碼開始,隨著學習過程,慢慢地寫出更長的程式。但是,我們在學習網頁程式時,為了實務面的需求,反而會優先使用一些大而全的網頁框架。不過,也有一些輕量級的框架 (即微框架 microframework),沒有複雜的專案架構和設定檔,可以用單一的命令稿來撰寫網頁程式,這類輕量級框架,相當適合用來入門網頁程式。筆者最近即將著手撰寫一些入門級的網頁教學,而各位讀者可以決定這系列文章所用的教學工具。 由於網頁本身是語言中立的技術,根據不同目的會選用不同的網頁技術。而我們這一系列網頁教學的目的是用相短簡短的程式碼來學習網頁程式,減輕學習者的負擔,網站效能倒不是我們的第一考量。筆者考量易用性、流行度、資料豐富度等項度,初步選出以下四個框架: Flask...
「點我閱讀更多」

C# (C sharp) 在非 Windows 系統的日常 (2018 年版)

C# 傳統上視為一種 Windows-only 的技術,不過微軟近年來改變策略,讓 C# 等原先僅限於 Windows 的技術走出 Windows 系統,在 Mac 及 GNU/Linux 等系統上也可使用。雖然比起 C# 精神上的雙胞胎 Java 來說,起步稍微晚了點,這樣的發展,的確有助於 C# 程式設計者延續和拓展其技術的生命週期。本文檢視 C# 在非 Windows 系統上的應用。 註:這類型的資訊會隨時間而改變,我們以西元 2018 年三月左右的狀況為準。 如果接觸過 .NET 平台的讀者,知道 .NET 平台不是單一的語言,而是有多種語言的共通平台;一般來說,.NET 平台的代表性語言有 C#、F#、Visual Basic。不過,可以看得出來其實 .NET 平台最注重...
「點我閱讀更多」

社群媒體時代的部落格寫作

全球資訊網是自由且低阻力的新興媒體,成為傳統媒體外最受矚目的資訊流通管道。部落格 (blog) 就像是一個小型的電台,部落客可以在其中充分表達自己的觀點和意見。除了增加自己在虛擬世界的曝光度,廣告等收入也讓部落格成為可收益的活動。然而,社群媒體 (social media) 出現後,挾帶著更低阻力和社交互動性,迅速地成為網路世界的新竉兒;比起文字敘述,Youtube 和 Viemo 等多媒體型態的社群媒體更吸引大家的目光。相較於這些新興勢力,我們不禁要問:部落格死了嗎? 如果觀察一些指標,可以發現部落格的確在衰退中。像是以下的 Google 趨勢: 可以發現,這個主題的熱度逐年下滑。 從出版業來看,也會發現這個主題不再熱門。中文的部落格相關書籍約略停留在西元 2008 至 ...
「點我閱讀更多」