本文目錄一覽:
- 1、PHP在最近一年在編程語言排行榜上下滑的原因是什麼
- 2、golang chan 緩衝設置多大
- 3、golang適合做web開發嗎
- 4、成為大數據工程師要學習哪些知識?
- 5、大數據工程師是做什麼的
- 6、Golang解析json的特殊情況處理
PHP在最近一年在編程語言排行榜上下滑的原因是什麼
主要從兩個方面發表一下個人看法:
行業變遷
最近兩年,我們耳熟能詳的技術熱詞比如:雲計算、machine learning、TensorFlow、AI……,基本與PHP都沒太大的關係,再比如:(自然語言處理)NLP、(物聯網)IoT、big data、區塊鏈(blockchain)……,也基本和PHP沒太大的關係;難道說PHP技術不行了?那倒也不是,其根本原因在於技術發展日新月異,開發語言也愈加細分,golang主要用於雲計算、Python主要用於神經網絡與深度學習、大數據與數據可視化分析有R語言,反觀PHP,似乎除了web、及部分APP後端開發,其他專業技術領域有點力不從心,儘管它也在一直尋求新的爆發點。
語言特性
在web開發不甚成熟的時代,PHP以其“開發周期短”、“技術門檻低”的優勢吸引了一大批開發人員加入,雖然項目可以很快推上線,但由於“弱類型解釋語言”的基因缺陷,在性能優化大行其道的今天,PHP需要補足這一先天缺陷(從PHP5~PHP7就可以看出),這也給很多其他開發語言趁勢而上的機會,比如go語言。業務量暴增需要程序能適應更高的並發訪問以及更低的延遲,go語言天生的並發編程語言特性就恰好解決這一痛點,我所參與的大部分項目都選擇go語言進行數據的雲同步。再來說說Python,同樣是動態解釋型語言,Python的技術應用場景相比PHP而言則多出不少,比如GUI程序開發、機器學習、數據抓取與分析……,一旦項目有大量數據抓取的需求,我的第一選擇肯定會是Python,因為在同等開發周期內,Python的效率與執行效果是最優的;所以總的來看,性能不及golang純粹,應用場景不如Python豐富,卻也不能否定“PHP是最好的開發語言”。我一般的技術選型如下:web後端與輕量級APP後台任務用PHP,大數據量吞吐與並發數據傳輸用golang,大數據抓取與分析用Python,我一直認為“術業有專攻”,沒有最好的語言,只有最合適的語言,如果能一槍放倒敵人就沒必要與其拼刺刀。
golang chan 緩衝設置多大
看你的需求,如果並發性不是太強的話make10足夠了,完全不並發的話不用緩衝都可以,大數據的話可能要多一些
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.機器學習
雖然數據工程師主要關注的是數據科學,但對數據處理技術的理解會加分,比如一些統計分析知識和基礎數據建模。
大數據工程師是做什麼的
大數據工程師主要是,分析歷史、預測未來、優化選擇,這是大數據工程師在“玩數據”時最重要的三大任務:
找出過去事件的特徵:大數據工程師一個很重要的工作,就是通過分析數據來找出過去事件的特徵。找出過去事件的特徵,最大的作用是可以幫助企業更好地認識消費者。通過分析用戶以往的行為軌跡,就能夠了解這個人,並預測他的行為。
預測未來可能發生的事情:通過引入關鍵因素,大數據工程師可以預測未來的消費趨勢。
找出最優化的結果:根據不同企業的業務性質,大數據工程師可以通過數據分析來達到不同的目的。
擴展資料
大數據工程師需要學習的知識
1、linux
大數據集群主要建立在linux操作系統上,Linux是一套免費使用和自由傳播的類Unix操作系統。而這部分的內容是大家在學習大數據中必須要學習的,只有學好Linux才能在工作中更加的得心應手。
2、Hadoop
我覺的大家聽過大數據就一定會聽過hadoop。Hadoop是一個能夠對大量數據進行離線分布式處理的軟件框架,運算時利用mapreduce對數據進行處理。
參考資料來源:百度百科-大數據分析師
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-hant/n/276859.html