1. 部署簡單
成都創(chuàng)新互聯(lián)公司專注于龍口網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供龍口營銷型網站建設,龍口網站制作、龍口網頁設計、龍口網站官網定制、小程序制作服務,打造龍口網絡公司原創(chuàng)品牌,更為您提供龍口網站排名全網營銷落地服務。
Go
編譯生成的是一個靜態(tài)可執(zhí)行文件,除了glibc外沒有其他外部依賴。這讓部署變得異常方便:目標機器上只需要一個基礎的系統(tǒng)和必要的管理、監(jiān)控工具,完全不需要操心應用所需的各種包、庫的依賴關系,大大減輕了維護的負擔。
2. 并發(fā)性好
Goroutine和channel使得編寫高并發(fā)的服務端軟件變得相當容易,很多情況下完全不需要考慮鎖機制以及由此帶來的各種問題。單個Go應用也能有效的利用多個CPU核,并行執(zhí)行的性能好。
3. 良好的語言設計
從學術的角度講Go語言其實非常平庸,不支持許多高級的語言特性;但從工程的角度講,Go的設計是非常優(yōu)秀的:規(guī)范足夠簡單靈活,有其他語言基礎的程序員都能迅速上手。更重要的是
Go 自帶完善的工具鏈,大大提高了團隊協(xié)作的一致性。
4. 執(zhí)行性能好
雖然不如 C 和 Java,但相比于其他編程語言,其執(zhí)行性能還是很好的,適合編寫一些瓶頸業(yè)務,內存占用也非常省。
go語言之所以能成為我國最火的語言,是因為編寫服務端高并發(fā)程序的優(yōu)勢。我大中華區(qū)但凡pv,日活高點的網站,應用,誰沒點這個需求。這個領域中最優(yōu)的幾個:golang,erlang,rust。日常生活中人類社交是當今社會上的必然性,人們也伴隨著科技時代的發(fā)展,智能電子產品的使用中也必然少不了語言輸入,文字的編輯,語言轉換的便利都均可來源于go語音輸入法。
國內大學本科教育,哪個學校不以c/c++為入門教學語言。都十幾年了,譚浩強還在大賣。語法相近的語言總是學習和使用成本最低的。這一點非常重要。coursera上有一門程序設計語言理論課上,開篇就闡述了這一點的重要性。假設go的入門成本是一個月,erlang的入門成本是2個月,那么整個程序員群體在學習后者的付出成本就很可觀了。
google由于眾所周知的原因,在國內程序員中不一般的地位。golang有個好背景。
go語言之前一直都沒有接受待見,如今廣大的群眾開始接待,因為騰訊服務器段代碼編譯是支持go語言的
go語言會成為主流也是一個問題,
多慮了,沒有競爭來關系。
雖然go成為源了世界上最并發(fā)的語言,這并不妨礙php成為世界上最好的語言,
也不妨礙java成為世界上最有模式的語言,
更不會妨礙c++成為21天就能學會了的語言。為什么Go語言如此不受待見
其實并沒有不受待見,用的人還是很多的,解決一些特定領域的問題也很方便。
每種語言的流行程度主要取決于這個語言最著名的killerapp的流行程度,C有Linux,Go有Docker。
Go 生態(tài)系統(tǒng)
學習基本上相當直接的。我們之前在 C/C++/Java/Objective-C/PHP 的經驗讓我們學習 Go 相當快,并且在幾天內就開始開發(fā)了。當然會有一些新的和不常見的東西需要學習,包括 GOPATH 還有如何處理包,但這在我們的預期之內。
幾天之內,我們意識到即使是一個以簡化為設計目的的語言,Go 也是非常強大的。它能夠做任何現(xiàn)代編程語言應該能做的事:能夠處理 JSON、服務器之間通訊甚至訪問數(shù)據(jù)庫也沒問題(并且只需要幾行代碼)。
在構建一個服務器時,你應該首先決定是否使用任何第三方庫或者框架。對于 Bugfender,我們決定使用:
Martini
Martini 是一個強大的 Go 的 web 框架。我們開始這個實驗時,它是一個很棒的解決方案,至今也是,我們還沒遇到任何問題。然而如果我們今天再次開始這個實驗的話,我們會選擇一個不同的框架,因為 Martini 不在維護了。
Gorm
有些人喜歡 ORM,而有些人則不喜歡。我們決定使用 ORM,更確切地說是 GORM。我們的實現(xiàn)只針對 web 前端,對于日志提取 API 仍然繼續(xù)使用手工優(yōu)化的 SQL。在一開始,我們確實很喜歡它,但是隨著時間的推移,我們開始發(fā)現(xiàn)問題,并且我們很快將它從代碼中完全移除,并且使用 sqlx 這個標準 SQL 庫。
GORM 的一個主要問題是 Go 的生態(tài)系統(tǒng)。作為一個新語言,自我們開始開發(fā)產品以來 Go 已經有很多新版本。在這些新版本中的一些改變并不向后兼容,因此要使用最新的庫版本,我們要經常重寫已有代碼并檢查我們?yōu)榻鉀Q版本問題所做的 hack。
go 在Linux下其實根本不用安裝,解壓后復制到usr/local下即可,再配置一下路徑:
export PATH=$PATH:/usr/local/go/bin
不過學習程序最好還是在linux環(huán)境下,這是因為,
精彩在這里:
除動態(tài)語言外,靜態(tài)語言都會產生目標文件o或obj,然后找到庫文件后鏈接成可執(zhí)行文件。C語言如此,Go語言也是如此,你可用go run -work運行程序時來發(fā)現(xiàn)運行的目錄。這個目錄在linux下就是/tmp目錄,為加快速度和減少硬盤損耗(個人認為這更重要),可把tmp設置成tmpfs格式。
可加入一行:none /tmp tmpfs default 0 0
或加入mount tmpfs /tmp -t tmpfs -o size=128m
減少硬盤讀取就是運行流暢。