{eval=Array;=+count(Array);}
大型互聯(lián)網(wǎng)平臺的后端實現(xiàn)往往是一個比較復(fù)雜的過程,很多平臺會綜合使用多種不同的編程語言,以便于為用戶提供速度更快,安全程度和穩(wěn)定程度更高的使用體驗。
從技術(shù)實現(xiàn)的層面來看,目前的互聯(lián)網(wǎng)平臺更多是基于三大塊技術(shù)打造的,其一是分布式計算;其二是分布式存儲;其三是資源調(diào)度管理,這三塊技術(shù)其實也是目前大數(shù)據(jù)和云計算技術(shù)的基礎(chǔ)。
如果從技術(shù)方案的穩(wěn)定性和擴展性兩方面來考慮,更多的互聯(lián)網(wǎng)平臺會選擇采用Java語言來實現(xiàn),一方面原因是Java語言的自身性能比較穩(wěn)定,另一方面原因是Java的生態(tài)體系比較健全,而且Java語言目前的成功案例也比較多,開發(fā)風(fēng)險會大大降低。相對于具體應(yīng)用層的實現(xiàn)來說,在平臺(容器)搭建的過程中,更看重性能和擴展性,而不會特別注重開發(fā)周期的長短和調(diào)整的便利性,因此Java語言無疑是比較適合的選擇。當然,平臺搭建的過程中也會調(diào)用由C語言或C++語言構(gòu)建的資源管理模塊。
除了Java語言之外,PHP和Python也是比較常見的選擇。采用PHP進行平臺開發(fā)往往會有更快的開發(fā)速度,但是后期的拓展,尤其是性能的提升要更多依賴于云計算平臺的支撐,但是由于PHP具有天然熱部署的屬性,所以PHP在后端開發(fā)領(lǐng)域廣受歡迎。另外,Python也是后端開發(fā)比較常見的編程語言,雖然在性能上相比Java會有一定的差距,但是Python語言自身的資源管理能力和擴展能力還是比較強的。
我從事互聯(lián)網(wǎng)行業(yè)多年,目前也在帶計算機專業(yè)的研究生,主要的研究方向集中在大數(shù)據(jù)和人工智能領(lǐng)域,我會陸續(xù)寫一些關(guān)于互聯(lián)網(wǎng)技術(shù)方面的文章,感興趣的朋友可以關(guān)注我,相信一定會有所收獲。
如果有互聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等方面的問題,或者是考研方面的問題,都可以在評論區(qū)留言!
像淘寶,網(wǎng)易,ucloud,facebook等都是php,有些特別的會用到其他語言,比如原生安卓端,蘋果端,文檔轉(zhuǎn)換等!
目前一般公司的后臺用的開發(fā)語言大概有以下幾種:java,python,php,asp.net,c++,rubyon rails 等等。
java優(yōu)點:性能好,適合大中項目,跨平臺,安全性高,穩(wěn)定可靠,運行效率高(尤其是JIT的出現(xiàn)之后差距更大了),不容易犯錯(強類型、預(yù)編譯、必須攔截異常等等),能有效的提高復(fù)用度,提升性能和吞吐能力,能規(guī)避安全問題。
缺點:開發(fā)復(fù)雜,開發(fā)和發(fā)布的效率相對較低,維護成本高,開發(fā)人員費用高
python優(yōu)點:簡單易學(xué),開發(fā)快,語言簡潔,易于維護,開源,可移植,可擴展
缺點: 速度慢,格式強制,容易犯錯
php:優(yōu)點:靈活,上手快,易修改,發(fā)布快捷,環(huán)境好部署
缺點:容易犯錯,行效率不高,缺乏全局緩存
ruby on rails優(yōu)點:快速開發(fā),使用者多,開發(fā)控件非常豐富
缺點:性能差,第三方包少asp.net
優(yōu)點:跨語言, 中小型項目上性能好,開發(fā)快,適合windows平臺,維護成本低
缺點:代碼邏輯混亂,難于管理,代碼的可重用性差
國內(nèi)的大公司偏業(yè)務(wù)的一般都用 Java 做后臺開發(fā)比如淘寶,網(wǎng)易,美團等. Python國內(nèi)一般是一些體量不是這么大的公司使用,例如豆瓣,知乎等。其實,各種語言都有優(yōu)缺點,沒有哪一種是絕對好的。各公司也不是單單只使用一種后臺語言,都是結(jié)合起來開發(fā)的。
上述的各種語言的優(yōu)缺點也是相對的,并不是說明哪種語言多么好多么不好,而且,技術(shù)是發(fā)展的。不同公司用不同后臺開發(fā)語言也有各自的原因。比如,要看需求是重展現(xiàn)還是重業(yè)務(wù)邏輯,重展現(xiàn)就用php等,重業(yè)務(wù)邏輯就用python等,也有原因是由于技術(shù)積累,比如ucloud一直用c++。
看什么應(yīng)用了,比如我做游戲行業(yè)原來用的最多的就是c,c++,lua。現(xiàn)在也有用go,nodejs,python的,如果是網(wǎng)站之類的基本就是php,java,c#。
大型平臺混合語言開發(fā)的幾率很高;比如Java, Python這些是機率比較高的,尤其是中國大陸的企業(yè)使用Java開發(fā)是特別高的,如果國外的,比如美國公司使用Python的機率是比較高的。比較大型的當然要考慮高可用性高并發(fā)灰度發(fā)布,現(xiàn)在大多數(shù)的話都是用Java開發(fā)的。再比如說要用到的一些消息隊列啊,解決的方案,其實多數(shù)都是采用Java或者是混合開發(fā)平臺;C#的也有,但是不多。比如還有PHP用的也比較多,但是PHP的話針對的通常都是想快速上馬。近年的go也相當不錯,用的公司不少。
另外,技術(shù)選型的生態(tài)必須得考慮,哪個生態(tài)比較相對來說比較完整,這個就是做一個開發(fā)企業(yè)的話,必須得考慮了,因為后期會有很多接踵而來的事情要去處理,比如Java的生態(tài)相對來是非常完整的,Python也是非常完整的。 因為這兩種語言的開源力度都非常大,比如在github上就比較給力,哪怕是遇到困難或者問題,也會很容易找到相對應(yīng)的解決方案。
本人理工男愛金融愛生活! 從事軟件(互聯(lián)網(wǎng))開發(fā)10多年,希望可以和大家分享自己的職業(yè)經(jīng)歷!喜歡這一方面的話請關(guān)注我,會有不錯的收獲了哦!
9
回答10
回答5
回答6
回答10
回答2
回答0
回答10
回答10
回答0
回答