首頁  >  文章  >  後端開發  >  go語言可以寫物聯網嗎

go語言可以寫物聯網嗎

青灯夜游
青灯夜游原創
2022-12-28 16:46:445410瀏覽

可以寫。在物聯網領域,用Golang可以高效的接入並管理數以百萬的設備;並使用Golang的各種前沿技術即時分析數據並建立數據報告。用Golang開發物聯網平台的原因:1、Go的三個作者能力強;2、Go的性能僅次於C/C ;3、入門非常快,大多程式設計師1-2週都可以上手;4、並發特性好;5、能相容於大量的硬體設備;6、有良好的社群支援;7、可用乾淨的程式碼可協助開發人員加快速度。

go語言可以寫物聯網嗎

本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。

如果你的預算比較少,可能你第一個要考慮用Golang。 Golang的並發特性和出色的性能,可以充分的利用現有硬件,而不像Java、Python會造成一定的浪費,你需要花更多錢。

在物聯網領域,用Golang可以有效率的存取並管理數以百萬的裝置。並使用Golang的各種前沿技術即時分析數據並建立數據報告。

如下是我們選擇Golang開發ThingsPanel物聯網系統的原因:

#創辦人

##Go的三個作者分別是: Rob Pike(羅伯.派克),Ken Thompson(肯.湯普森)和Robert Griesemer(羅伯特.格利茨默) 。

Rob Pike:曾是貝爾實驗室(Bell Labs)的Unix團隊,和Plan 9作業系統計畫的成員。他與Thompson共事多年,並共創出廣泛使用的UTF-8 字元編碼。

Ken Thompson:主要是B語言、C語言的作者、Unix之父。 1983年圖靈獎(Turing Award)及1998年美國國家技術獎(National Medal of Technology)得主。他與Dennis Ritchie是Unix的原創者。 Thompson也發明了後來衍生出C語言的B程式語言。

Robert Griesemer:在開發Go之前是Google V8、Chubby和HotSpot JVM的主要貢獻者。

效能僅次於C/C

GoLang是一種編譯語言,可以編譯為機器碼,編譯後的二進位檔案可以直接部署到目標機器而無需額外的依賴。性能優於那些解釋語言。

下圖是測試,看起來Golang的速度還是很厲害的。


go語言可以寫物聯網嗎

常見語言的表現對比(圖片作者:我不想種地)

如果還有更高的要求,還可以在Go程式中嵌入C程式碼,以便可以使用許多功能強大的C工具庫。

入門非常快,大部分程式設計師1-2週都可以上手。

PHP程式設計師轉Golang,2天可以上手改bug。幾週後就能較為正常的開展工作。

在各類技術人員溝通的時候,問他們,你多久會從PHP或Java轉到Golang,回答大多是1-2週,事實也是如此。

並發特性

這可能是GoLang最受好評的特色。它可以充分利用多核心功能。 GoLang使用goroutine來實現並發性,它提供了一個非常優雅的goroutine調度程式系統,可以輕鬆產生數百萬個goroutine。堆疊使用也可以動態擴展/收縮,這使記憶體使用更加智慧。這與Java線程不同,後者通常只允許創建數千個線程。

相容於大量的硬體設備。

各種CPU架構都支持,不管是X86伺服器,還是ARM邊緣設備,可以直接編譯成機器碼,部署丟上去一個檔案就完成。

一個52PHP用戶在他的cnblogs部落格說:透過超級簡單的交叉編譯,只需更改環境變數。 (花了我兩天時間編譯一個imagemagick到arm平台)。

如果你有很多邊緣設備,Golang是一個好選擇。

當然有些人說Java和PHP也可以啊,問題是騎驢子也可以去送外賣,問題是多慢啊!

良好的社區支持。

沒有牛人講道,菜鳥就沒有師父領進門。沒有分享,學習就難上加難。 Golang有較好的社區支持。

全球最大的技術問答網站Stack Overflow 上的程式語言受歡迎度:


go語言可以寫物聯網嗎

#引用自:2021 程式語言排行榜,作者:小新帶你學程式設計

你能查到資料,你提問題,有人給你回答,這個在開發中很重要。

用乾淨的程式碼幫助開發人員加快速度。

「乾淨架構」是Robert C. Martin (Uncle Bob)(About,Robert C·Martin Robert C·Martin的作品(16))在2012 年總結現有的系統架構並提出的一個理念。

在文中,他提出的乾淨架構是這樣的:

  • 獨立於框架。此體系結構不依賴某些功能豐富的軟體庫的存在。這允許您使用各種各樣的框架作為工具。
  • 可測試的。業務規則可以在沒有 UI、資料庫、Web 伺服器或任何其他外部元素(如第三方RPC服務)的情況下進行測試。
  • 獨立於使用者介面。使用者介面可以輕鬆更改,而不必更改系統的其他部分。例如,Web 使用者介面可以替換為控制台介面,而不必更改業務規則。
  • 獨立於資料庫。您可以將 Oracle 或 SQL Server 換成 Mongo, BigTable, CouchDB
    或其他東西。您的業務規則未綁定到資料庫。

獨立於任何外部機構(下圖中的外層)。實際上,您的業務規則根本不了解外部世界。

go語言可以寫物聯網嗎

圖中的整體思想是依賴的方向只能是從外向內。也就是說,外部的圈依賴內部的圈,內部的圈不能依賴外部。外層中命名和資料格式不能影響內層。

這些簡單的規則和約定保證了系統始終容易理解、容易開發、容易維護。

案例就是說服力

除了大名鼎鼎的Docker,完全用GO實現。業界最為熱門的容器編排管理系統kubernetes完全用GO實現。之後的Docker Swarm,完全用GO實現。除此之外,還有各種有名的項目,如etcd/consul/flannel,七牛雲儲存等等 均使用GO實現。有人說,GO語言之所以出名,是趕上了雲端時代。但為什麼不能換個說法?也是GO語言促使了雲的發展。

除了雲端專案外,還有像今日頭條、UBER這樣的公司,他們也使用GO語言對自己的業務進行了徹底的重構。

【相關推薦:Go影片教學程式設計教學

以上是go語言可以寫物聯網嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn