目錄
良好的社區支持。 " >良好的社區支持。
用乾淨的程式碼幫助開發人員加快速度。 " >用乾淨的程式碼幫助開發人員加快速度。
首頁 後端開發 Golang go語言可以寫物聯網嗎

go語言可以寫物聯網嗎

Dec 28, 2022 pm 04:46 PM
golang 物聯網 go語言

可以寫。在物聯網領域,用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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Go語言中用於浮點數運算的庫有哪些? Go語言中用於浮點數運算的庫有哪些? Apr 02, 2025 pm 02:06 PM

Go語言中用於浮點數運算的庫介紹在Go語言(也稱為Golang)中,進行浮點數的加減乘除運算時,如何確保精度是�...

Go的爬蟲Colly中Queue線程的問題是什麼? Go的爬蟲Colly中Queue線程的問題是什麼? Apr 02, 2025 pm 02:09 PM

Go爬蟲Colly中的Queue線程問題探討在使用Go語言的Colly爬蟲庫時,開發者常常會遇到關於線程和請求隊列的問題。 �...

Go語言中哪些庫是由大公司開發或知名的開源項目提供的? Go語言中哪些庫是由大公司開發或知名的開源項目提供的? Apr 02, 2025 pm 04:12 PM

Go語言中哪些庫是大公司開發或知名開源項目?在使用Go語言進行編程時,開發者常常會遇到一些常見的需求,�...

Go語言中`var`和`type`關鍵字定義結構體的區別是什麼? Go語言中`var`和`type`關鍵字定義結構體的區別是什麼? Apr 02, 2025 pm 12:57 PM

Go語言中結構體定義的兩種方式:var與type關鍵字的差異Go語言在定義結構體時,經常會看到兩種不同的寫法:一�...

在 Go 語言中,為什麼使用 Println 和 string() 函數打印字符串會出現不同的效果? 在 Go 語言中,為什麼使用 Println 和 string() 函數打印字符串會出現不同的效果? Apr 02, 2025 pm 02:03 PM

Go語言中字符串打印的區別:使用Println與string()函數的效果差異在Go...

GoLand中自定義結構體標籤不顯示怎麼辦? GoLand中自定義結構體標籤不顯示怎麼辦? Apr 02, 2025 pm 05:09 PM

GoLand中自定義結構體標籤不顯示怎麼辦?在使用GoLand進行Go語言開發時,很多開發者會遇到自定義結構體標籤在�...

在Go語言中使用Redis Stream實現消息隊列時,如何解決user_id類型轉換問題? 在Go語言中使用Redis Stream實現消息隊列時,如何解決user_id類型轉換問題? Apr 02, 2025 pm 04:54 PM

Go語言中使用RedisStream實現消息隊列時類型轉換問題在使用Go語言與Redis...

多進程日誌寫入如何保證並發安全又高效? 多進程日誌寫入如何保證並發安全又高效? Apr 02, 2025 pm 03:51 PM

高效處理多進程日誌寫入的並發安全問題多進程同時寫入同一個日誌文件,如何保證並發安全且高效?這是一個...

See all articles