jk自慰喷水,无码精品一区二区三区在线播放,亚洲精品无码AV中文永久在线,四虎影院国产精品

北京尚腦互聯(lián)軟件測(cè)試培訓(xùn)中心

[其他技能培訓(xùn)]
獵學(xué)網(wǎng)訂閱號(hào)
獵學(xué)網(wǎng)官方企業(yè)微信
位置: 獵學(xué)網(wǎng) > 學(xué)校機(jī)構(gòu) > 北京尚腦互聯(lián)軟件測(cè)試培訓(xùn)中心 > 學(xué)習(xí)資訊> 最近十年,編程領(lǐng)域有什么重要進(jìn)展?

最近十年,編程領(lǐng)域有什么重要進(jìn)展?

53 2017-05-23

編程語言層出不窮,然而內(nèi)核是萬變不離其宗。我個(gè)人看法覺得是以下幾個(gè)方面的變化比較明顯。

語言本身:

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

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

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

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

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

2.第三方模塊走紅

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

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

過去,程序員要成名,要開發(fā)出有用的軟件,比如說求伯君開發(fā)出了wps,牛;張曉龍開發(fā)出了foxmail,牛。

現(xiàn)在,程序員要成名,開發(fā)出一個(gè)大家都會(huì)用的框架和模塊也行。比如EvanYou開發(fā)的vue.js,玉伯開發(fā)的seajs。

3.模塊化編程和依賴管理

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

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

這樣好處也明顯:

代碼量減少

加快開發(fā)速度

高度解耦

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

寫單元測(cè)試容易

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

4.框架使用

更愿意先選一個(gè)合適的框架,再開始編程,而不是所有功能自己從頭開始寫了.

javascript的框架多了,vue,react,backbone,angularjs等;

css有bootstrap,fundation等;

PHP有l(wèi)aravel,cakephp等

C#有MVC

Java有spring+hibernate+struts

框架要先選好,模塊的話,等需要慢慢加就行了。

5.測(cè)試代碼

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

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

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

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

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

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

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

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

工程方面的:

1.工具化

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

代碼風(fēng)格檢查

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

代碼整理

代碼復(fù)雜度檢查

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

依賴管理

壓縮代碼

重復(fù)代碼檢查

無用代碼檢查

等等。

2.工程化

工程化也是近年來最最突出的一個(gè)發(fā)展趨勢(shì),過去只是選擇性的,現(xiàn)在是必須的。

工程化是以工具化為基礎(chǔ)的,沒有工具,那么工程化也無從談起。

工程的核心就是流程自動(dòng)化,又稱之為構(gòu)建,這些包括了:代碼質(zhì)量檢測(cè),代碼壓縮,代碼合并,代碼優(yōu)化,代碼編譯,單元測(cè)試等等部分。構(gòu)建就是把這些以工作流程的方式組合起來,然后用一個(gè)命令行運(yùn)行這整個(gè)流程。它有點(diǎn)像批處理,但是是程序開發(fā)中使用的特殊批處理

在網(wǎng)頁編程的過程中,現(xiàn)在又流行“實(shí)時(shí)編程”,就是當(dāng)你在保存代碼的時(shí)候,以上的構(gòu)建流程就開始工作完成后自動(dòng)刷新瀏覽器,保證新代碼效果立刻反應(yīng)在瀏覽器上。

現(xiàn)在,你去github的項(xiàng)目庫中找軟件,首先翻看,是否有工程文件,看看它的構(gòu)建流程是什么,就知道這個(gè)項(xiàng)目的專業(yè)程度和項(xiàng)目的質(zhì)量了

而自己,沒有一個(gè)配置一個(gè)工程化的流程系統(tǒng),都不好意思說自己在做軟件工程。

3.自動(dòng)化

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

持續(xù)集成就是全自動(dòng)化的一個(gè)終極體現(xiàn)。他的主要流程是:版本控制庫->構(gòu)建->測(cè)試->報(bào)告.

持續(xù)集成有點(diǎn)像windows的定時(shí)任務(wù),但是它是程序開發(fā)專用的定時(shí)任務(wù)。

持續(xù)集成的特點(diǎn)就是全自動(dòng),一個(gè)項(xiàng)目一次配置好了后,要求不變的話,就不用管了;然后開發(fā)者不斷把代碼加入到版本控制庫里就行了,每當(dāng)庫有新代碼時(shí)候,持續(xù)集成就會(huì)下載代碼進(jìn)行構(gòu)建;當(dāng)它完成構(gòu)建和測(cè)試后,如果測(cè)試沒有通過,就會(huì)報(bào)告給你,然后你根據(jù)報(bào)告結(jié)果進(jìn)行修改代碼。所以你每次往版本庫加的新代碼時(shí)候,持續(xù)集成就會(huì)全自動(dòng)的幫你構(gòu)建和測(cè)試代碼,盡快的通知你代碼的問題。這樣程序員就可以更加集中精力編寫功能代碼和測(cè)試代碼,而不用擔(dān)心新代碼是否會(huì)影響到過去的代碼了。

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

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

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

其他方面:

1.版本控制,git,github

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

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

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

github不是git的全部,git也不是版本控制的全部,本質(zhì)上來說,github只是一個(gè)網(wǎng)站而已;然后github確實(shí)又是這個(gè)編程世界不可缺少的一個(gè)重要的模塊,已經(jīng)成為了一個(gè)不可或缺的組成部分了。甚至github已經(jīng)跳出了編程界,成為了一個(gè)世界級(jí)的不可或缺的服務(wù)平臺(tái)了。然而github是2008年建立的,真正開始流行是在2012年的。在2015年google宣布關(guān)閉自己的googlecode??梢奼ithub的影響力,以及在業(yè)界的重要程度了。

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

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

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

選語言也一樣,選javascript編寫爬蟲還是選php編寫爬蟲還是用python?更多的是看他們的生態(tài)系統(tǒng)了,python的爬蟲庫強(qiáng)大且豐富,所以更多人選用python編寫爬蟲。

一個(gè)新的語言出現(xiàn),成熟與否,看的就是它的生態(tài)圈了,比如是否有測(cè)試框架,是否有mvc框架,成熟的時(shí)間庫,數(shù)據(jù)庫sdk等等,這些都是其必要的生態(tài)圈組成部分。

總結(jié):

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

給學(xué)生們的一些建議:

我在讀編程專業(yè)的時(shí)候,這些東西大學(xué)都沒有教過,甚至在工作中,公司都沒有這些要求。大學(xué)主要教的是代碼編寫,能編譯通過,能出正確結(jié)果就可以了。在工作中,代碼能用,沒有明顯bug就行。

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

請(qǐng)聯(lián)系網(wǎng)站客服,了解詳細(xì)的優(yōu)惠課程信息~

優(yōu)質(zhì)、權(quán)威、便捷、省心

溫馨提示: 專業(yè)老師1對(duì)1為您解答    馬上填寫,¥1000 元豪禮免費(fèi)領(lǐng)!

掃一掃
獲取更多福利

×
獵學(xué)網(wǎng)