中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
過(guò)去十年,編程語(yǔ)言領(lǐng)域有什么重要進(jìn)展?

十年來(lái),盡管軟件行業(yè)發(fā)展迅速,熱門(mén)編程語(yǔ)言的發(fā)展似乎卻成了例外,始終未有太大改變。不過(guò)事實(shí)并不盡然,編程語(yǔ)言的真正變化在于:為了競(jìng)爭(zhēng)存活,前十大熱門(mén)編程語(yǔ)言都借鑒了其他語(yǔ)言的功能,作為新功能引入。究竟哪幾方面變化明顯?

本文轉(zhuǎn)自知乎,已獲作者授權(quán)

如果把當(dāng)前TIOBE編程語(yǔ)言排行榜的前十拿出來(lái),與十年前的前十做以比對(duì),就會(huì)發(fā)現(xiàn)這兩份名單完全相同!

唯一的不同在于:其中Visual Basic、PHP和Perl與同為十大熱門(mén)卻更現(xiàn)代的C#、Python和JavaScript交換了位置。在這十年間Objective-C確曾進(jìn)入過(guò)十大熱門(mén)語(yǔ)言,甚至還攀升到了前三的位置,不過(guò)在蘋(píng)果宣布用Swift代替Objective-C之后,它便很快銷(xiāo)聲匿跡了。

根據(jù)這些情況,我們可以得出結(jié)論:編程語(yǔ)言并無(wú)實(shí)質(zhì)性變化,而且未來(lái)十年也不會(huì)出現(xiàn)什么新的大型編程語(yǔ)言。

編程語(yǔ)言排行榜2016年8月 TOP 20 榜單

不過(guò)事實(shí)并不盡然,編程語(yǔ)言的真正變化在于:為了競(jìng)爭(zhēng)存活,前十大熱門(mén)編程語(yǔ)言都借鑒了其他語(yǔ)言的功能,作為新功能引入。由于十大熱門(mén)語(yǔ)言的代碼庫(kù)都很龐大,使用者更愿意在該語(yǔ)言中實(shí)現(xiàn)變更,而不是換用新的編程語(yǔ)言。 編程語(yǔ)言內(nèi)核是萬(wàn)變不離其宗。我個(gè)人看法是以下幾個(gè)方面的變化比較明顯

語(yǔ)言本身

工業(yè)標(biāo)準(zhǔn)

網(wǎng)頁(yè)標(biāo)準(zhǔn)有 W3C 控制,尤其是瀏覽器的開(kāi)發(fā),所有主流的瀏覽器都會(huì)自覺(jué)符合這個(gè)組織的標(biāo)準(zhǔn),當(dāng)然這些開(kāi)發(fā)商本身就是這個(gè)組織的成員。所以新的 HTML5、CSS3、ES6 JavaScript 的新特性得到順利推動(dòng),讓大部分主流瀏覽器都支持它,W3C 功不可沒(méi)。

PHP 有 PHPFIG 組織,雖然不是強(qiáng)制性的,但是很多新的框架和庫(kù)都自覺(jué)遵守這個(gè)組織的編程標(biāo)準(zhǔn)。

Java、C 語(yǔ)言都有各自的工業(yè)標(biāo)準(zhǔn)準(zhǔn)則,來(lái)維護(hù)各自工業(yè)標(biāo)準(zhǔn)。

工業(yè)標(biāo)準(zhǔn)其實(shí)不是強(qiáng)制性的,雖然很多程序員在自己工作上不遵守這些工業(yè)標(biāo)準(zhǔn),但是要推出新的模塊的話,不遵守這些工業(yè)標(biāo)準(zhǔn)的模塊,是沒(méi)有人會(huì)去使用的。如今,是不是面向標(biāo)準(zhǔn)編程,這是體現(xiàn)一個(gè)程序員是否專(zhuān)業(yè)、一個(gè)模塊是不是專(zhuān)業(yè)模塊的一個(gè)重要指標(biāo)。

第三方模塊走紅

