回覆列表
  • 1 # 修煉IT基本功

    先給結論:完全可以

    商用實踐:

    已經透過很多大公司的商用實踐,例如B站,YY,包括位元組跳動,國外更不用說了,Google,所以從這個角度上來說,已經經過大規模的實踐,所以如果你想用用於自己小網站的搭建是沒有任何問題,如果你想用於初創公司的使用,還是需要有自己的一定積累,至少有過實踐的經驗

    golang周邊:

    java在國內的強大,得益於它的生態,各種元件百花爭鳴,例如訊息中介軟體rocketmq,分庫分表sharding-jdbc,spring整個生態,mybatis,jedis,elasticsearch,zookeeper,dubbo等等都非常齊全,這樣可以方便大家能夠快速地進行公司業務開發,可以減少重複造輪子

    golang這幾年也開始逐漸發力,各個元件也開始完善起來,例如etcd,訊息中介軟體nsq,從跟上解決資料量巨大問題,pingcap公司開發了線事務處理/線上分析處理的融合型資料庫產品TIDB,

    web框架gin,beego,iris等等,也有各路大神提供了連線各個其他redis,elasticsearch等等元件,還是比較齊全的,rpc框架也有go-mirco,rpcx等等,只要你想要用,基本上來說,golang的生態周邊還是比較全的,方便大家使用

    golang的模組管理

    java的方便還得益於它的包管理,maven,gradle,這樣大大方便了大家的使用,可以提供大家的開發效率,而golang從1.12開始也開始有了自己內嵌的包管理工具

    golang的新特性

    在這邊我並不是說golang好於java,但是golang畢竟屬於新一代的語言,它的併發模型CSP,和java的併發模型是有很大的區別的,併發模型的易用性,從根本上來說,是好於java的

    再說golang目前最大的優勢,docker和kubernetes,是目前github上最火的前20名專案,並且都是golang寫的,所以golang和docker,kubernetes整合有天然的優勢

    綜上所述,我覺得golang可以開發商用網站,不管你是做大型網站還是小型demo,都可以滿足你的要求

  • 2 # 任T堂達人

    已經學會了,在寫了,golang在後端開發真的好用,自己寫輪子也不難。。。現在,基本是python搞資料處理,golang開發網站,爽爆

  • 3 # 不穿格子衫的程式設計師

    作為一個golang開發人員,首先給你一個肯定的答案,這個完全沒問題。接下來將從多維度闡述我的觀點。Go作為Google2009年推出的語言,其被設計成一門應用於搭載 Web 伺服器,儲存叢集或類似用途的巨型中央伺服器的系統程式語言。

    beego框架

    提到golang的web開發就不得不提beego框架。beego是一個快速開發Go應用的http框架。beego可以用來快速開發Web應用,是一個RESTFul(本人此前詳細的介紹過RESTFul,如有需要可以進我個人主頁檢視。)的框架,主要設計靈感來源於tornado、sinatra、flask這三個框架,但是結合了Go本身的一些特性(interface、struct繼承等)而設計的一個框架。

    架構

    beego是基於八大獨立的模組之上構建的,是一個高度解耦的框架。當初設計beego的時候就是考慮功能模組化,使用者即使不適用beego的http邏輯,也是可以在使用這些獨立模組,例如你可以使用cache模組來做你的快取邏輯,使用日誌模組來記錄你的操作資訊,使用config模組來解析你各種格式的檔案,所以不僅僅在beego開發中,你的socket遊戲開發中也是很有用的模組,這也是beego為什麼受歡迎的一個原因。

    執行邏輯

    既然beego是基於這些模組構建的,那麼他的執行邏輯是怎麼樣的呢?beego是一個典型的MVC架構,他的執行邏輯如下圖所示:

    江湖地位

    說起golang的江湖地位,雖然不像Java“世界第一”,但也有一席之地。國內外眾多網際網路大廠都在使用。

    1、Google

    這個不用多做介紹,作為開發Go語言的公司,當仁不讓。Google基於Go有很多優秀的專案。

    2、Facebook

    Facebook也在用,為此他們還專門在Github上建立了一個開源組織facebookgo,比如著名的是平滑升級的grace。

    3、騰訊

    騰訊作為國內的大公司,還是敢於嘗試的,尤其是Docker容器化這一塊,他們在15年已經做了docker萬臺規模的實踐。

    4、百度

    目前所知的百度的使用是在運維這邊,是百度運維的一個BFE專案,負責前端流量的接入。

    5、阿里

    阿里巴巴具體的專案不太清楚,不過聽說其系統部門、CDN等正在招Go方面的人。

    6、京東

    京東雲訊息推送系統、雲端儲存,以及京東商城等都有使用Go做開發。

    7、小米

    小米對Golang的支援,莫過於運維監控系統的開源,也就是 http://open-falcon.com/

    此外,小米互娛、小米商城、小米影片、小米生態鏈等團隊都在使用Golang。

    8、360

    360對Golang的使用也不少,一個是開源的日誌搜尋系統Poseidon,託管在Github上,

    https://github.com/Qihoo360/poseidon。

    golang前景

    Go 語言於 2007 年開始構思,並於 2012 年正式釋出。截止目前也只有9年的時間,完全可以說是程式設計界的後起之秀。隨著區塊鏈的崛起,golang也將得到迅猛的發展。下圖為12月份程式語言TOP,golang作為一個誕生七年的“小屁孩兒”,依然躍居TOP 20。

    golang優勢

    簡單易學

    任何語言都要吹簡單易學,不然就沒人學了。此處就不過多贅述了。大家懂就行。

    併發能力

    golang併發能力宇宙第一,拒絕任何反駁。golang併發程式設計主要透過goroutines channels實現的。

    goroutines 可能是 Go 的最佳特性了。它是輕量級的計算執行緒,與作業系統執行緒截然不同。

    當 Go 程式執行看似阻塞 I/O 的操作時,實際上 Go 執行時掛起了 goroutine ,當一個事件指示某個結果可用時恢復它。與此同時,其他的 goroutines 已被安排執行。因此在同步程式設計模型下,我們具有了非同步程式設計的可伸縮性優勢。

    Goroutines 也是輕量級的:它們的堆疊 隨需求增長和收縮,這意味著有 100 個甚至 1000 個 goroutines 都不是問題。

    channel 是 goroutines 的通訊方式:它們提供了一個便利的程式設計模型,可以在 goroutines 之間傳送和接收資料,而不必依賴脆弱的低級別同步基本體。channels 有它們自己的一套 用法 模式。

    但是,channels 必須仔細考慮,因為錯誤大小的 channels (預設情況下沒有緩衝) 會導致死鎖。下面我們還將看到,使用通道並不能阻止競爭情況,因為它缺乏不可變性。

    豐富的標準庫

    Go 的 標準庫 非常豐富,特別是對於所有與網路協議或 API 開發相關的: http 客戶端和伺服器,加密,檔案格式,壓縮,傳送電子郵件等等。甚至還有一個html解析器和相當強大的模板引擎去生成 text & html,它會自動過濾 XSS 攻擊(例如在 Hugo 中的使用)。

    效能優越

    與 Java 相比,在 原始效能基準測試 中,情況並不是那麼清晰。Go 打敗 Java 地方是記憶體使用和垃圾回收。

    Go 的垃圾回收器的設計目的是 優先考慮延遲,並避免停機,這在伺服器中尤其重要。這可能會帶來更高的 CPU 成本,但是在水平可伸縮的體系結構中,這很容易透過新增更多的機器來解決。請記住,Go 是由谷歌設計的,他們從不會在資源上面短缺。

    與 Java 相比,Go 的垃圾回收器(GC)需要做的更少:切片是一個連續的陣列結構,而不是像 Java 那樣的指標陣列。類似地,Go maps 也使用小陣列作為 buckets,以實現相同的目的。這意味著垃圾回收器的工作量減少,並且 CPU 快取本地化也更好。

    Go 同樣在命令列實用程式中優於 Java :作為本地可執行檔案,Go 程式沒有啟動消耗,反之 Java 首先需要載入和編譯的位元組碼。

  • 4 # 小敘茹

    我是零基礎學的go,從語法到gin框架輸出API介面,資料庫gorm,vue渲染大概3個多月,基本能搭建一個網站,你覺得這門語言怎麼樣?尤其是在高併發上,優勢明顯。

  • 中秋節和大豐收的關聯?
  • 企業在網路安全上存在威脅嗎?該如何應對呢?