Go 程式設計系列 (2):使用情境

即將跳轉至新頁面,或自行前往這裡。 在上一篇文章中,我們簡單地介紹 Go 的特性,相信讀者已經對 Go 有一些初步的了解。接下來,筆者會在本篇文章中討論 Go 的長短處以及 Go 的使用情境等,讓讀者可以進一步考量是否要在下一個專案中使用 Go,畢竟,當專案成長到成千上萬行的程式碼後,重寫的代價是相當可觀的。 首先,筆者要提醒各位讀者,雖然 Go 語言相當簡潔易學,寫起來近於腳本語言,但 Go 語言並不是完美無缺的;Go 語言刻意地在語法機制上保持簡單化、最小化,反而缺乏許多現代語言常見的特性,筆者列出一些實例: 缺乏泛型 (generics),這是最常討論的議題,詳見此文 缺乏函式重載 (function overloading) 缺乏運算子重載 (operato...
「點我閱讀更多」

Windows 求生手冊 (1):緣起

即將跳轉至新頁面,或自行前往這裡。 「Windows 用得好好的,怎麼需要求生?」一般使用者大概只有電腦出問題,像是中電腦病毒 (computer virus) 或是勒索病毒 (ransomware) 時才會想要找求生之道。不過,這系列的文章並不是防毒或防駭手冊,也不是電腦 DIY 大全。這系列文章,是筆者經歷 Winodws、Mac、GNU/Linux 三種系統之後,所發想的文字記錄,目的在於記錄一些讓 Windows 更好用的方式,畢竟有時候還是會用 Windows 做事。這系列文章有一些偏向 GNU/Linux 使用者的觀點,但筆者會平實公正地敘述自已的想法。 Windows 系統會讓人覺得不好用,主要有以下兩點: 缺乏良好的命令列 (console) 環境 對 ...
「點我閱讀更多」

Go 程式設計系列 (1):簡介

即將跳轉至新頁面,或自行前往這裡。 Go 語言,也稱為 Golang,是一個靜態型別的 (statically-typed) 通用型 (general-purpose) 編譯 (compiled) 程式語言,由 Google 公同主導開發。Go 最早於 2009 年問世,對於程式語言來說,算是相當年輕,但 Go 已經吸引許多來自全世界的開發者的目光;Ruby 創造者松本行弘曾說過,一個程式語言生態圈至少要十年才能有成,但 Go 在短短不到十年間於程式語言排名中已名列前矛,像是獲得 TIOBE 2016 年最佳語言等。雖然國內對於 Go 的專書尚少,但國外已經有相當多的學習資料。筆者將於這個系列的文章中介紹 Go 語言。 Go 語言的核心開發者 Rob Pike 曾撰文介紹 Go 設...
「點我閱讀更多」

Go (golang) 是否該支援泛型?

「Go (golang) 應該要有泛型 (generics)」,這大概是 Go 社群最常拿出來炮的一個議題。筆者有訂閱 Go 社群發行的電子報,也有在推特 (Twitter) 上追蹤 Go 的社群動態,這個議題每隔一陣子就會看到某個部落客發文 (編按:就像我們這篇),或是某個開發者又造出某個非官方的輪子,Go 社群對這個議題的態度不言自明。最近 Go 發布了 2.0 版本的 roadmap,又讓大家燃起一線生機,是否能利用大版本更新的時候將泛型做為 Go 回饋社群的一份大禮呢? 撰寫泛型程式時,程式設計者不需要預先指明程式的型別,而可以待後續呼叫該程式碼再宣告型別。動態型別 (dynamically-typed) 的語言,例如 Python、Ruby、PHP、Perl 等,不需要泛型...
「點我閱讀更多」

Cloud 9 IDE 簡介

前一陣子看到有網友在問 Cloud 9 是什麼、如何使用等議題,剛好筆者使用過一陣子這套軟體,而且是付費會員,筆者就自身的經驗來說明 Cloud 9 的使用相關議題,給需要的讀者做一個參考。 [Update on 2017/12/19] Cloud 9 後來被 Amazon 併購了,舊版的 Cloud 9 帳號已經停止申請,筆者目前的使用經驗主要是基於舊版的 Cloud 9,待筆者將環境轉換到新版後再更新本文。 大體來說,Cloud 9 是一個雲端整合式開發環境 (IDE),透過瀏覽器即可操作,不需額外安裝軟體。通常只要版本夠新的主流瀏覽器都可以支援,筆者本身是透過 Google Chrome 操作 Cloud 9,其他的瀏覽器,像是 Firefox、Safari 或 Opera 應...
「點我閱讀更多」