今天我又在GitHub上面建立一個項目...哈哈 時間:2019.04.05 開源協議:GPL-3.0java
取名:[Anima] github.com/java-aodeng…git
簡介:Golang Study notes.程序員
意義:anima 源自拉丁文,意義「靈魂」或「精神」github
Go 語言是由谷歌公司在2007年開始開發的一門語言,目的是能在多核心時代高效編寫網絡應用程序。Go 語言的創始人 Robert Griesemer、Rob Pike 和 Ken Thompson 都是在計算機發展過程當中做出太重要貢獻的人。自從2009年11月正式公開發布後,Go 語言迅速席捲了整個互聯網後端開發領域,其社區裏不斷涌現出相似 vitess、Docker、etcd、Consul 等重量級的開源項目。golang
計算機一直在演化,可是編程語言並無以一樣的速度演化。如今的手機,內置的 CPU 核數可能都多於咱們使用的第一臺電腦。高性能服務器擁有64核、128核,甚至更多核。可是咱們依舊在使用爲單核設計的技術在編程。算法
編程的技術一樣在演化。大部分程序再也不由單個開發者來完成,而是由處於不一樣時區、不一樣時間段工做的一組人來完成。大項目被分解爲小項目,指派給不一樣的程序員,程序員開發完成後,再以能夠在各個應用程序中交叉使用的庫或者包的形式,提交給整個團隊。編程
現在的程序員和公司比以往更加信任開源軟件的力量。Go 語言是一種讓代碼分享更容易的編程語言。Go 語言自帶一些工具,讓使用別人寫的包更容易,而且 Go 語言也讓分享本身寫的包更容易。後端
Go 語言開發團隊花了很長時間來解決當今軟件開發人員面對的問題。開發人員在爲項目選擇語言時,不得不在快速開發和性能之間作出選擇。C 和 C++這類語言提供了很快的執行速度,而 Ruby 和 Python 這類語言則擅長快速開發。Go 語言在這二者間架起了橋樑,不只提供了高性能的語言,同時也讓開發更快速。設計模式
在探索 Go 語言的過程當中,讀者會看到精心設計的特性以及簡潔的語法。做爲一門語言,Go 不只定義了能作什麼,還定義了不能作什麼。Go 語言的語法簡潔到只有幾個關鍵字,便於記憶。Go 語言的編譯器速度很是快,有時甚至會讓人感受不到在編譯。因此,Go 開發者能顯著減小等待項目構建的時間。由於 Go 語言內置併發機制,因此不用被迫使用特定的線程庫,就能讓軟件擴展,使用更多的資源。Go 語言的類型系統簡單且高效,不須要爲面向對象開發付出額外的心智,讓開發者能專一於代碼複用。Go 語言還自帶垃圾回收器,不須要用戶本身管理內存。讓咱們快速瀏覽一下這些關鍵特性。服務器
編譯一個大型的 C 或者 C++項目所花費的時間甚至比去喝杯咖啡的時間還長。
Go 語言使用了更加智能的編譯器,並簡化了解決依賴的算法,最終提供了更快的編譯速度。編譯 Go 程序時,編譯器只會關注那些直接被引用的庫,而不是像 Java、C 和 C++那樣,要遍歷依賴鏈中全部依賴的庫。所以,不少 Go 程序能夠在1秒內編譯完。在現代硬件上,編譯整個 Go 語言的源碼樹只須要20秒。
要開發出能充分利用硬件資源的應用程序是一件很難的事情。現代計算機都擁有多個核,可是大部分編程語言都沒有有效的工具讓程序能夠輕易利用這些資源。這些語言須要寫大量的線程同步代碼來利用多個核,很容易致使錯誤。
Go 語言對併發的支持是這門語言最重要的特性之一。goroutine 很像線程,可是它佔用的內存遠少於線程,使用它須要的代碼更少。
Go 語言提供了靈活的、無繼承的類型系統,無需下降運行性能就能最大程度上覆用代碼。這個類型系統依然支持面向對象開發,但避免了傳統面向對象的問題。若是你曾經在複雜的 Java 和 C++程序上花數週時間考慮如何抽象類和接口,你就能意識到 Go語言的類型系統有多麼簡單。Go 開發者使用組合(composition)設計模式,只需簡單地將一個類型嵌入到另外一個類型,就能複用全部的功能。其餘語言也能使用組合,可是不得不和繼承綁在一塊兒使用,結果使整個用法很是複雜,很難使用。在 Go 語言中,一個類型由其餘更微小的類型組合而成,避免了傳統的基於繼承的模型。
不當的內存管理會致使程序崩潰或者內存泄漏,甚至讓整個操做系統崩潰。Go 語言擁有現代化的垃圾回收機制,能幫你解決這個難題。在其餘系統語言(如 C 或者 C++)中,使用內存前要先分配這段內存,並且使用完畢後要將其釋放掉。哪怕只作錯了一件事,均可能致使程序崩潰或者內存泄漏。惋惜,追蹤內存是否還被使用自己就是十分艱難的事情,而要想支持多線程和高併發,更是讓這件事難上加難。雖然 Go 語言的垃圾回收會有一些額外的開銷,可是編程時,能顯著下降開發難度。Go 語言把無趣的內存管理交給專業的編譯器去作,而讓程序員專一於更有趣的事情。
package main
import "fmt"
func main() { fmt.Print("hello world") }
平常hello world ..哈哈
博客開了快一年了,百度關鍵字 低調小熊貓 就能找到我了 ..哈哈