可以寫。在物聯網領域,用Golang可以高效的接入並管理數以百萬的設備;並使用Golang的各種前沿技術即時分析數據並建立數據報告。用Golang開發物聯網平台的原因:1、Go的三個作者能力強;2、Go的性能僅次於C/C ;3、入門非常快,大多程式設計師1-2週都可以上手;4、並發特性好;5、能相容於大量的硬體設備;6、有良好的社群支援;7、可用乾淨的程式碼可協助開發人員加快速度。
本教學操作環境: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程式中嵌入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 上的程式語言受歡迎度:
#引用自: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
或其他東西。您的業務規則未綁定到資料庫。
獨立於任何外部機構(下圖中的外層)。實際上,您的業務規則根本不了解外部世界。
圖中的整體思想是依賴的方向只能是從外向內。也就是說,外部的圈依賴內部的圈,內部的圈不能依賴外部。外層中命名和資料格式不能影響內層。
這些簡單的規則和約定保證了系統始終容易理解、容易開發、容易維護。
案例就是說服力
除了大名鼎鼎的Docker,完全用GO實現。業界最為熱門的容器編排管理系統kubernetes完全用GO實現。之後的Docker Swarm,完全用GO實現。除此之外,還有各種有名的項目,如etcd/consul/flannel,七牛雲儲存等等 均使用GO實現。有人說,GO語言之所以出名,是趕上了雲端時代。但為什麼不能換個說法?也是GO語言促使了雲的發展。
除了雲端專案外,還有像今日頭條、UBER這樣的公司,他們也使用GO語言對自己的業務進行了徹底的重構。
【相關推薦:Go影片教學、程式設計教學】
以上是go語言可以寫物聯網嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!