各種語(yǔ)言的框架和庫(kù),可能比自己的語(yǔ)言還出名,比如 CSS 的 Bootstrap、JavaScript 的 jQuery;一個(gè)好的框架和庫(kù)甚至可以推動(dòng)這個(gè)語(yǔ)言的發(fā)展,比如 PHP 的 Laravel 框架、JavaScript 的 jQuery。

模塊化的發(fā)展,大大加快了開(kāi)發(fā)的速度。很多人也愿意開(kāi)發(fā)各種框架和模塊,不但可以鍛煉自己的開(kāi)發(fā)技能,也是一種展示自己的能力。

過(guò)去,程序員要成名,要開(kāi)發(fā)出有用的軟件,比如求伯君開(kāi)發(fā)出了 WPS,牛;張小龍開(kāi)發(fā)出了 Foxmail,牛。

現(xiàn)在,程序員要成名,可以開(kāi)發(fā)出一個(gè)大家都會(huì)用的框架和模塊。比如 Evan You 開(kāi)發(fā)的 Vue.js,玉伯開(kāi)發(fā)的 SeaJs。

模塊化編程和依賴管理

在 2010 年前,依賴管理工具只是個(gè)很時(shí)髦的概念,大家都習(xí)慣到庫(kù)的官方網(wǎng)站下載庫(kù)后手動(dòng)導(dǎo)入到項(xiàng)目中。升級(jí)也比較麻煩。所以,程序員一般是下載一兩個(gè)必要的庫(kù),其他的庫(kù)都自己手寫(xiě)完成。

如今,依賴管理工具已經(jīng)是必備的了,大家不再手動(dòng)導(dǎo)入庫(kù)了;能找到第三方模塊的功能,就不再自己編寫(xiě)了,全部用工具導(dǎo)入項(xiàng)目;自己編寫(xiě)的程序代碼,能模塊化的代碼都模塊化,甚至是獨(dú)立出來(lái),網(wǎng)上開(kāi)源,然后使用依賴管理工具進(jìn)行管理導(dǎo)入到自己的項(xiàng)目中。

這樣做的優(yōu)點(diǎn)很明顯:

  • 代碼量減少;

  • 加快開(kāi)發(fā)速度;

  • 高度解耦;

  • 定位 bug 容易,改動(dòng)影響小;

  • 寫(xiě)單元測(cè)試容易。

如今大家更加愿意編寫(xiě)小模塊,而不是重復(fù)造輪子了。

框架使用

現(xiàn)在一般會(huì)先選一個(gè)合適的框架,再開(kāi)始編程,而不是所有功能完全靠自己從頭開(kāi)始編寫(xiě)。

  • JavaScript 的框架多了,如Vue、React、Backbone、AngularJs 等;

  • CSS 有 Bootstrap、Fundation 等;

  • PHP 有 Laravel、CakePHP 等;

  • C#有 MVC;

  • Java 有 Spring+Hibernate+struts。

框架要先選好,模塊在需要的時(shí)候慢慢加就行了。

測(cè)試代碼

2006 年,單元測(cè)試在開(kāi)發(fā)過(guò)程中,重要性不是很大,可有可無(wú),只要程序完成,功能能用就行。

如今的代碼,如果沒(méi)有單元測(cè)試部分,這個(gè)工程就不能算完結(jié)。甚至是,測(cè)試驅(qū)動(dòng)開(kāi)發(fā)已經(jīng)成為主流,先寫(xiě)測(cè)試代碼,然后再開(kāi)發(fā)。

測(cè)試代碼的發(fā)展不僅僅是單元測(cè)試這部分。單元測(cè)試、集成測(cè)試、功能測(cè)試、性能測(cè)試、壓力測(cè)試等,都在開(kāi)發(fā)過(guò)程中占了重要的位置。以前測(cè)試都是由專(zhuān)門(mén)的測(cè)試員進(jìn)行人工測(cè)試,或者由他們負(fù)責(zé)測(cè)試;如今單元測(cè)試和集成測(cè)試都是要開(kāi)發(fā)者自己編寫(xiě)。

跨設(shè)備,跨平臺(tái)

