Go語言核心36講(導讀)--學習筆記


目錄

  • 開篇詞 | 跟着學,你也能成為Go語言高手
  • 導讀 | 寫給0基礎入門的Go語言學習者
  • 導讀 | 學習專欄的正確姿勢

開篇詞 | 跟着學,你也能成為Go語言高手

Go 語言是由 Google 出品的一門通用型計算機編程語言。

Go 程序可以在裝有 Windows、Linux、FreeBSD 等操作系統的服務器上運行,並用於提供基礎軟件支撐、API 服務、Web 服務、網頁服務等等。

Go 語言也在移動端進行了積極的探索,現在在 Android 和 iOS 上都可以運行其程序。另外,Go 語言也已經與 WebAssembly 強強聯合,加入了 WASM 平台。這意味着過不了多久,互聯網瀏覽器也可以運行 Go 編寫的程序了。

從公司角度看,許多大廠都已經擁抱 Go 語言,包括以 Java 打天下的阿里巴巴,更別提深愛着 Go 語言的滴滴、今日頭條、小米、奇虎 360、京東等明星公司。同時,創業公司也很喜歡 Go 語言,主要因為其入門快、程序庫多、運行迅速,很適合快速構建互聯網軟件產品,比如輕松籌、快手、知乎、探探、美圖、獵豹移動等等。

下面,我們一起瀏覽一下本專欄的主要模塊,一共分成 3 大模塊,5 個章節。

  • 基礎概念:我會講述 Go 語言基礎中的基礎,包括一些基本概念和運作機制。它們都應該是你初識 Go 語言時必須知道的,同時也有助於你理解后面的知識。
  • 數據類型和語句:Go 語言中的數據類型大都是很有特色的,你只有理解了它們才能真正玩轉 Go 語言。我將和你一起與探索它們的奧妙。另外,我也會一一揭示怎樣使用各種語法和語句操縱它們。
  • Go 程序的測試:很多程序員總以為測試是另一個團隊的事情,其實不然。單元測試甚至接口測試其實都應該是程序員去做的,並且應該受到重視。在 Go 語言中怎樣做好測試這件事?我會跟你說清楚、講明白。
  • 標准庫的用法:雖然 Go 語言提供了自己的高效並發編程方式,但是同步方法依然不容忽視。這些方法集中在sync代碼包及其子包中。這部分還涉及了字節和字符問題、OS 操控方法和 Web 服務寫法等,這些都是我們在日常工作中很可能會用到的。
  • Go 語言拾遺:這部分將會講述一些我們使用 Go 語言做軟件項目的過程中很可能會遇到的問題。

導讀 | 寫給0基礎入門的Go語言學習者

1. 你需要遵循怎樣的學習路徑來學習 Go 語言?

Go語言學習路線

image

2. 學習本專欄前,你需要有哪些基礎知識儲備?

  • 有一定的計算機基礎,比如,知道操作系統是什么、環境變量怎么設置、命令行怎樣使用,等等。
  • 具備一點點編程知識,比如,知道程序是什么、程序通常會以怎樣的形式存在,以及程序與操作系統和計算機有哪些關系,等等。
  • 知道那些最最基本的網絡知識。

從 2018 年開始,隨着 Google 逐漸重回中國,Go 語言的官方網站在 Google 中國的域名下也有了鏡像,畢竟中國是 Go 語言愛好者最多的國家,同時也是 Go 語言使用最廣泛的一片土地。如果你在國內,可以敲入這個網址 https://golang.google.cn/ 來訪問 Go 語言的官網。

這個專欄專注於 Go 語言的核心知識,因此我並不會深入說明所有關於語法和命令的細枝末節。如果你想去全面了解 Go 語言的所有語法,那么可以去 Go 語言官網的語言規范頁面 https://golang.google.cn/ref/spec 仔細查閱。

如果你想專門學習一下 Go 命令方面的知識和技巧,那么我推薦你看看我之前寫的免費開源教程《Go 命令教程 https://github.com/hyper0x/go_command_tutorial 》。這份教程的內容雖然稍顯陳舊,但是幫助你學會使用 Go 語言自帶的常用命令和工具肯定是沒問題的。

3. 這里有一份基礎知識列表,請查收

Go 語言基礎知識的導圖

image

導讀 | 學習專欄的正確姿勢

實踐的正確姿勢

給大家的第一個建議一般都是“去寫網絡爬蟲吧”。

互聯網絡的世界很龐雜,但又有一定的規律可循,是非常好的技術學習環境。你編寫一個網絡服務程序,即使放到了公共的網絡上,也還需要考慮清楚一系列的問題,才能讓你有足夠多的技術磨煉機會,比如,服務的種類、功能、規則、安全、界面、受眾、宣傳和訪問途徑,以及日常的非技術性維護。

我們要讓程序去模擬人的行為,模擬人使用網絡瀏覽器訪問網站內容的過程,而不是用盡計算力去瘋狂地霸占人家的帶寬和服務,否則那不就成了網絡攻擊了。這是一個非常重要的自我實踐的技巧,請大家記住,“利己,但不要損人”。

注意,正常爬取網站內容並不意味着失去了高並發的應用場景。把內容下載下來只是一個開始,后邊還有不少的工作要做呢。

單單“模擬人”這一點就需要花一些心思。而且,你可以同時爬取成千上萬的同類甚至不同類的網站。這已經足夠你研究和實踐很長一段時間了。我在這里還要鄭重地提示一下,做這類技術研究一定不要跨越道德的底線,更不能違反法律。

再進一步,我們最好以結構化的形式把爬取到的網絡內容存儲下來。當得到足夠多的數據之后,你的選擇就很多了。比如,對某類數據進行整理、提取和分析,從而挖掘出更有價值的東西。這就屬於數據挖掘的范疇了。

在如今這個數據過剩的時代,這也是一項很重要的技能。又比如,基於這些數據提供統一的訪問接口,制作成搜索引擎,甚至對外提供服務。這也是一個很有深度的選擇。

優秀 Go 項目推薦

image

課程鏈接

http://gk.link/a/10AqZ

知識共享許可協議

本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。

歡迎轉載、使用、重新發布,但務必保留文章署名 鄭子銘 (包含鏈接: http://www.cnblogs.com/MingsonZheng/ ),不得用於商業目的,基於本文修改后的作品務必以相同的許可發布。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM