AV大片,日韩伦理一区,国产在线a,开心播播网婷婷在线

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

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

最近十年,編程領域有什么重要進展?

46 2017-05-23

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

語言本身:

1.工業(yè)標準

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

PHP有PHPFIG組織,雖然不是強制性的,但是很多新的框架和庫都自覺遵守這個組織的編程標準。

Java,C語言都有各自的工業(yè)標準準則,來維護各自工業(yè)標準。

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

2.第三方模塊走紅

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

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

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

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

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

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

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

這樣好處也明顯:

代碼量減少

加快開發(fā)速度

高度解耦

定位bug容易,改動影響小

寫單元測試容易

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

4.框架使用

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

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

css有bootstrap,fundation等;

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

C#有MVC

Java有spring+hibernate+struts

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

5.測試代碼

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

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

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

6.跨設備,跨平臺

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

跨設備,主要是指桌面和手機,尤其是針對顯示器的最佳實踐是層出不窮,如今是響應式成為了主流。

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

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

工程方面的:

1.工具化

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

代碼風格檢查

工業(yè)標準檢查

代碼整理

代碼復雜度檢查

單元測試覆蓋率檢查

依賴管理

壓縮代碼

重復代碼檢查

無用代碼檢查

等等。

2.工程化

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

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

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

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

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

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

3.自動化

自動化是以工程化為基礎的,工程化本身就是一種流程自動化。而自動化有在工程化的過程中更進一步的自動化。

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

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

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

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

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

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

其他方面:

1.版本控制,git,github

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

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

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

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

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

生態(tài)圈意識在業(yè)界是越來越強了,它應該和編程工具化和工程化有極大的關系。一個語言,框架或者庫的出現(xiàn),人們用它們,不但是因為它們本身的強大,更是因為它們背后的生態(tài)圈。

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

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

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

總結:

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

給學生們的一些建議:

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

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

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

優(yōu)質、權威、便捷、省心

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

掃一掃
獲取更多福利

×
獵學網(wǎng)
女同网站| ddd42iii| 国产精品丝丝在线| 国产又大又黑又粗免费视频| 在线最新AV| 2002麻豆久久| 亚洲AV无码乱码麻豆精品国产| 亚洲一区二区视频网站| 日日夜夜人人干人人| 欧美三级午夜理伦三级| 人妻激情综合网| 麻豆美女啪啪| 亚洲综合熟女久久久40p| 国产无码自拍传媒| 大片亚洲一区二区| 国产精品成人一区二区三区| 超碰人人操a v| 开心激情伊人丁香五月| 无码精品一区二区三区在线播放| 亚洲日韩精品一区二区| 懂色亚洲| 人人超碰91尤物精品国产| 永久免费av在线播放| 亚洲中文综合在线| 伊人久久大香线蕉综合AV| 激情久久,小说| chaopeng一区| 国产成人无码VA在线观看| 国产野外av| 91精品电影网| 久久久天堂| 一本视频| 亚洲一级导航| 甘肃省| 欧美激情xxx| 自慰喷水在线看| 看久久久久久一级毛片| 日韩国产亚洲欧美| www.91免费精品| 日韩AV影院在线观看| 高跟插成人|