Java 提出的跨平臺(tái),一次編譯到處運(yùn)行的夢(mèng)想,其實(shí)至今未很好實(shí)現(xiàn)。但是,如今跨設(shè)備、跨平臺(tái)編程趨勢(shì)是越來(lái)越明顯了。

跨設(shè)備,主要是指跨桌面和手機(jī),尤其是針對(duì)顯示器的最佳實(shí)踐是層出不窮,如今響應(yīng)式成為了主流。

跨平臺(tái),出自于Java 的一個(gè)概念,如今已經(jīng)普及了,桌面、手機(jī)、服務(wù)器、瀏覽器、嵌入式都能看到 JavaScript 的身影,這大大歸功于 JavaScript 標(biāo)準(zhǔn)化的推廣。跨平臺(tái)過(guò)去是指一次編譯到處運(yùn)行,如今是指只要這個(gè)平臺(tái)支持這個(gè)語(yǔ)言或標(biāo)準(zhǔn),就能用。如今的跨平臺(tái)編程,更講究特性檢查這個(gè)功能,如果你的平臺(tái)沒(méi)有這個(gè)特性,那么就關(guān)閉特性檢查功能,但其他功能還可以繼續(xù)使用。

今后,各種設(shè)備層出不窮,VR 頭盔、AR 眼鏡、巨型屏幕、物聯(lián)網(wǎng)等,跨平臺(tái)會(huì)有進(jìn)一步的發(fā)展。

工程方面

工具化

編程語(yǔ)言工具化如今非常突出了,凡是工具能完成的事情,絕對(duì)不手工完成。從以下幾個(gè)方面都可以找到相應(yīng)工具,幫助開(kāi)發(fā)者管理代碼質(zhì)量。

  • 代碼風(fēng)格檢查;

  • 工業(yè)標(biāo)準(zhǔn)檢查;

  • 代碼整理;

  • 代碼復(fù)雜度檢查;

  • 單元測(cè)試覆蓋率檢查;

  • 依賴管理;

  • 壓縮代碼;

  • 重復(fù)代碼檢查;

  • 無(wú)用代碼檢查。

工程化

工程化是近年來(lái)最突出的一個(gè)發(fā)展趨勢(shì),過(guò)去只是選擇性的,現(xiàn)在是必須的。工程化是以工具化為基礎(chǔ)的,沒(méi)有工具,那么工程化也無(wú)從談起。工程的核心就是流程自動(dòng)化,又稱為構(gòu)建,這些包括了:代碼質(zhì)量檢測(cè)、代碼壓縮、代碼合并、代碼優(yōu)化、代碼編譯、單元測(cè)試等部分。構(gòu)建就是把這些部分以工作流程的方式組合起來(lái),然后用一個(gè)命令行運(yùn)行整個(gè)流程。它有點(diǎn)像批處理,但是是程序開(kāi)發(fā)中使用的特殊批處理。

網(wǎng)頁(yè)編程現(xiàn)在又流行“實(shí)時(shí)編程”,就是當(dāng)你在保存代碼的時(shí)候,以上的構(gòu)建流程工作完成后會(huì)自動(dòng)刷新瀏覽器,保證新代碼效果立刻反映在瀏覽器上?,F(xiàn)在,在 GitHub 項(xiàng)目庫(kù)中找軟件,首先查看是否有工程文件,看看它的構(gòu)建流程是什么,就知道這個(gè)項(xiàng)目的專(zhuān)業(yè)程度和項(xiàng)目質(zhì)量了。如果沒(méi)有配置一個(gè)工程化的流程系統(tǒng),都不好意思說(shuō)自己在做軟件工程。

自動(dòng)化

自動(dòng)化是以工程化為基礎(chǔ)的,工程化本身就是一種流程自動(dòng)化,而自動(dòng)化又在工程化的過(guò)程中更進(jìn)一步自動(dòng)化。

