国产免费人成视频在线观看,老司机福利导航,韩国午夜理伦三级在线观看中文版,美激产A欧人在裸网区久人观

關(guān)閉
當前位置:首頁 >> 資訊 >> 建站答疑

網(wǎng)站定制開發(fā)語言的選擇

來源:無錫網(wǎng)站建設(shè)阿凡達 瀏覽次數(shù):355 發(fā)表日期:2023-05-06

如何將Node與現(xiàn)有的架構(gòu)融合以面對新的無線場景,并更好地提升開發(fā)效率,我們主要闡述了在當前成熟的體系下向Node演進的一個思路,當然這并不是*-路徑。也有很多程序員討論是否要將后端的Java體系全部替換為Node體系,這就涉及Java技術(shù)棧和Node技術(shù)棧的比較,以下是筆者關(guān)于該問題的思考。
我們從語言特性、開發(fā)效率和成本因素三個方面比較Java與作為后來者的Node。
1.語言特性
JavaScript作為Node上運行的語言,和Java相比,優(yōu)缺點很明顯。JavaScript 語法簡單,很容易編寫基于事件的驅(qū)動的實現(xiàn),但是JavaScript 基于面向?qū)ο蟮拿枋瞿芰ζ?,不像Java是真正的面向?qū)ο笳Z言,同時JavaScript對數(shù)據(jù)類型的定義也比較單一,要么是數(shù)值類型要么是字符類型。很明顯,Java 更擅長構(gòu)建復雜邏輯的大型應(yīng)用程序。在語言運行效率上,JavaScript 原本是解釋執(zhí)行,Java是編譯執(zhí)行,但由于Node做了優(yōu)化,所以兩者運行效率差別不大。
2.開發(fā)效率
開發(fā)效率可以從語言的復雜度、程序員培養(yǎng)、開發(fā)工具包的豐富性以及編碼效率幾個方面比較。
●語言的復雜度。從開發(fā)角度來看,Java和JavaScript都不需要關(guān)心內(nèi)存的管理,都是基于虛擬機來管理內(nèi)存;從并發(fā)角度來看, JavaScript是基于事件觸發(fā)的,而Java是基于線程的,因此JavaScript更占優(yōu)勢;此外,JavaScript是無阻塞IO的,在I/O效率上比Java有優(yōu)勢(盡管Java8也將更好地支持異步I/O)。
●程序員培養(yǎng)。目前Java 語言仍然是僅次于C語言的*二大編程語言,而JavaScript排在*10位,Java 程序員隊伍要比JavaScript大很多,很顯然招聘Java程序員要比招聘JavaScript程序員更容易。
●開發(fā)工具包。很多時候-個語言的開發(fā)效率要看這個語言的支持工具包和組件的豐富性,Java 經(jīng)過這么多年的發(fā)展,工具類庫已經(jīng)非常豐富,幾乎任何你想要的工具類庫都能在網(wǎng)上找到。JavaScript 雖然也發(fā)展了很長時間,但是基于JavaScript的工具類庫主要集中在前端,能夠直接用于Node的仍然很少。當然Node的社區(qū)非常活躍,可以預見Node的工具類庫增長也會非常迅速。但是要達到Java的規(guī)模尚需時日。
●編碼效率。Java 語言的運行基于JVM,但是Java的部署效率稍差; JavaScript使測試更加簡單,但是debug機制仍然不完善。
3.成本因素
前面主要是從技術(shù)角度考慮,但是如果要從成熟的Java體系遷移到Node,成本也是一個重要的考慮因素。 
首先是學習成本。如果公司大部分是Java程序員,現(xiàn)在要遷住Node,很明顯這個學習成本會非常巨大,即使這個遷移是漸進式的,長期來看仍然是要將一部分Java程序員替換成 Javascript程序員。先不管程序員是公司內(nèi)部培養(yǎng)的還是從外部招聘的我們都可以算一下公司招聘一名程序員的成本有多大:一名普通工程師的年薪假定為10萬元,獵頭費一般是年薪的20%以上,也就是2萬元、再加上一個月的實習成本1萬元,加在一起約3萬元。這對于有1萬名以上開發(fā)人員的大公司而言,人力成本可想而知。如果招聘應(yīng)屆生,由于應(yīng)屆生的培養(yǎng)周期更長,學習成本會更高。
其次是環(huán)境成本。公司的基礎(chǔ)服務(wù)產(chǎn)品如中間件是基于Java開發(fā)的,如果要替換成 Javascript,必然要再另外開發(fā),還得開發(fā)配套的運維工具等,這個成本也可想而知。*后是維護成本。Java和 Javascript i都是基于容器運行的,和V8引擘相比,程序員顯然對JVM更熟悉。另外,從排查問題的難易程度來看,針對JM的工具顯然更完善。
4.人的因素
對于一家成熟的公司而言,假如現(xiàn)有的Web系統(tǒng)都改用Node實現(xiàn)、必然會有很多Java工程師要從事Node的開發(fā),因為已有的前端工程師人數(shù)肯定支撐不了現(xiàn)有業(yè)務(wù)的發(fā)展。我們假定一部分Java工程師愿意學習 Javascript并成為全棧工程師,那么他們是否也愿意用兩種不同的語言完成同一個任務(wù)呢?正常來說,如果能用同一個任務(wù)分成神不同的方式來完成的必要性就會大打折扣。所以從這些角度來看,要讓一家很成熟的公司切換語言是非常困難的。
盡管替換技術(shù)棧很困難,但是無論如何都應(yīng)該統(tǒng)一技術(shù)棧,尤其是主流的網(wǎng)站建設(shè)業(yè)務(wù)開發(fā),更應(yīng)該使用統(tǒng)一的技術(shù)棧這就像秦始皇統(tǒng)一語言一樣所帶來的好處顯而易見。

聲明:本站部分內(nèi)容及圖片來自互聯(lián)網(wǎng),轉(zhuǎn)載是出于傳遞更多信息之目的,內(nèi)容觀點僅代表作者本人,如有任何標注錯誤或版權(quán)侵犯請與我們聯(lián)系(Email:2242241319@qq.com),我們將及時更正、刪除,謝謝。

技術(shù)熱線

400-189-1319

添加微信

江孜县| 泰和县| 五莲县| 建始县| 临安市| 航空| 东安县| 昆山市| 南充市| 西峡县| 日土县| 泊头市| 辽阳县| 定远县| 乌兰县| 平陆县| 鄢陵县| 忻城县| 安康市| 绥化市| 岢岚县| 阿克陶县| 锡林浩特市| 临湘市| 惠安县| 安溪县| 城市| 宜川县| 水城县| 会同县| 梅河口市| 鄂托克旗| 南华县| 大冶市| 砀山县| 泸西县| 东丽区| 东平县| 桑植县| 尉犁县| 顺昌县|