php技術(shù)寫過幾篇關(guān)于C#的文章,引來了了不少討論。 爬蟲技術(shù) php
2022-10-03
我寫了幾篇關(guān)于 C# 的文章,引起了很多討論。
之前對各種編程語言的紛爭一直沒有興趣。在我的認知中,每種編程語言都有自己的特點網(wǎng)站優(yōu)化,適用于不同的場景。選擇滿足用戶需求的產(chǎn)品是明智的。
但現(xiàn)在不同了。在C#的帶領(lǐng)下,C#一路攻克難關(guān),如今遙遙領(lǐng)先于各種語言,再加上微軟對跨平臺的支持,VS全球第一的代碼編輯器,我似乎看到了秦國想要的統(tǒng)一六國的影子,優(yōu)秀的語言淘汰落后的語言,就像歷史的選擇一樣,不是很好嗎?
先挑軟柿子,PHP :)
我從事碼農(nóng)工作已有 20 多年,并且使用過多種語言。C# 是現(xiàn)在最常用和主要的開發(fā)語言。可以說C#不再是只能開發(fā)應用的雞肋了,所以我說:PHP和C#不是一個數(shù)量級的。結(jié)果,這句話引起了強烈的不滿:
◆呵呵,當網(wǎng)民都敢說自己掛php的時候。什么世界?
◆別打php了,效率瓶頸不是語言本身,而是數(shù)據(jù)庫、架構(gòu)等,你不也用php嗎?除了微軟自己,能不能找個大規(guī)模使用的網(wǎng)盤看看?
◆php可以嗎?
◆掛?你不覺得臉紅嗎?你不覺得內(nèi)疚嗎?
◆首先,應用場景不同,其次,需要針對語言執(zhí)行效率進行優(yōu)化的軟件功能很少。軟件執(zhí)行的瓶頸是硬件設(shè)施。最后,在學習成本方面,PHP 低很多
廢話PHP是web開發(fā)之王,不是因為成本低php技術(shù),而是因為它為web而生
◆ 胡說八道繼續(xù)爆網(wǎng)
……
說句公道話,今天我將不以桌面應用程序為例,而是以 PHP 最擅長的 Web 項目為例,讓這些人看看 PHP 與 C# 語言相比有多么嚴重的缺陷。
之前在現(xiàn)場做過一個抖音微信的項目,時間比較緊,所以在網(wǎng)上找了一套現(xiàn)成的PHP代碼,簡單修改了一下,趕緊上線了。在成本方面,不得不說PHP有非常大的優(yōu)勢。它可以通過復制和修改來使用,而無需花錢。
結(jié)果幾天之內(nèi),就有用戶反映人少的時候搖晃是正常的。人多的時候服務器死機,100多人一起搖就不行了。
有問題就一定要解決,于是查了代碼,發(fā)現(xiàn)邏輯:每次手機搖一搖,都要去后臺數(shù)據(jù)庫加1,極端情況下100多人1秒可以搖5次,數(shù)據(jù)庫需要1秒寫入500次,需要同步。什么樣的服務器能受得住呢?這TM是哪個垃圾程序員寫的代碼!
當時我就想,原因已經(jīng)找到了,解決辦法不簡單吧?根本不需要每次都寫數(shù)據(jù)庫,只需要對全局哈希表做一個緩存,每個人的計數(shù)只在緩存中更新,等游戲結(jié)束后再批量更新數(shù)據(jù)庫,是不是這樣問題得到解決?
不過,這個想法很好。我用了php的全局變量,記錄了結(jié)果,但是不對。每個用戶只能訪問自己的。摘要中沒有任何價值。看著資料,我一頭霧水。PHP 沒有所有用戶共享的機制。所謂全局變量,只是當前用戶的全局變量,并不是所有用戶的全局變量。為此,您只能使用數(shù)據(jù)庫、文件或其他外部方法。完成。數(shù)據(jù)庫和文件的性能肯定很低。我一看,這不就是配置一個網(wǎng)站來存儲內(nèi)存變量嗎?這也叫解決方案?用C#幾行代碼就能搞定的事情,PHP不支持,所以得配個網(wǎng)站,這超出了我對軟件架構(gòu)設(shè)計的想象。PHP不是世界上最好的語言嗎?而已?至此,我終于明白為什么程序員每次搖一搖都要寫數(shù)據(jù)庫了。這是性價比最高的方法,小規(guī)模使用也沒問題。如果出現(xiàn)大規(guī)模的問題,你必須回來找我提供服務。
理解就是理解,問題還是要解決的。
由于無論如何我都必須添加另一個網(wǎng)站,所以我只是使用c#+編寫一個。畢竟這是一個高頻應用,腳本肯定不如編譯好的二進制文件效率高。所以我用C#寫了一個緩存接口php技術(shù),在php中調(diào)用。從那時起網(wǎng)站模板,這個項目的 2,000 人從未遇到過任何問題。
在成本方面,PHP確實有優(yōu)勢,只要項目簡單,要求不高,有現(xiàn)成的代碼可以使用。
從技術(shù)上講,PHP比C#沒有任何優(yōu)勢,C#只是掛了PHP!PHP能做什么,C#能做什么;C#能做什么,PHP不能做什么;C# 和 PHP 能做什么,C# 有能力比 PHP 做得更好。
歡迎噴子,也歡迎C#er支持:)