持續(xù)集成是全自動(dòng)化的一個(gè)終極體現(xiàn),主要流程是:版本控制庫(kù)—構(gòu)建—測(cè)試—報(bào)告。持續(xù)集成有點(diǎn)像 Windows 的定時(shí)任務(wù),但它是程序開(kāi)發(fā)專(zhuān)用的定時(shí)任務(wù)。

持續(xù)集成的特點(diǎn)就是全自動(dòng),一個(gè)項(xiàng)目一次配置好,要求不變的話,就不用管了;然后開(kāi)發(fā)者不斷把代碼加入到版本控制庫(kù)里就可以了,每當(dāng)庫(kù)有新代碼時(shí)候,持續(xù)集成就會(huì)下載代碼進(jìn)行構(gòu)建;當(dāng)它完成構(gòu)建和測(cè)試后,如果測(cè)試沒(méi)有通過(guò),就會(huì)返回報(bào)告,然后根據(jù)報(bào)告結(jié)果修改代碼。

所以每次往版本庫(kù)添加新代碼,持續(xù)集成就會(huì)全自動(dòng)地幫你構(gòu)建和測(cè)試代碼,盡快通知代碼的問(wèn)題。這樣,程序員就可以更加集中精力編寫(xiě)功能代碼和測(cè)試代碼,而不用擔(dān)心新代碼是否會(huì)影響過(guò)去的代碼。

在多人一起開(kāi)發(fā)的時(shí)候,持續(xù)集成更有用,誰(shuí)上傳的代碼沒(méi)有通過(guò)測(cè)試,能馬上知道。這樣可以保證多人項(xiàng)目的代碼順利合并,體現(xiàn)“持續(xù)集成”的功效。

另外還有持續(xù)部署,其實(shí)就是持續(xù)集成在測(cè)試成功后部署上產(chǎn)品服務(wù)器的流程。如今有些網(wǎng)站一天就要部署幾十次,有了持續(xù)部署后,部署多少次都毫無(wú)壓力。

工具化、工程化以及自動(dòng)化的關(guān)系很有意思,前者是后者的基礎(chǔ),而后者又極大推動(dòng)了前者的發(fā)展。它們相互積極作用,相互推動(dòng)了對(duì)方的發(fā)展,這形成了一個(gè)很好的良性循環(huán)。

其他方面

版本控制,Git、GitHub

版本控制在編程界中的地位是越來(lái)越重要了。在編程界中有個(gè)說(shuō)法:沒(méi)有版本控制的項(xiàng)目,就等于沒(méi)有這個(gè)項(xiàng)目。

版本控制的工具過(guò)去有 SVN,如今是 Git 。 Git 很強(qiáng)大,用的人也是越來(lái)越多,它和 GitHub 共同對(duì)編程界的積極影響和積極推動(dòng),這是令人無(wú)法忽視的。比如幾乎所有的依賴管理工具的庫(kù)下載源,都是和 GitHub 綁定的, 就這一點(diǎn)來(lái)說(shuō),GitHub 的重要性在 IT 界就不可估量。

GitHub 和 Git 的方便管理、上傳、查看、統(tǒng)計(jì)、bug 報(bào)告等功能更是極大地推動(dòng)了程序員之間的合作;GitHub 上的開(kāi)源更是改變了開(kāi)源軟件對(duì)世界的影響力。

GitHub 不是 Git 的全部,Git 也不是版本控制的全部。本質(zhì)上來(lái)說(shuō),GitHub 只是一個(gè)網(wǎng)站而已;但 GitHub 確實(shí)又是這個(gè)編程世界不可缺少的一個(gè)重要模塊,已經(jīng)成為了一個(gè)不可或缺的組成部分。甚至, GitHub 已經(jīng)跳出了編程界,成為了一個(gè)世界級(jí)的不可或缺的服務(wù)平臺(tái)。

然而 GitHub 是 2008 年建立的,真正開(kāi)始流行是在 2012 年。在 2015 年, Google 宣布關(guān)閉自己的 Google Code,可見(jiàn) GitHub 的影響力,以及其在業(yè)界的重要程度了。

生態(tài)圈意識(shí)

