本文目錄一覽:
golang適合做web開發嗎
適合。框架足夠成熟了 A Survey of 5 Go Web Frameworks
小型項目你甚至不用框架,用net/http http – The Go Programming Language
常用庫也成熟了 Top – Go Search
golang的web後端即使不concurrent也比php,ruby,python快很多很多
golang里用concurrent真的非常方便,非常非常快,超大web項目golang scale成本低
如果你想,golang的部署可以比php更方便,使用go get和http.ServeAndListen()可以不用nginx和apache
對於文件改動重新編譯其實並不是大問題,看pilu/fresh · GitHub,其實你自己寫shell腳本(也可以直接用go寫,因為它本身就是系統語言)監控文件系統改動然後自動重新build,即使是C/C++的項目這也不是大問題,人們不用C/C++寫web是因為它們不是寫web app的最佳選擇
golang寫的代碼編譯通過後,要比scripting language魯棒,因為go compiler強制一些最佳實踐
成為大數據工程師要學習哪些知識?
1.大數據架構的工具與組件
數據工程師更關注分析基礎架構,因此所需的大部分技能都是以架構為中心的。
2.深入了解SQL和其它資料庫解決方案
數據工程師需要對資料庫管理系統有比較熟悉的了解,而且深入了解SQL非常重要。同樣其它資料庫解決方案,例如Cassandra或BigTable也須熟悉,因為不是每個資料庫都是由可識別的標準來構建。
3.數據倉庫和ETL工具
數據倉庫和ETL經驗對於數據工程師至關重要。像Redshift或Panoply這樣的數據倉庫解決方案,以及ETL工具,比如StitchData或Segment都非常有用。另外,數據存儲和數據檢索經驗同樣重要,因為處理的數據量是個天文數字。
4.基於Hadoop的分析(HBase,Hive,MapReduce等)
對基於Apache Hadoop的分析有深刻理解是這個領域的一個非常必要的需求,一般情況下HBase,Hive和MapReduce的知識存儲是必需的。
5.編碼
說到解決方案,編碼與開發能力是一個重要的優點(這也是許多職位的要求),你要熟悉Python,C/C++,Java,Perl,Golang或其它語言,這會非常有價值。
6.機器學習
雖然數據工程師主要關注的是數據科學,但對數據處理技術的理解會加分,比如一些統計分析知識和基礎數據建模。
Golang解析json的特殊情況處理
Go解析json遇到了大數字、不定格式等特殊情況,在此做了一個整理。
選擇哪個要視輸入而定。
json.Unmarshal 操作對象是一個 []byte ,也就意味著被處理的JSON要全部載入到內存。如果有一個載入完的JSON使用 json.Unmarshal 會快一些。
json.Decoder 操作的是一個 stream ,或者其他實現了 io.Reader 介面的類型。意味著可以在接收或傳輸的同時對其進行解析。當處理一組較大數據時無需重新copy整個JSON到內存中。
最好的選擇辦法如下:
默認情況下,go對json解析過程中遇到的數字都會當做float64處理。如果數字過大會有精度丟失。可以使用json.Number來處理。
輸出結果:
使用 json.Decoder 只能操作 io.Reader 類型的JSON數據。
有時候遇到欄位不定的JSON,需要一邊判斷一邊解析。如:
可以先統一解組到interface{} 然後判斷關鍵欄位再進行後續處理。
結果
使用RawMessage便於分步Unmarshal
原文鏈接
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/190858.html