亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        軟件編程技術(shù)水平的標(biāo)志性關(guān)鍵點(diǎn)分析與應(yīng)用

        2017-12-07 02:03:46劉振興
        軟件 2017年11期
        關(guān)鍵詞:編程技術(shù)編程語(yǔ)言開(kāi)發(fā)人員

        劉振興

        (亮月亮科技(北京)有限公司,北京 101100)

        軟件編程技術(shù)水平的標(biāo)志性關(guān)鍵點(diǎn)分析與應(yīng)用

        劉振興

        (亮月亮科技(北京)有限公司,北京 101100)

        軟件編程技術(shù)水平的考評(píng)與分級(jí)是困難的, 同時(shí)也是必要的。本文在相關(guān)文獻(xiàn)檢索和經(jīng)驗(yàn)總結(jié)的基礎(chǔ)上提出了軟件編程技術(shù)水平的三個(gè)具有標(biāo)志性的關(guān)鍵點(diǎn)并逐一對(duì)其進(jìn)行簡(jiǎn)述和應(yīng)用分析. 這三個(gè)分水嶺一樣的關(guān)鍵點(diǎn)是正則表達(dá)式、軟件開(kāi)發(fā)框架的掌握與運(yùn)用和現(xiàn)實(shí)世界問(wèn)題數(shù)學(xué)模型創(chuàng)建技能的掌握與運(yùn)用。與之對(duì)應(yīng)地我們稱(chēng)呼具備相應(yīng)技能水平的人員為工程師、高級(jí)工程師和技術(shù)專(zhuān)家。

        軟件編程;技術(shù)水平;正則表達(dá)式;軟件開(kāi)發(fā)框架;數(shù)學(xué)建模

        0 引言

        計(jì)算機(jī)專(zhuān)業(yè)及軟件產(chǎn)業(yè)屬知識(shí)密集型領(lǐng)域,其中最重要的資源是人力資源,軟件開(kāi)發(fā)人才的培養(yǎng)與甄選日益重要。同時(shí),傳統(tǒng)軟件行業(yè)的快速發(fā)展疊加移動(dòng)互聯(lián)網(wǎng)、互聯(lián)網(wǎng)+、人工智能戰(zhàn)略布局穩(wěn)步推進(jìn),催生了大量的軟件開(kāi)發(fā)從業(yè)人員。對(duì)軟件編程水平及能力的評(píng)估是一件復(fù)雜而又嚴(yán)肅的事情(-R/02SI,[1-2]),出于對(duì)自身或者同行技術(shù)能力的評(píng)估需求[3],也需要在某些方面從某種程度上,對(duì)編程水平及能力有些大概粗略的感性認(rèn)識(shí)。關(guān)于軟件工程美國(guó) IBM 公司的軟件技術(shù)專(zhuān)家布魯克斯(Frederick Brooks)在其論文中提到軟件編程受目標(biāo)任務(wù)的復(fù)雜度、一致性、可變性和不可見(jiàn)性的約束,在各種約束條件下取得均衡和達(dá)成目標(biāo)就是對(duì)軟件編程技術(shù)及水平的考察與驗(yàn)證[4-5]。

        IT行業(yè)技術(shù)巨頭往往會(huì)開(kāi)展一些編程技術(shù)水平認(rèn)證,如微軟公司的MSDN,思科公司的CCIE等;一些行業(yè)學(xué)會(huì)、協(xié)會(huì)也會(huì)推出一些編程技術(shù)水平認(rèn)證,如美國(guó) IEEE下計(jì)算機(jī)協(xié)會(huì)的各種認(rèn)證和中國(guó)計(jì)算機(jī)學(xué)會(huì)的“CCF計(jì)算機(jī)職業(yè)資格認(rèn)證”[6]。這些認(rèn)證往往是基于某些廠(chǎng)商自家產(chǎn)品或者囿于特定領(lǐng)域的認(rèn)證。是否有通用的可供參考的軟件編程水平的參考標(biāo)準(zhǔn)?帶著這個(gè)疑問(wèn),我們進(jìn)行一些文獻(xiàn)檢索,同時(shí)結(jié)合我們多年學(xué)習(xí)、工作中編程實(shí)踐、思考與經(jīng)驗(yàn)總結(jié),在本文如下部分提供如下三點(diǎn)作為軟件編程技術(shù)水平的參考。

        中國(guó)近代學(xué)者王國(guó)維將做學(xué)問(wèn)的狀況劃分為三個(gè)境界,分別是“望盡天涯路”、“為伊消得人憔悴”和“那人卻在燈火闌珊處”。寫(xiě)程序研發(fā)軟件也有如下三個(gè)具有標(biāo)志性的關(guān)鍵點(diǎn),我們稱(chēng)之為軟件編程的三個(gè)分水嶺一樣的標(biāo)志性關(guān)鍵點(diǎn),他們分別是正則表達(dá)式的運(yùn)用、軟件開(kāi)發(fā)框架的掌握與運(yùn)用和現(xiàn)實(shí)問(wèn)題數(shù)學(xué)建模的掌握與運(yùn)用。

        余下的章節(jié)中,第二節(jié)我們討論了正則表達(dá)式及模式識(shí)別相關(guān)的理論及技術(shù)應(yīng)用,第三節(jié)討論了軟件開(kāi)發(fā)框架在軟件研發(fā)及其生命周期中的地位及作用,第四節(jié)討論了針對(duì)現(xiàn)實(shí)世界問(wèn)題進(jìn)行數(shù)學(xué)模型創(chuàng)建的相關(guān)應(yīng)用,然后是針對(duì)全文的總結(jié)和展望。

        1 正則表達(dá)式

        正則表達(dá)式(Regular Expression)使用單個(gè)字符串來(lái)描述、匹配一系列符合某個(gè)句法規(guī)則的字符串,可以視之為狹義上的模式識(shí)別(Pattern Recognition),也可以將其視作在某種編程語(yǔ)言下的子類(lèi)語(yǔ)言——用來(lái)描述其他語(yǔ)言的“語(yǔ)法”。使用它有一定的難度,句法全由符號(hào)表達(dá),看起來(lái)抽象,可讀性差,不容易理解。比如:

        /^([0-9]{1,6})$/g

        表示任意1位到6位的數(shù)字,也即0~999999 ,在匹配結(jié)果集中,將反向引用被匹配到的數(shù)字串,

        /^(d{1,6})$/

        表示與前文相關(guān)的語(yǔ)法。下圖(圖 1)展示一個(gè)正則表達(dá)式工作機(jī)制的應(yīng)用程序[6],將前述正則表達(dá)式輸入到“Regular Expression”相關(guān)區(qū)域,在“Test String”里輸入相應(yīng)待檢測(cè)、匹配的文字,則下面“Match Information”區(qū)域會(huì)顯示匹配過(guò)程及結(jié)果。

        圖1 正則表達(dá)式匹配樣例Fig.1 Example of regular expression

        正則表達(dá)式被廣泛的應(yīng)用于很多軟件中,包括*nix(Linux, Unix等)、HP等操作系統(tǒng),PHP、C#、Java 等開(kāi)發(fā)環(huán)境,以及很多的應(yīng)用軟件中,都可以看到正則表達(dá)式的影子。如對(duì)外部輸入的校驗(yàn)、提取,對(duì)目標(biāo)對(duì)象的格式化等。

        每種編程語(yǔ)言在進(jìn)階開(kāi)發(fā)和使用時(shí)都有不少需要特別關(guān)注的地方,如指針、內(nèi)存、鏈表和樹(shù)、正則匹配等,若在這些不同的語(yǔ)言之間尋找共性的進(jìn)階開(kāi)發(fā)所需掌握的技能,則正則表達(dá)式是其中關(guān)鍵點(diǎn)之一。

        掌握了某種編程語(yǔ)言的基本數(shù)據(jù)結(jié)構(gòu)和流程控制之后,一名軟件工程師(或稱(chēng)程序員)若能夠運(yùn)用某種編程語(yǔ)言進(jìn)行讀寫(xiě)文件、數(shù)據(jù)庫(kù)和通過(guò)網(wǎng)絡(luò)收發(fā)數(shù)據(jù),則其就是一名合格的軟件工程師。具備這樣素質(zhì)的人可以勝任一般的軟件開(kāi)發(fā)任務(wù),能夠面向任務(wù)較好地完成給定的軟件開(kāi)發(fā)需求,實(shí)現(xiàn)相應(yīng)的功能。

        由于計(jì)算機(jī)科學(xué)興起之處,其主要應(yīng)用是對(duì)數(shù)據(jù)和文本的處理,所以正則表達(dá)式成為進(jìn)階開(kāi)發(fā)的必由之路也在情理之中。初階的開(kāi)發(fā)人員往往止步于使用字符串查找、分割等方式來(lái)部分地完成相應(yīng)功能。

        正則表達(dá)式本身就是一門(mén)學(xué)問(wèn),已經(jīng)有很多書(shū)籍專(zhuān)門(mén)就此展開(kāi)詳述,其中有本《精通正則表達(dá)式》(Mastering Regular Expressions)的書(shū)[8],在豆瓣網(wǎng)有一個(gè)廣為贊許的評(píng)價(jià)為面向“愿意從一個(gè)代碼工人向?qū)<疫M(jìn)化的”(-R/A2SI )。

        相比較而言,掌握和熟練使用正則表達(dá)式工具的軟件編程人員能夠高效而準(zhǔn)確地實(shí)現(xiàn)相應(yīng)的功能,我們稱(chēng)之為第一個(gè)分水嶺。

        2 軟件開(kāi)發(fā)框架

        軟件開(kāi)發(fā)框架(Software Development Framework)軟件開(kāi)發(fā)框架(Framework)是代碼組織和軟件邏輯實(shí)現(xiàn)的思考方式。這種思考更多的是“管理”的視角,而非計(jì)算科學(xué)技術(shù)的視角。這種管理的方式是建立在對(duì)軟件編程技術(shù)較深入、全面理解的基礎(chǔ)上的。一般意義上的軟件框架,是指為解決一個(gè)開(kāi)放性的計(jì)算問(wèn)題而設(shè)計(jì)的具有一定約束性的軟件支撐結(jié)構(gòu)。在此結(jié)構(gòu)上可以根據(jù)具體問(wèn)題擴(kuò)展、安插更多的組成部分,從而更迅速和方便地構(gòu)建完整的解決問(wèn)題的IT技術(shù)方案[9-12]。軟件框架本質(zhì)上是整個(gè)或部分系統(tǒng)的可重用設(shè)計(jì),表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實(shí)例間交互的方法。簡(jiǎn)而言之,是構(gòu)建結(jié)構(gòu)及實(shí)例交互方法的結(jié)合體。

        一名軟件編程人員在掌握了某一種編程語(yǔ)言之后,隨著所解決的單個(gè)、多個(gè)任務(wù)的積累,終將會(huì)面臨一個(gè)復(fù)雜任務(wù)——任務(wù)復(fù)雜到不能通過(guò)一個(gè)或幾個(gè)小程序能夠?qū)崿F(xiàn)和滿(mǎn)足其功能,這時(shí)候就需要從整體上思考,需要多少個(gè)程序(模塊),這些程序和模塊之間如何交互軟件框架就是要回答這些問(wèn)題。

        2.1 軟件開(kāi)發(fā)框架的特征

        軟件框架是成功軟件項(xiàng)目的一般化實(shí)現(xiàn)。進(jìn)入視野或者進(jìn)行開(kāi)源的多數(shù)軟件框架都經(jīng)歷過(guò)一個(gè)或者多個(gè)成功項(xiàng)目的檢驗(yàn),是成功經(jīng)驗(yàn)的積累。軟件編程者當(dāng)完成一個(gè)項(xiàng)目后,如果發(fā)現(xiàn)項(xiàng)目本身有可以進(jìn)行一般化處理的代碼段或功能模塊,會(huì)對(duì)其進(jìn)行封裝以便后續(xù)使用,軟件的組成架構(gòu)設(shè)計(jì)也是這樣,當(dāng)發(fā)現(xiàn)所用的設(shè)計(jì)具有一般性后,就可以在隨后的項(xiàng)目中繼續(xù)使用,繼而形成“框架”??蚣懿灰欢ǘ奸_(kāi)源,一些私有的或者基于開(kāi)源定制的框架可能在某些方面具有更好的表現(xiàn)。

        軟件框架普遍實(shí)現(xiàn)了關(guān)注點(diǎn)分離設(shè)計(jì)(Separation of Concerns)和代碼復(fù)用(Code Resue)。分離關(guān)注點(diǎn)使得解決特定領(lǐng)域問(wèn)題的代碼從業(yè)務(wù)邏輯中獨(dú)立出來(lái),業(yè)務(wù)邏輯的代碼中不再含有針對(duì)特定領(lǐng)域問(wèn)題代碼的調(diào)用,業(yè)務(wù)邏輯同特定領(lǐng)域問(wèn)題的關(guān)系通過(guò)側(cè)面來(lái)封裝、維護(hù),這樣原本分散在整個(gè)應(yīng)用程序中的變動(dòng)就可以很好的管理起來(lái),如常見(jiàn)的MVC分層設(shè)計(jì)(模塊Module、視圖View和控制器Controller)。

        代碼復(fù)用本質(zhì)上就是對(duì)曾經(jīng)編寫(xiě)過(guò)的程序代碼的一部分甚至全部重新加以利用,從而構(gòu)建新的程序。使用這種方法就可以將程序員從費(fèi)時(shí)費(fèi)力的重復(fù)勞動(dòng)中解放出來(lái)??蚣埽?lèi)庫(kù))是一種代碼復(fù)用的很好的形式。編程人員可以創(chuàng)建內(nèi)部抽象以便程序的部分代碼可被復(fù)用,或者直接創(chuàng)建一個(gè)自定義庫(kù)給自己使用。一個(gè)規(guī)劃和設(shè)計(jì)良好的框架應(yīng)該是實(shí)現(xiàn)了上述兩點(diǎn)。

        圖2 架構(gòu)設(shè)計(jì)中的關(guān)注點(diǎn)分離Fig.2 Separation of concerns in framework design

        清晰的關(guān)注點(diǎn)分離和高效的代碼復(fù)用是避免軟件項(xiàng)目陷入泥潭(the ball of mud)的基礎(chǔ)和前提,也是軟件項(xiàng)目成功的保證。

        2.2 跨語(yǔ)言的軟件開(kāi)發(fā)框架

        各種編程語(yǔ)言分別有許多不同的軟件框架。例如,C++編程語(yǔ)言的框架(類(lèi)庫(kù))有.Net、STL、Boost、Qt、MFC等;Java編程語(yǔ)言的框架有Structs、JSF、Spring MVC、Wicket、Stripes、Seam、GWA2 等;PHP編程語(yǔ)言的框架有Zend Framework、Yii、Code Igniter、Lavarel、Symfony2、GWA2 等;JavaScript編程語(yǔ)言的開(kāi)發(fā)框架有Angular.js、Backbone.js、D3、jQuery.js、React.js等。

        一個(gè)軟件開(kāi)發(fā)框架一般都與所使用的某種編程語(yǔ)言高度綁定。這一方面是框架需要高度復(fù)合利用了編程語(yǔ)言的特性,使之能夠在該框架下將其性能發(fā)揮至極致;另一方面是框架的開(kāi)發(fā)者和使用者需要具備指定開(kāi)發(fā)語(yǔ)言的軟件編程的基本知識(shí)。在此之外,也有為數(shù)不多的跨編程語(yǔ)言的軟件開(kāi)發(fā)框架,比如上文提到的“通用網(wǎng)絡(luò)應(yīng)用架構(gòu)(GWA2)[13]”——提出一種軟件架構(gòu)思路,然后分別使用 Java、PHP、Perl、C#等語(yǔ)言進(jìn)行實(shí)現(xiàn),從而有了針對(duì)各個(gè)編程語(yǔ)言的軟件開(kāi)發(fā)框架的版本。軟件開(kāi)發(fā)人員在其中一門(mén)編程語(yǔ)言下使用GWA2之后,可以無(wú)縫平滑地切換到另外一種開(kāi)發(fā)語(yǔ)言繼續(xù)使用對(duì)應(yīng)版本的GWA2進(jìn)行開(kāi)發(fā),重新學(xué)習(xí)成本降低為幾乎為零。

        通常軟件編程對(duì)軟件框架的應(yīng)用可以分為兩類(lèi):學(xué)習(xí)和使用一種軟件框架,或者自行開(kāi)發(fā)一套軟件框架。學(xué)習(xí)有學(xué)習(xí)的成本[14],開(kāi)發(fā)也有相應(yīng)的開(kāi)發(fā)風(fēng)險(xiǎn)。顯然,前者會(huì)更多一些,許多軟件編寫(xiě)都是遵循某種軟件框架而進(jìn)行的。對(duì)軟件框架和類(lèi)庫(kù)應(yīng)該持有某種謹(jǐn)慎的態(tài)度,我們?cè)谠缜搬槍?duì)JavaScript編程的框架做過(guò)一些分析(《自行創(chuàng)建類(lèi)jQuery 的 JavaScript庫(kù)》, -R/02SH,[15]),在學(xué)習(xí)成本、需求匹配度和框架性能三個(gè)方面需要做一些權(quán)衡。

        相比較而言,我們推薦使用具有跨語(yǔ)言特性的軟件開(kāi)發(fā)框架,由于軟件技術(shù)自身發(fā)展和開(kāi)發(fā)人員自身成長(zhǎng)是日新月異的,所處的時(shí)空變換要求每一名開(kāi)發(fā)人員要掌握兩種以上軟件開(kāi)發(fā)語(yǔ)言,相應(yīng)地,如果其所依賴(lài)和學(xué)習(xí)的軟件開(kāi)發(fā)框架沒(méi)有跨語(yǔ)言特性,則軟件開(kāi)發(fā)人員就需要付出兩倍的學(xué)習(xí)成本;相反地,如果開(kāi)發(fā)人員使用的是具有跨語(yǔ)言特性的開(kāi)發(fā)框架,如上所述的 GWA2,則可以平滑無(wú)縫地切換到新編程語(yǔ)言中去,無(wú)需再?gòu)牧汩_(kāi)始學(xué)習(xí)另外一種軟件開(kāi)發(fā)框架。

        圖3 GW A2多層架構(gòu)設(shè)計(jì)(DBA)Fig.3 Multiple layers in GWA2 (DBA)

        像武學(xué)的拳術(shù)一樣,一招一式組成一套拳法,也像文學(xué)的八股一樣,起承轉(zhuǎn)合組成一篇文字,軟件編程中的這套拳法就是“框架”。軟件框架沒(méi)有好壞,或者都是“好的”,使用者所需工作是尋找“合適的”,因時(shí)因地使用能夠滿(mǎn)足業(yè)務(wù)需求的框架就是合適的,是好的,既要避免不足(Underqualified),也要考慮不會(huì)多余(Overqualified)。

        我們將軟件編程的第二個(gè)分水嶺視為使用軟件框架進(jìn)行開(kāi)發(fā)。無(wú)論是學(xué)習(xí)一個(gè)現(xiàn)有的軟件框架或者開(kāi)發(fā)一個(gè)全新的框架,都需要完整的軟件框架知識(shí)。開(kāi)發(fā)一個(gè)全新的框架需要知識(shí)、勇氣和精力,而學(xué)習(xí)一個(gè)現(xiàn)有的框架其應(yīng)用水平該如何來(lái)衡量呢?是否對(duì)原軟件框架的源代碼遞交過(guò)Bug或做過(guò)修改、打過(guò)補(bǔ)丁,這是在讀懂源代碼的基礎(chǔ)上對(duì)軟件框架有進(jìn)一步提升的動(dòng)議。

        3 現(xiàn)實(shí)問(wèn)題數(shù)學(xué)建模

        學(xué)習(xí)計(jì)算科學(xué)與技術(shù),在掌握了基本的學(xué)科知識(shí)之后,應(yīng)用層面所面臨的專(zhuān)業(yè)細(xì)化就是使用計(jì)算機(jī)進(jìn)行文本分析與處理,進(jìn)行圖像的分析與處理,對(duì)音頻的分析與處理。對(duì)文本、圖像和音頻的計(jì)算是三個(gè)主要方向,后續(xù)可能還有機(jī)器學(xué)習(xí)或者人工智能,這些是使用計(jì)算機(jī)技術(shù)解決現(xiàn)實(shí)客觀(guān)世界的主要方法和途徑。本質(zhì)上看,作為人工智能的代表方法之一機(jī)器學(xué)習(xí)就是計(jì)算機(jī)利用輸入的樣本,調(diào)整一個(gè)通用數(shù)學(xué)模型的參數(shù),使得這個(gè)模型能正確地回應(yīng)新的輸入[16]。

        在掌握了某一種編程需要的單個(gè)程序應(yīng)用,熟悉了由多個(gè)程序組成的軟件項(xiàng)目的組織結(jié)構(gòu)和運(yùn)行流程,接下來(lái)就是使用這些知識(shí)和技能解決現(xiàn)實(shí)世界的問(wèn)題。對(duì)現(xiàn)實(shí)世界的問(wèn)題進(jìn)行數(shù)學(xué)建模是主要方法之一,這樣才能對(duì)問(wèn)題進(jìn)行計(jì)算。

        具有一定的數(shù)學(xué)思維是進(jìn)行數(shù)學(xué)建模的前提。觀(guān)察客觀(guān)世界的現(xiàn)象,抓住其主要特征,抽象出概念或者建立模型;進(jìn)行探索,通過(guò)直覺(jué)判斷或者歸納推理、類(lèi)比推理以及聯(lián)想等作出猜測(cè);然后進(jìn)行深入分析和邏輯推理以及計(jì)算,揭示事物的內(nèi)在規(guī)律,從而使紛繁復(fù)雜的現(xiàn)象變得井然有序。這其中進(jìn)行分析、推理和計(jì)算的過(guò)程,就需要借助計(jì)算機(jī)進(jìn)行軟件編程。

        計(jì)算機(jī)領(lǐng)域的實(shí)際問(wèn)題數(shù)學(xué)建模(Mathematical Modeling)需要根據(jù)現(xiàn)實(shí)問(wèn)題設(shè)計(jì)相應(yīng)的算法(計(jì)算過(guò)程),求解描述實(shí)際問(wèn)題的數(shù)學(xué)公式、函數(shù)等,進(jìn)而通過(guò)這些數(shù)學(xué)公式、函數(shù)解釋、驗(yàn)證實(shí)際問(wèn)題,對(duì)當(dāng)下進(jìn)行計(jì)算,對(duì)未來(lái)進(jìn)行分析、預(yù)測(cè)等[17]。這類(lèi)知識(shí)、規(guī)律的發(fā)現(xiàn)越來(lái)廣泛應(yīng)用到各種個(gè)性化、智能化服務(wù)當(dāng)中。

        圖4 數(shù)學(xué)建模的邏輯表述Fig.4 Mathematical modeling in logic representation

        基于全樣本的大數(shù)據(jù)集,運(yùn)用測(cè)試分析方法開(kāi)展的機(jī)器學(xué)習(xí)、人工智能等越來(lái)越多的被應(yīng)用到各種軟件編程應(yīng)用場(chǎng)景。利用機(jī)器使用測(cè)試分析方法逐漸取代人工的機(jī)理分析,成為發(fā)現(xiàn)知識(shí)和規(guī)律的主要途徑之一。

        問(wèn)題建模是將現(xiàn)實(shí)問(wèn)題簡(jiǎn)化,使其變成“可計(jì)算”,然后使用編程將可計(jì)算的部分以軟件功能的形式表現(xiàn)出來(lái)。編程是建模實(shí)現(xiàn)的一種重要工具和手段,針對(duì)問(wèn)題進(jìn)行數(shù)據(jù)建模后的擬合、仿真和計(jì)算過(guò)程才是軟件編程大展身手的地方。在數(shù)學(xué)建模的實(shí)踐中,幾乎沒(méi)有哪個(gè)模型是不需要用到如MatLab、SPSS、Lingo、C/C++或Python這樣的編程工具的。這些將我們用數(shù)學(xué)語(yǔ)言描述的問(wèn)題再通過(guò)計(jì)算機(jī)來(lái)實(shí)現(xiàn),編制良好的程序確實(shí)能極大地幫助我們模型的實(shí)現(xiàn),甚至取得更好的效用。

        網(wǎng)絡(luò)發(fā)展的如此迅速,一些IT公司會(huì)面臨各種實(shí)際問(wèn)題需要進(jìn)行數(shù)學(xué)建模,而這些互聯(lián)網(wǎng)公司往往沒(méi)有數(shù)學(xué)專(zhuān)家,只有計(jì)算科學(xué)與技術(shù)專(zhuān)家,這就需要此前從事軟件編程工作的人員對(duì)實(shí)際問(wèn)題進(jìn)行數(shù)學(xué)建模,并使用軟件編程來(lái)實(shí)現(xiàn)它。IT公司面臨的問(wèn)題既有其本身發(fā)展的需要產(chǎn)生的,也由全社會(huì)發(fā)展面臨的難題。機(jī)器翻譯是這樣的,人臉識(shí)別、人工智能都是這樣的。逐漸多的,面向各種問(wèn)題的“算法”工程師、技術(shù)專(zhuān)家的需求量增加,正是這一趨勢(shì)的發(fā)展現(xiàn)象。

        能不能對(duì)現(xiàn)實(shí)世界的實(shí)際問(wèn)題進(jìn)行數(shù)學(xué)建模,成為我們稱(chēng)之為第三個(gè)分水嶺的關(guān)鍵點(diǎn)。

        4 結(jié)論與展望

        本文簡(jiǎn)要分析了軟件編程技術(shù)水平的三個(gè)具有標(biāo)志性的關(guān)鍵點(diǎn)——正則表達(dá)式、軟件開(kāi)發(fā)框架和數(shù)學(xué)建模。這些分水嶺似的關(guān)鍵點(diǎn)有助于軟件開(kāi)發(fā)人員甄選,也對(duì)軟件開(kāi)發(fā)人員自身水平認(rèn)識(shí)起到一定的參考作用。同時(shí),這些知識(shí)點(diǎn)也能夠從另外一些方面引導(dǎo)軟件編程、開(kāi)發(fā)人員盡快、盡早的掌握這些知識(shí)和技能,提升自身知識(shí)水平。

        對(duì)軟件編程的技能對(duì)計(jì)算科學(xué)與技術(shù)的水平進(jìn)行分層分級(jí)是困難的,我們就此列出的三個(gè)具有標(biāo)志性意義的考察點(diǎn)在某些場(chǎng)合并不適用。然而,在一般意義上來(lái)說(shuō),能夠熟練掌握正則表達(dá)式、能夠掌握并對(duì)已有軟件框架進(jìn)行修正或者開(kāi)發(fā)一種軟件框架我們將之視為高級(jí)計(jì)算技術(shù)人員;能夠?qū)ΜF(xiàn)實(shí)世界需求問(wèn)題進(jìn)行數(shù)學(xué)建模,并將其映射為軟件應(yīng)用,我們稱(chēng)之為技術(shù)專(zhuān)家。

        計(jì)算機(jī)及軟件行業(yè)在不斷發(fā)展變化中。一些編程語(yǔ)言或者編程工具會(huì)隨著整體發(fā)展或日益完善或日漸凋零,只有那些隱藏在編程技能背后的原理與思想保持不變,并隨著技術(shù)的進(jìn)步以另外一種編程語(yǔ)言或表現(xiàn)形式再次出現(xiàn)在軟件研發(fā)行業(yè)。

        因此,對(duì)軟件編程技術(shù)水平的考評(píng)既不能以某一個(gè)廠(chǎng)商的某種產(chǎn)品為基準(zhǔn),也不能以一時(shí)的技術(shù)平臺(tái)或編程工具為依托,從技術(shù)或技能背后的編程原理、編程思想來(lái)設(shè)計(jì)相應(yīng)的考評(píng)體系更能夠全面整體地反映出從業(yè)人員的真實(shí)水平,也許未來(lái)可能有其他等同于正則表達(dá)式等這三點(diǎn)的參考標(biāo)志出現(xiàn)。

        [1] 中國(guó)計(jì)算機(jī)技術(shù)職業(yè)資格網(wǎng), “計(jì)算機(jī)技術(shù)與軟件專(zhuān)業(yè)技術(shù)資格(水平)考試簡(jiǎn)介,”10 2015. [聯(lián)機(jī)]. Available:http://www.ruankao.org.cn/focusExam/ksjs/detail/news-0000 5/. [訪(fǎng)問(wèn)日期: 09 2017].

        [2] 李二霞, 軟件編程高端人才效標(biāo)群體研究, 西南大學(xué), 2010.

        [3] 馮向科,鄧瑩,彭勇, “高職軟件技術(shù)專(zhuān)業(yè)學(xué)生的面向?qū)ο蠓治?、設(shè)計(jì)和編程能力培養(yǎng)的研究,” 科教導(dǎo)刊, 卷 28,pp. 41-42, 2011.

        [4] 布魯克斯(FrederickP.Brooks.Jr.), “沒(méi)有銀彈-軟件工程中的根本和次要問(wèn)題,”出處人月神話(huà), 北京, 清華大學(xué)出版社, 2002.

        [5] 李娜, “淺談軟件工程技術(shù)發(fā)展,”軟件, pp. 204-205, 03 2014.

        [6] 中國(guó)計(jì)算機(jī)學(xué)會(huì), “CCF計(jì)算機(jī)職業(yè)資格認(rèn)證簡(jiǎn)介,” 02 2014. [聯(lián)機(jī)]. Available: http://cspro.org/lead/info.do?__action=info_view&catalog=notice&id=hrvnsypp-1gg&__for ward=true. [訪(fǎng)問(wèn)日期: 09 2017].

        [7] F. Dib, “Regular Expression 101,” 08 2012. [聯(lián)機(jī)]. Available:https://regex101.com/. [訪(fǎng)問(wèn)日期: 09 2017].

        [8] J. E·F·Friedl, 精通正則表達(dá)式(Mastering regular expressions),第三版, 北京: 電子工業(yè)出版社, 2007.

        [9] D. Riehle 和 T. Gross, “Role Model Based Framework Design and Integration,” 出處 Proceedings of the 1998 Conference on OOP Systems, Languages and Applications, ACM Press, 1998.

        [10] 袁立國(guó), 陳中育, 李方 和 郭婷, “一種軟件開(kāi)發(fā)框架的設(shè)計(jì)優(yōu)化,” 計(jì)算機(jī)系統(tǒng)應(yīng)用, 卷 22, 編號(hào) 5, pp. 70-74, 2013.

        [11] O. Vogel, I. Arnold, A. Chughtai 和 T. Kehrer, Software Architecture: A Comprehensive Framework and Guide for Practitioners, Heidelberg, Germany: Springer Science &Business Media, 2011.

        [12] 張合 和 劉小紅, “面向?qū)ο蟮膶?duì)象建模技術(shù)及其應(yīng)用研究,” 軟件, pp. 66-68+72, 03 2011.

        [13] 劉振興, “GWA2,” UFQI.COM, 11 2011. [聯(lián)機(jī)]. Available:https://ufqi.com/dev/gwa2/?_via=-naturedns. [訪(fǎng)問(wèn)日期: 09 2017].

        [14] 金旭亮, “如何學(xué)習(xí)復(fù)雜的軟件技術(shù)開(kāi)發(fā)框架?,” 07 2017.[聯(lián)機(jī)]. Available: https://weibo.com/ttarticle/p/show?id=2309404135192531986821#_0. [訪(fǎng)問(wèn)日期: 09 2017].

        [15] 劉振興 和 張楠, “自行創(chuàng)建類(lèi)jQuery的JavaScript庫(kù),” 中國(guó)計(jì)算機(jī)學(xué)會(huì)通訊, 卷 06, 編號(hào) 6, 2013.

        [16] 應(yīng)行仁, “什么是機(jī)器學(xué)習(xí),” 中國(guó)計(jì)算機(jī)學(xué)會(huì)通訊, pp.42-45, 04 2017.

        [17] 謝金星 和 姜啟源, “清華大學(xué)公開(kāi)課:數(shù)學(xué)模型-現(xiàn)實(shí)世界的理性視角,” 網(wǎng)易公開(kāi)課, 04 2013. [聯(lián)機(jī)]. Available:http://open.163.com/movie/2013/4/9/6/M98EVI91I_M98PE9 E96.html. [訪(fǎng)問(wèn)日期: 09 2017].

        An Analysis on Key Points of Software Programming Technology Level

        LIU Zhen-xing(LYL Sci&Tech (Beijing) Ltd., Beijing 101100, China)

        It is not only difficult but also necessary for software programming technology level of assessment and classification in software industry and Internet+ sectors. Based on the related literature search and directional experience, this paper puts forward three key points of software programming technology level and analyzes them briefly on their applications one by one. The watershed-like three points are regular expression, the mastery and application of the software development framework and the mastery and application of the creation of skills in the mathematical model of the real world. Correspondingly, we call them with the appropriate level of skills as the engineers, senior engineers and technical experts.

        Software programming; Technology level; Regular expression; Software framework; Mathematical modelling

        TP311.5

        A

        10.3969/j.issn.1003-6970.2017.11.036

        本文著錄格式:劉振興. 軟件編程技術(shù)水平的標(biāo)志性關(guān)鍵點(diǎn)分析與應(yīng)用[J]. 軟件,2017,38(11):191-195

        劉振興(1977-),男,碩士研究生,原人民網(wǎng)研究院網(wǎng)絡(luò)技術(shù)研究員,中國(guó)計(jì)算機(jī)學(xué)會(huì)會(huì)員(14229M),主要研究領(lǐng)域:計(jì)算機(jī)網(wǎng)絡(luò)通信協(xié)議、互聯(lián)網(wǎng)后臺(tái)支撐技術(shù)和網(wǎng)絡(luò)架構(gòu)與安全等。

        猜你喜歡
        編程技術(shù)編程語(yǔ)言開(kāi)發(fā)人員
        壓力-體積轉(zhuǎn)換在CFC編程語(yǔ)言中的實(shí)現(xiàn)解析
        復(fù)雜零件的數(shù)控加工工藝及編程技術(shù)分析
        Java編程語(yǔ)言的特點(diǎn)與應(yīng)用
        Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
        淺談不同編程語(yǔ)言對(duì)計(jì)算機(jī)軟件開(kāi)發(fā)的影響
        電子制作(2018年1期)2018-04-04 01:48:36
        基于計(jì)算機(jī)軟件工程的數(shù)據(jù)庫(kù)編程技術(shù)
        C語(yǔ)言編程技術(shù)的分析研究
        面向?qū)ο骔eb開(kāi)發(fā)編程語(yǔ)言的的評(píng)估方法
        JDBC數(shù)據(jù)庫(kù)編程技術(shù)
        讓W(xué)indows 10進(jìn)入開(kāi)發(fā)者模式
        電腦迷(2015年12期)2015-04-29 23:22:51
        在线观看精品国产福利片100| 国产精品vⅰdeoxxxx国产| av一区二区三区人妻少妇| 亚洲va欧美va| 人妻少妇无乱码中文字幕| 高清日韩av在线免费观看 | 亚洲一级黄色毛片| 国产精品毛片大尺度激情| 国产av剧情刺激对白| 亚洲a∨国产av综合av下载| 日韩毛片在线| 日韩人妻中文字幕一区二区| 九九久久精品国产免费av| 欧美人妻少妇精品久久黑人| 91精品国产综合成人| 偷拍女厕尿尿在线免费看| 久久久中文字幕日韩精品| 亚洲av无码专区在线播放| 水蜜桃久久| 日韩乱码精品中文字幕不卡| 国产精品一区二区三区自拍| 久久久无码人妻精品一区| 国产AV无码专区亚洲AV桃花庵| 久久偷拍国内亚洲青青草| 公和我做好爽添厨房| 国产超碰人人模人人爽人人喊| 在线国产视频精品视频| 国产人妖伦理视频在线观看 | 漂亮人妻出轨中文字幕| 成人精品视频一区二区| 精品国产看高清国产毛片| 天堂av中文在线官网| 综合图区亚洲另类偷窥| 人人妻人人澡人人爽欧美二区| 成人在线免费视频亚洲| 少妇被啪出水在线视频| 亚洲av无码专区在线观看成人| 三级网址在线| 精品日韩av专区一区二区| 成 人色 网 站 欧美大片在线观看| 国产无套护士在线观看|