生態(tài)圈意識(shí)在業(yè)界是越來(lái)越強(qiáng)了,它應(yīng)該和編程工具化和工程化有極大的關(guān)系。一門(mén)語(yǔ)言、框架或者庫(kù)出現(xiàn)后,人們應(yīng)用它們,不只是因?yàn)樗鼈儽旧淼膹?qiáng)大,更是因?yàn)樗鼈儽澈蟮纳鷳B(tài)圈。

舉個(gè)例子,人們選擇一個(gè) JavaScript 的框架,是選 React 還是選 Ember.js,更多是看支持它們的生態(tài)圈如何。React 是有 Facebook 支持的,有很多程序員為它開(kāi)發(fā)相關(guān)工具和庫(kù)以及有很多文檔教程,這樣 React 的生態(tài)圈就很大,會(huì)讓更多人愿意選擇 React 作為第一開(kāi)發(fā)框架。而 Ember.js 相對(duì)來(lái)說(shuō)生態(tài)圈小,選擇它的人可能就不會(huì)很多。

選擇語(yǔ)言也一樣。選用 JavaScript 編寫(xiě)爬蟲(chóng),還是選 PHP 或者 Python?更多的是看它們的生態(tài)系統(tǒng)了,Python 的爬蟲(chóng)庫(kù)強(qiáng)大且豐富,所以更多人選用 Python 編寫(xiě)爬蟲(chóng)。

一門(mén)新的語(yǔ)言是否成熟,看的就是它的生態(tài)圈,比如是否有測(cè)試框架、 MVC 框架,是否有成熟的時(shí)間庫(kù)、數(shù)據(jù)庫(kù) SDK 等,這些都是其必要的生態(tài)圈組成部分。

WEB 技術(shù)的桌面化和 JavaScript 的全棧化

JavaScript 近些年發(fā)展火熱,逐漸印證了Atwood定律:凡是可以用 JavaScript 實(shí)現(xiàn)的,最終都會(huì)用 JavaScript 實(shí)現(xiàn)。

  • Node.js 的出現(xiàn),奠定了JavaScript 走出瀏覽器,走向了服務(wù)器端;

  • NW 的出現(xiàn)和 electron 正式版發(fā)布,JavaScript 走向了桌面;

  • MongoDB 的出現(xiàn),JavaScript 走向了數(shù)據(jù)庫(kù);

  • Tessel 的出現(xiàn),走向了硬件和物聯(lián)網(wǎng)。

如今一個(gè)全棧系統(tǒng),從前端到數(shù)據(jù)庫(kù),可以完全使用 JavaScript 一種語(yǔ)言。還有很多人正在致力于把 JavaScript 推向更多的領(lǐng)域中。

而 Web 技術(shù)(html+css+JavaScript)由于 NW 和 Electron 的出現(xiàn),已經(jīng)可以編寫(xiě)桌面程序了。正是由于 JS 的優(yōu)秀模塊很多,以及 HTML+CSS 的界面容易編寫(xiě)和掌控,糾錯(cuò)工具豐富,很多人愿意用 Web技術(shù)進(jìn)行開(kāi)發(fā)?,F(xiàn)在比較火的桌面工具有 VS-Code 編輯器和 Atom 編輯器。

由于 Web 技術(shù)的便利性,Web 技術(shù)涉及的領(lǐng)域也就越來(lái)越多,再也不是瀏覽器的專(zhuān)利了。

Web API 的全面發(fā)展

Web API 雖然歷史悠久,但是真正使其推廣流行的應(yīng)該是 Twitter,而后移動(dòng)設(shè)備的普及使其得到更大發(fā)展和普及。移動(dòng)設(shè)備如果沒(méi)有 Web API 基本就不能工作。Web API 的普及,也使得網(wǎng)絡(luò)服務(wù)之間相互連通,形成一個(gè)更大的服務(wù)網(wǎng)絡(luò)??傊?,如今的 Web API 已經(jīng)是不可或缺的存在了。

