首頁>Club>

18

科技

回覆列表
  • 1 # yanzhen74

    好用

    很多必備功能開箱即用,比如map,陣列,切片

    匯入匯出非常方便,各種介面庫,資料庫、json、xml、二進位制、kafka、redis,與內部struct、map、切片結合,非常清爽

    web框架效能強勁,就憑這一點,django被徹底拋棄了

    不容易出錯。各種強制語法,強制包佈局,很難犯錯,golint檢查,單元測試,基本上就ok了

    記憶體佔用很小,這點可以踩一下java

    channel和goroutine,併發特別方便。光使用goroutine也行,可以搭建反微服務架構,一個main同時起好幾個web服務,誰用誰知道

    效能調優是自帶工具,定位效能瓶頸特別輕鬆,比c和java都方便

    不過缺點也不少,

    首先是離線環境不好搭。

    其次除錯起來還是有點慢。

    vscode支援ssh遠端開發,搭建也有坑

    go版本升級後gotools就不好用了,前向相容做的不好

    包管理挺彆扭,各種方案都不是很方便

    總體來說,做web後臺服務、伺服器軟體開發還是很爽的。指令碼用python,高效能用c,桌面用c#,web服務用go+js,基本就是各領域較優選擇了吧

  • 2 # 蔡孟焦

    最近開發一個專案衡量各種厲害,最後選擇了go,發現各種if err!=nil 怎麼說呢,如果你要跨平臺,又想編譯成死檔案可以選它,還是不錯,當然還有各種效能,團隊合作性那些我就不發表意見了

  • 3 # 誠旭網路

    作為一名網際網路老兵,談談自己與Golang的歷史吧,給大家一點借鑑。

    初步上手

    大概是在2016年的時候,我在千方科技做後端研發,一個十幾年的上市公司那當然是Java+SpringMVC啊,但是當時我就感覺寫起來挺痛苦的,因為我之前是寫C++的,現在突然搞出N個配置,XML一大堆,getter/setter一大堆,真的是頭大啊。所以我就抽時間研究當時比較火的Golang(其實現在也挺火的),用Golang給公司開發了一套任務排程平臺,然後去找各部門各種溝通各種談,終於部署到了生產環境,成就感還是不錯的,而且我離職這麼久了,他們還一直在用,沒有bug,哈哈(我有點驕傲了)

    使用感受

    當時第一次寫Golang,我就感覺這個語言的心智負擔輕的多,C++寫起來有一種和計算機硬體打交道的感覺,感覺我自己就要在和硬碟控制器對話,這樣的感覺,寫Java的感覺就是好煩啊,各種配置沒完沒了,寫Golang的時候,有一種如沐春風的感覺,真是難以言表啊。

    專案成型

    後來,我又用Golang開發了日誌解析工程(已開源,在我的Github上,可以私我要地址)、資料報表系統、企業後臺管理系統等,這麼幾年下來,感覺真的Golang特別好,開發容易,部署簡單,效能高、執行穩、系統資源開銷少

    資源佔用

    系統資源開銷少,要專門提一下,因為開發效率、執行效率/效能等問題很多人有關注和研究,就不多說了,而系統資源開銷這個問題很容易被很多人忽略。千方科技公司團隊十分龐大,Java團隊每天產生數百GB大的war包,處理起來很麻煩,網路I/O和磁碟空間都是問題。說起這個,有的人會覺得內網網速都是GB級的,磁碟也都是白菜價,可以忽略。其實不是的,當年我們做系統優化的時候做過分析研究,當war包的大小減少一半的時候,公司的硬體資源開銷每個月至少可以省出100萬元,這不是一筆小錢啊。我用SpringMVC開發的一個紅包促銷系統,war包大小80MB,再分開發、測試、預釋出、生產4個環境,就是320MB,幾個版本下來就上了GB了,而我用Golang開發的後臺管理系統,最終包25MB,4個環境才100MB,像這種大型、超大型的上市公司,是可以節約大量的硬體資源的,而這可都是錢啊。

    寫在最後

    個人感覺Golang非常好,我還曾經在微信上給Golang中國使用者組捐過款,就是希望他們能夠儘快讓Golang在Java和Python這樣的規模和生態。

    兩個推薦:Golang Web開發框架,叫GoFrame,很不錯Golang 介面、純後端服務開發,也可以用GoFrame,還可以用Gin,都特別好。

    不推薦很多人提到的名氣很大的Beego,因為作者已經停更了,發展後勁已經沒了。

  • 4 # 現世碼農

    最近剛剛寫完go,有點上癮.自己一直是javaer,做這塊有10年了,下面說說個人對這三門語言的理解.go語言,幾個鮮明的特性, 垃圾回收 跨平臺 併發完美支援 編譯迅速.

    垃圾回收就不說了,java也有,這可以讓我們不用過度的關心記憶體管理.跨平臺,java python 也有可以,但他們需要安裝對應的支援庫.java jre環境 python2 python3 環境. 而go編譯出來的包,直接可用.併發支援,java 併發最小單元是執行緒,cpu切換是有代價,數量控制不好,出問題是頭疼的一個點.go是多了一個協程的概念,是使用者級的執行緒.可以任意切換,cpu沒有什麼代價.可以很舒服的開發高併發應用.就這個特性我覺得後面很多伺服器的程式會傾向於go.編譯迅速,java也編譯也很快,但他是編譯器選擇性進行編譯或進行解釋執行的,沒有可比性.python純解釋性語言.效能上解釋性語言是沒法跟編譯性語言相比的.go兼顧編譯性語言效能好的特點,編譯比c c++快太多了.非常惹人喜愛.

    所以go優點是很多,後面很多程式應用都是會傾向於他,特別是他的協程概念,釋放了多核處理器的能力.未來我看好他的發展.當然java有很完整的生態,目前來說構建大型的複雜系統還是少不了他,大資料這塊很多框架都是基於Java.python呢,在爬蟲,機器學習,ai領域有很多成熟的框架庫,要是搞機器學習,也還得學他.

  • 5 # 軟體開發與運維

    Go語言始於2007年,目前在國內發展趨勢是可以的。

    已經有一些優秀成功的Go專案

    docker,k8s等,他們都是用Go寫的,star數量也非常高。

    在市場上會PHP+GO是比較搶手的

    其實現在Go的招聘越來越多,如果你會php+go 是最好不過的。php和go都是C語系的,php開發轉go開發相對容易,而且有web開發經驗,這的工程師在市面上還是比較搶手的。

  • 6 # 阿邁達聊技術

    go語言真的很好用。

    我是一名java工程師,同時也是一名golang工程師。公司因為業務需求,需要開發一個可以支援萬級別qps的系統。經過技術評估,我們最終選擇了go。最終事實證明,我們的選擇是正確的。一臺4核8G的機器完全可以支援10000的qps。

    我說它好用體現在以下幾個方面。

    1、語法簡單,容易入門

    go語言非常容易入門。如果是有別的語言基礎,如python、java等,可能只需要幾個小時就可以基本掌握這門語言並可以使用它。當然如果要精通它,還需要一定的時間。

    2、天生的高併發

    我們選擇它,主要由於它天生的高併發。go語言本身的特性使得它特別適合高併發場景。內部的協程不同於執行緒,靠語言本身排程,而不是靠系統排程。解決了多執行緒下cpu上下文頻繁切換導致的效能損耗。

    3、豐富的三方庫

    github上有大量的第三方庫,安裝即可使用。

    總之,go語言優點太多了,非常好用。很多大型公司專案開發轉向go語言,未來發展趨勢不可估量。

  • 7 # Qzlamyz

    1.Go語言是谷歌2009釋出的第二款開源程式語言。

    2.Go語言專門針對多處理器系統應用程式的程式設計進行了優化,使用Go編譯的程式可以媲美C或C++程式碼的速度,而且更加安全、支援並行程序。

    3.Google對Go寄予厚望。其設計是讓軟體充分發揮多核心處理器同步多工的優點,並可解決面向物件程式設計的麻煩。

    Golang優勢

    1.開發速度:Go 語言使用了更加智慧的編譯器,並簡化了解決依賴的演算法,最終提供了更快的編譯速度。

    2.併發:Go 語言對併發的支援是這門語言最重要的特性之一。goroutine 很像執行緒,但是它佔用的

    記憶體遠少於執行緒,使用它需要的程式碼更少。

    3.go語言的型別系統(介面):Go 語言提供了靈活的、無繼承的型別系統,無需降低執行效能就能最大程度上覆用程式碼。

    Golang的學習方向

    1.在區塊鏈領域,真正的首選語言是 Go 語言,以太坊都是基於 Go 語言開發的。

    2.由於golang程式設計簡單,編譯速度快,非常適合遊戲伺服器開發。

    3.Golang 以其在高併發場景下的天然優勢等特性,已經成為今天開發分散式系統的首選語言,在雲端計算領域佔據了無法替代的位置,docker就是golang開發的。

  • 中秋節和大豐收的關聯?
  • 孩子是一個家的小太陽,一家人教育不統一,怎麼辦,誰能幫幫我?