你可以看下這些年來,編程領域有什么重要進展?

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

    語言本身:

    1. 工業標準

    網頁標準有 W3C 控制,尤其是瀏覽器的開發,所有主流的瀏覽器都會自覺符合這個組織的標準,當然這些開發商本身就是這個組織的成員。愛掏網 - it200.com所以新的 HTML5,CSS3,ES6 JavaScript 的新特性的得到順利推動,讓大部分主流瀏覽器都支持它,W3C 功不可沒。愛掏網 - it200.com

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

    Java, C 語言都有各自的工業標準準則,來維護各自工業標準。愛掏網 - it200.com

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

    2.第三方模塊走紅

    各種語言的框架和庫,可能比自己的語言還出名,比如 CSS 的 Bootstrap,JavaScript 的 jQuery;一個好的框架和庫甚至可以推動這個這個語言的發展,比如說 PHP 的 Laravel 框架,JavaScript 的 jQuery.

    模塊化的發展,大大加快了開發的速度。愛掏網 - it200.com很多人也愿意開發各種框架和模塊,不但可以鍛煉自己的開發技能,也是一種展示自己的能力。愛掏網 - it200.com

    過去,程序員要成名,要開發出有用的軟件,比如說求伯君開發出了 WPS,牛;張曉龍開發出了 Foxmail,牛。愛掏網 - it200.com

    現在,程序員要成名,開發出一個大家都會用的框架和模塊也行。愛掏網 - it200.com比如 Evan You 開發的 Vue.js,玉伯開發的 SeaJs。愛掏網 - it200.com

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

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

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

    這樣好處也明顯:

    代碼量減少
    加快開發速度
    高度解耦
    定位 bug 容易,改動影響小
    寫單元測試容易
    如今大家更加愿意寫小模塊,而不是重復造輪子了。愛掏網 - it200.com

    4. 框架使用

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

    JavaScript 的框架多了,Vue,React, Backbone,AngularJs 等;
    CSS 有 Bootstrap,Fundation 等;
    PHP 有 Laravel,CakePHP 等
    C#有 MVC
    Java 有 Spring+Hibernate+struts
    框架要先選好,模塊的話,等需要慢慢加就行了。愛掏網 - it200.com

    5. 測試代碼

    2006 年,單元測試在開發過程中,重要性不是很大,可有可無,程序完成,功能能用就行。愛掏網 - it200.com

    如今的代碼,沒有單元測試部分,這個工程就不能算完結。愛掏網 - it200.com甚至是,測試驅動開發已經成為主流,先寫測試代碼,然后開發。愛掏網 - it200.com

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

    6.跨設備,跨平臺

    Java 提出的跨平臺,一次編譯到處運行的夢想,其實至今未很好的實現。愛掏網 - it200.com但是如今這個跨設備,跨平臺編程趨勢卻越來越明顯了。愛掏網 - it200.com

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

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

    今后,各種設備層出不窮,VR 頭盔,AR 眼鏡,巨型屏幕,物聯網等等,跨平臺會有進一步的發展。愛掏網 - it200.com

    工程方面的:

    1.工具化

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

    代碼風格檢查
    工業標準檢查
    代碼整理
    代碼復雜度檢查
    單元測試覆蓋率檢查
    依賴管理
    壓縮代碼
    重復代碼檢查
    無用代碼檢查
    等等,

    2. 工程化

    工程化也是近年來最最突出的一個發展趨勢,過去只是選擇性的,現在是必須的。愛掏網 - it200.com

    工程化是以工具化為基礎的,沒有工具,那么工程化也無從談起。愛掏網 - it200.com

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

    在網頁編程的過程中,現在又流行“實時編程”,就是當你在保存代碼的時候,以上的構建流程就開始工作完成后自動刷新瀏覽器,保證新代碼效果立刻反應在瀏覽器上。愛掏網 - it200.com

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

    而自己,沒有一個配置一個工程化的流程系統,都不好意思說自己在做軟件工程。愛掏網 - it200.com

    3. 自動化

    自動化是以工程化為基礎的,工程化本身就是一種流程自動化。愛掏網 - it200.com而自動化有在工程化的過程中更進一步的自動化。愛掏網 - it200.com

    持續集成就是全自動化的一個終極體現。愛掏網 - it200.com他的主要流程是:版本控制庫 ->構建 ->測試 ->報告.

    持續集成有點像 Windows 的定時任務,但是它是程序開發專用的定時任務。愛掏網 - it200.com

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

    持續集成在多人一起開發的時候,更是有用,誰上傳的代碼沒通過測試,能馬上知道。愛掏網 - it200.com這樣保證多人項目在代碼順利合并,體現“持續集成”的功效。愛掏網 - it200.com

    另外還有個持續部署,其實就是持續集成在測試成功后部署上產品服務器上的流程。愛掏網 - it200.com如今有些網站一天就要部署幾十次,有了持續部署后,部署多少次都毫無壓力。愛掏網 - it200.com

    工具化,工程化,自動化的關系挺有意思,前者是后者的基礎,而后者卻極大推動了前者的發展。愛掏網 - it200.com它們是相互積極作用,相互推動了對方的發展,形成了一個很好的良性循環

    其他方面:

    1. 版本控制,Git,GitHub

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

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

    而 GitHub 上和 Git 的方便管理,上傳,查看,統計,bug 報告等功能更是極大地推動了程序員之間的合作;GitHub 上的開源更是改變了開源軟件對世界的影響力。愛掏網 - it200.com

    GitHub 不是 Git 的全部,Git 也不是版本控制的全部,本質上來說,GitHub 只是一個網站而已;然后 GitHub 確實又是這個編程世界不可缺少的一個重要的模塊,已經成為了一個不可或缺的組成部分了。愛掏網 - it200.com甚至 GitHub 已經跳出了編程界,成為了一個世界級的不可或缺的服務平臺了。愛掏網 - it200.com然而 GitHub 是 2008 年建立的,真正開始流行是在 2012 年的。愛掏網 - it200.com在 2024 年 Google 宣布關閉自己的 Google Code。愛掏網 - it200.com可見 GitHub 的影響力,以及在業界的重要程度了。愛掏網 - it200.com

    2.生態圈意識

    生態圈意識在業界是越來越強了,它應該和編程工具化和工程化有極大的關系。愛掏網 - it200.com一個語言,框架或者庫的出現,人們用它們,不但是因為它們本身的強大,更是因為它們背后的生態圈。愛掏網 - it200.com

    比如說人們選一個 JavaScript 的框架,選 React 還是選 Ember.js,更多是看支持他們的生態圈如何,React 是有 Facebook 支持的,更有很多程序員為它開發相關工具和庫以及有很多文檔教程。愛掏網 - it200.com這樣 React 的生態圈就很大,會讓更多人愿意選擇 React 作為第一開發框架。愛掏網 - it200.com而 Ember.js 相對來說生態圈小,選擇它的人可能就不會很多。愛掏網 - it200.com

    選語言也一樣,選 JavaScript 編寫爬蟲還是選 PHP 編寫爬蟲還是用 Python?更多的是看他們的生態系統了,Python 的爬蟲庫強大且豐富,所以更多人選用 Python 編寫爬蟲。愛掏網 - it200.com

    一個新的語言出現,成熟與否,看的就是它的生態圈了,比如是否有測試框架,是否有 MVC 框架,成熟的時間庫,數據庫 SDK 等等,這些都是其必要的生態圈組成部分。愛掏網 - it200.com

    總結:

    以上的這些現象和趨勢,其實都是相輔相成的,最終成了一種良性循環。愛掏網 - it200.com這些現象和趨勢都會繼續發展下去,并成為以后新趨勢的基礎。愛掏網 - it200.com所以這些特點都是非常重要的,而且應該成為每個程序員都應該知道的知識。愛掏網 - it200.com

    一些建議:

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

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

    又想到幾個發展,這里更新一下

    1. WEB 技術的桌面化和 JavaScript 的全棧化

    JavaScript 近些年發展火熱,逐漸印證了一個 Atwood 法則:凡是可以用 JavaScript 實現的,最終都會用 JavaScript 實現

    Nodejs 的出現,奠定了 JavaScript 走出瀏覽器,走向了服務器端
    NW 的出現和 electron 正式版發布,JavaScript 走向了桌面
    MongoDB 的出現,JavaScript 走向了數據庫
    Tessel 的出現,走向了硬件和物聯網
    如今一個全棧系統,從前端到數據庫,可以完全使用 JavaScript 一種語言。愛掏網 - it200.com還有很多人正在致力于把 JavaScript 推向更多的領域中。愛掏網 - it200.com

    而 Web 技術(html+css+JavaScript)由于 NW 和 Electron 的出現,已經可以編寫桌面程序了。愛掏網 - it200.com正是由于 JS 的優秀模塊很多,以及 HTML+CSS 的界面容易編寫和掌控,糾錯工具豐富,很多人愿意用 WEB 技術進行開發。愛掏網 - it200.com現在比較火的桌面工具有 VS-Code 編輯器和 Atom 編輯器。愛掏網 - it200.com

    總結一下:由于 WEB 技術的便利性,WEB 技術涉及的領域也就越來越多,再也不是瀏覽器的專利了。愛掏網 - it200.com

    2. Web API 的全面發展

    Web API 雖然歷史悠久,但是真正使其推廣流行的應該是 Twitter,而后移動設備的普及使其得到更大發展和普及。愛掏網 - it200.com移動設備如果沒有 Web API 基本就不能工作了。愛掏網 - it200.comWeb API 的普及,也使得網絡服務之間相互連通,形成一個更大的服務網絡。愛掏網 - it200.com總之,如今的 Web API 已經是不可或缺的存在了。愛掏網 - it200.com

    Web API 更多的是一種服務,或是一種數據交換模式。愛掏網 - it200.com只要語言帶有 HTTP 的網絡訪問功能,就都能使用。愛掏網 - it200.com提供 Web API 的公司,發布 Web API 后,一般也會同時發布一些常用語言的 SDK,方便相應語言開發人員快速上手;但是如果語言比較小眾,沒有提供相應的 SDK 也沒有關系,編寫一段 HTTP 的請求,也是可以交換數據。愛掏網 - it200.com

    從編程的角度來歸納一下 Web API 特點就是:

    容易編寫,就是個函數,無需界面
    語言無關性,無論 Web API 是個語言編寫,幾乎任何語言都能調用
    訪問性好,無論在哪,只要網絡能訪問,Web API 就可以用。愛掏網 - it200.com

    3. 語言之間的相互借鑒

    語言之間的相互借鑒也越來越明顯了,比如:

    PHP5.0 后支持了類,5.4 后支持了 Trait,5.5 后支持了生成器(Generator)
    JavaScript ES6 支持了箭頭匿名函數,生成器(Generator),類(不是 Prototype 的類)
    C# 和 Java 相互借鑒
    Coffee Script 借鑒 Python 和 Ruby
    與其說是相互借鑒,不如說隨著語言的發展,一些語言概念逐漸成為了標配,如果沒有,就算是一個不完整的語言了。愛掏網 - it200.com比如說類,匿名函數,常用數據結構等都成為了標配。愛掏網 - it200.com

    4. 語言解析器的工具化

    語言解析器(Parser)在過去自是作為編譯器的一部分存在的。愛掏網 - it200.com如今,它已經獨立出來作為一個模塊或者工具來使用了,這個對于一個語言的生態有著很大的意義,促進了語言生態圈的良好發展。愛掏網 - it200.com

    獨立出來的解析器,可以用來編寫以下和語言有關的工具,這些工具都是用來優化代碼質量的,提高編碼體驗的。愛掏網 - it200.com

    語法檢查,JavaScript 的 JSHint 用的就是 JavaScript 的一個解釋器,被 JavaScript 重新解釋一遍,把可能有問題的地方標記出來通知程序員,程序員可修改避免潛在錯誤。愛掏網 - it200.com
    代碼最小化,代碼重寫的一種形式,JavaScript 的最小化項目(比如 Urglify),是把語法正確讀取后,進行最小化壓縮。愛掏網 - it200.com把單詞變量轉換成單字母變量。愛掏網 - it200.com甚至是 if else 轉換成?: 形式。愛掏網 - it200.com
    語法擾亂器,就是代碼重寫的一種形式,讓代碼無法閱讀,保護代碼。愛掏網 - it200.com
    語法整理器,代碼重新的一個形式,把無法閱讀的代碼,轉換成可閱讀的代碼,比如 beautifier。愛掏網 - it200.com
    語法高亮,一般用于代碼編輯器和代碼顯示組件的。愛掏網 - it200.com
    代碼分析器, 把可用的代碼部分進行掃描,列出代碼相關數據,比如用了多少類,多少對象,多少變量,多少全局變量等等
    代碼清理器,分析器的加強,清理不用的變量,不用的對象和,不用的函數等。愛掏網 - it200.com
    自動完成,一些 IDE 可以分析已經存在的變化和函數,以后在不斷的打字中可以智能的自動完成。愛掏網 - it200.com
    代碼追蹤,比如說某段代碼被執行了幾次,程序報錯時候,函數被執行的順序,測試程序時候的代碼覆蓋率等等
    虛擬執行,JavaScript 代碼在一個保護區域內或環境執行,代碼可以返回值,但不能影響非虛擬環境內的代碼執行。愛掏網 - it200.com比如說,代碼里面有全局變量,但是虛擬執行后這個全局變量只在虛擬環境內,非虛擬環境的沒有這個全局變量。愛掏網 - it200.com

    5. 數據交換語言的發展

    數據交換語言發展總體來說就是從 XML 主流逐漸發展到 JSON 主流的過程. 雖然 XML 現在應用還是非常廣泛,但是由于其復雜和標簽占用空間大,逐漸被輕量級的 JSON 給代替了。愛掏網 - it200.com尤其 JSON 與 JavaScript 天然兼容,無需解析,直接使用。愛掏網 - it200.com所以在很多網絡技術中 JSON 是優先使用的。愛掏網 - it200.com

    而如今很多配置文件也是用 JSON 實現的,比如 Composer 和 node 的配置文件。愛掏網 - it200.com

    JSON 的閱讀方式更符合程序員的閱讀習慣,格式化后的結構一目了然,容易理解。愛掏網 - it200.com

    JSON 好處:

    結構符合程序員閱讀習慣
    文件大小相對更小
    JavaScript 可以直接使用
    在非 JavaScript 的腳步語言中,轉化成數據結構更容易
    學習曲線很短
    正是以上這些原因,使用 JSON 作為數據交換語言可以說在編程界里,是大勢所趨了。愛掏網 - it200.com

    為了學習工作與休閑娛樂互不沖突,現新建圈【碼農茶水鋪】用于程序員生活,愛好,交友,求職招聘,吐槽等話題交流,希望各位大神工作之余到茶水鋪來喝茶聊天。愛掏網 - it200.com群號:582735936

    了解更多

    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論0 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 日韩精品无码一区二区视频| 国产一区二区三区日韩精品| 亚洲线精品一区二区三区影音先锋 | 国内精品一区二区三区最新| 波多野结衣中文一区| 精品人妻少妇一区二区三区在线 | 波多野结衣一区在线观看| 久久人妻内射无码一区三区 | 亚洲日韩国产一区二区三区在线| 精品一区二区三区| 在线精品亚洲一区二区三区| 美女一区二区三区| 日韩一区二区三区免费播放| 无码人妻一区二区三区在线视频 | 亚洲AV无码一区二区三区性色 | 中文字幕久久亚洲一区| 国产精品无码一区二区三区在| 一区二区三区四区视频| 国产在线精品一区二区在线观看| 麻豆精品一区二区综合av| 亚洲丰满熟女一区二区哦| 日本一区二区视频| 无码人妻一区二区三区兔费| 男人的天堂av亚洲一区2区 | 日韩内射美女人妻一区二区三区 | 久久se精品一区二区影院| 国产成人精品视频一区| 濑亚美莉在线视频一区| 国产精品熟女视频一区二区 | aⅴ一区二区三区无卡无码| 麻豆视频一区二区三区| 成人区人妻精品一区二区不卡视频 | 偷拍精品视频一区二区三区| 国产精品美女一区二区三区 | 国产精品一区二区电影| 亚洲第一区精品观看| 91福利视频一区| 视频一区在线免费观看| 精品国产免费一区二区三区香蕉| 亚洲成AV人片一区二区密柚| 国产综合精品一区二区三区|