Web API 更多是一種服務(wù),或是一種數(shù)據(jù)交換模式。只要語(yǔ)言帶有 HTTP 的網(wǎng)絡(luò)訪問(wèn)功能,就都能使用。提供 Web API 的公司,發(fā)布 Web API 后,一般也會(huì)同時(shí)發(fā)布一些常用語(yǔ)言的 SDK,方便語(yǔ)言開(kāi)發(fā)人員快速上手;但是如果語(yǔ)言比較小眾,沒(méi)有提供相應(yīng)的 SDK 也沒(méi)有關(guān)系,編寫(xiě)一段 HTTP 的請(qǐng)求,也可以交換數(shù)據(jù)。

從編程的角度來(lái)歸納一下 Web API 特點(diǎn)就是:

  • 容易編寫(xiě),就是一個(gè)函數(shù),無(wú)需界面;

  • 語(yǔ)言無(wú)關(guān)性,無(wú)論 Web API 是哪一門(mén)語(yǔ)言編寫(xiě)的,幾乎任何語(yǔ)言都能調(diào)用;

  • 訪問(wèn)性好,只要網(wǎng)絡(luò)能訪問(wèn),Web API 就可以用。

語(yǔ)言之間的相互借鑒

語(yǔ)言之間的相互借鑒也越來(lái)越明顯了,比如:

  • PHP 5.0 后支持了類(lèi),5.4 后支持了 Trait,5.5 后支持了生成器(Generator);

  • JavaScript ES 6 支持了箭頭匿名函數(shù)、生成器(Generator)、類(lèi)(不是 Prototype 的類(lèi));

  • C# 和 Java 相互借鑒;

  • Coffee Script 借鑒 Python 和 Ruby。

與其說(shuō)是相互借鑒,不如說(shuō)隨著語(yǔ)言的發(fā)展,一些語(yǔ)言概念逐漸成為了標(biāo)配,如果沒(méi)有,就不算是完整的語(yǔ)言了,比如說(shuō)類(lèi)、匿名函數(shù)、常用數(shù)據(jù)結(jié)構(gòu)等都成為了標(biāo)配。

語(yǔ)言解析器的工具化

語(yǔ)言解析器(Parser)在過(guò)去是作為編譯器的一部分存在的。如今,它已經(jīng)獨(dú)立出來(lái)作為一個(gè)模塊或者工具使用了。這對(duì)于語(yǔ)言的生態(tài)有著很大的意義,促進(jìn)了語(yǔ)言生態(tài)圈的良好發(fā)展。

獨(dú)立出來(lái)的解析器,可以用來(lái)編寫(xiě)以下和語(yǔ)言有關(guān)的工具,這些工具都是用來(lái)優(yōu)化代碼質(zhì)量、提高編碼體驗(yàn)的。

  • 語(yǔ)法檢查,JavaScript 的 JSHint 用的就是 JavaScript 的一個(gè)解釋器,被 JavaScript 重新解釋一遍,把可能有問(wèn)題的地方標(biāo)記出來(lái)通知程序員,程序員可修改避免潛在錯(cuò)誤。

  • 代碼最小化,代碼重寫(xiě)的一種形式,JavaScript 的最小化項(xiàng)目(比如 Urglify),是把語(yǔ)法正確讀取后,進(jìn)行最小化壓縮。把單詞變量轉(zhuǎn)換成單字母變量,甚至是 if else 轉(zhuǎn)換成?: 形式。

  • 語(yǔ)法擾亂器,就是代碼重寫(xiě)的一種形式,讓代碼無(wú)法閱讀,保護(hù)代碼。

  • 語(yǔ)法整理器,代碼重新的一個(gè)形式,把無(wú)法閱讀的代碼轉(zhuǎn)換成可閱讀的代碼,比如 beautifier。

  • 語(yǔ)法高亮,一般用于代碼編輯器和代碼顯示組件的。

  • 代碼分析器,把可用的代碼部分進(jìn)行掃描,列出代碼相關(guān)數(shù)據(jù),比如用了多少類(lèi)、多少對(duì)象、多少變量、多少全局變量等。

  • 代碼清理器,分析器的加強(qiáng),清理不用的變量、不用的對(duì)象、不用的函數(shù)等。

  • 自動(dòng)完成,一些 IDE 可以分析已經(jīng)存在的變化和函數(shù),以后在不斷的打字中可以智能自動(dòng)完成。

  • 代碼追蹤,比如說(shuō)某段代碼被執(zhí)行了幾次、程序報(bào)錯(cuò)時(shí)候函數(shù)被執(zhí)行的順序、測(cè)試程序時(shí)候的代碼覆蓋率等。

  • 虛擬執(zhí)行,JavaScript 代碼在一個(gè)保護(hù)區(qū)域內(nèi)或環(huán)境執(zhí)行,代碼可以返回值,但不能影響非虛擬環(huán)境內(nèi)的代碼執(zhí)行。比如說(shuō),代碼里面有全局變量,但是虛擬執(zhí)行后這個(gè)全局變量只在虛擬環(huán)境內(nèi),非虛擬環(huán)境里沒(méi)有這個(gè)全局變量。

數(shù)據(jù)交換語(yǔ)言的發(fā)展

數(shù)據(jù)交換語(yǔ)言發(fā)展,總體來(lái)說(shuō)就是從 XML 主流逐漸發(fā)展到 JSON 主流的過(guò)程。雖然 XML 現(xiàn)在應(yīng)用還是非常廣泛,但是由于其復(fù)雜性和標(biāo)簽占用空間大,逐漸被輕量級(jí)的 JSON 給代替了。另外,JSON 與 JavaScript 天然兼容,無(wú)需解析,直接使用,所以在很多網(wǎng)絡(luò)技術(shù)中 JSON 是優(yōu)先使用的。

而如今很多配置文件也是用 JSON 實(shí)現(xiàn)的,比如 Composer 和 node 的配置文件。

JSON 的閱讀方式更符合程序員的閱讀習(xí)慣,格式化后的結(jié)構(gòu)一目了然,容易理解。

JSON 有如下優(yōu)點(diǎn):

  • 結(jié)構(gòu)符合程序員閱讀習(xí)慣;

  • 文件大小相對(duì)更??;

  • JavaScript 可以直接使用;

  • 在非 JavaScript 的腳步語(yǔ)言中,轉(zhuǎn)化成數(shù)據(jù)結(jié)構(gòu)更容易;

  • 學(xué)習(xí)曲線很短。

正是以上這些原因,可以說(shuō)在編程界里,使用 JSON 作為數(shù)據(jù)交換語(yǔ)言是大勢(shì)所趨了。

總結(jié)

以上所列的現(xiàn)象和趨勢(shì),其實(shí)都是相輔相成的,最終行成了一種良性循環(huán)。這些現(xiàn)象和趨勢(shì)都會(huì)繼續(xù)發(fā)展下去,并成為以后新趨勢(shì)的基礎(chǔ)。這些特點(diǎn)非常重要,應(yīng)該成為每個(gè)程序員都應(yīng)該知道的知識(shí)。

一些建議

我在讀編程專(zhuān)業(yè)的時(shí)候,大學(xué)沒(méi)有教過(guò)這些知識(shí),甚至在工作中也沒(méi)有了解趨勢(shì)的要求。大學(xué)主要學(xué)編寫(xiě)代碼,能編譯通過(guò)、出正確結(jié)果就可以了。程序員在工作中,要求代碼能用,沒(méi)有明顯 bug 就行。

然而,在我個(gè)人工作實(shí)踐中,逐漸體會(huì)到這些趨勢(shì)的重要性,編寫(xiě)可維護(hù)的高質(zhì)量代碼可以大大減少自己在維護(hù)中的難度和壓力每一個(gè)準(zhǔn)備或者想要成為合格的開(kāi)發(fā)人員的人,都應(yīng)該熟練掌握這些知識(shí)和技能,如果大學(xué)沒(méi)有教過(guò)、以前沒(méi)有想過(guò),一定要想辦法自己去學(xué)習(xí)和提高。

喜歡我們的會(huì)點(diǎn)贊,愛(ài)我們的會(huì)分享!

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服