自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我們該如何將編程、測試、編碼與檢查聯(lián)系起來

譯文
開發(fā) 開發(fā)工具
盡管計算機技術(shù)一直在快速演進,但不少年代久遠(yuǎn)的相關(guān)書籍與論文仍然包含大量寶貴的指導(dǎo)性信息。編程當(dāng)中包含一個易于自動化的層,被稱為編碼——其類似于測試之于檢查。而測試與編程本身又人性于開發(fā)這一宏觀概念。

【51CTO.com快譯】盡管計算機技術(shù)一直在快速演進,但不少年代久遠(yuǎn)的相關(guān)書籍與論文仍然包含大量寶貴的指導(dǎo)性信息。編程當(dāng)中包含一個易于自動化的層,被稱為編碼——其類似于測試之于檢查。而測試與編程本身又人性于開發(fā)這一宏觀概念。

在今天的文章中,我們將回顧出版于1972年的《表達與意義(Representation and Meaning)》,其中囊括了由1960年到1965年之間發(fā)表的多篇論文。

首先是書中2.2章節(jié)內(nèi)提到的由Herbert A. Simon撰寫的《啟發(fā)式編譯器(The Heuristic Compiler)》一文:

二者的一大區(qū)別在于,我們將相對簡單的任務(wù)稱為“編碼”,而將比較廣泛且更為艱巨的任務(wù)稱為“編程”——其可能包含選擇或者設(shè)計一種適當(dāng)?shù)膯栴}表達方式,而前者則不涉及這一點。

這不禁讓我想到了與測試、檢查與自動化相關(guān)的討論——特別是以下幾個問題:

  • 我們無法實現(xiàn)自動化測試,但可實現(xiàn)自動化檢查。
  • 我們?yōu)楹尾挥懻摼幊套詣踊?

我們無法實現(xiàn)自動化測試; 但可實現(xiàn)自動化檢查

關(guān)于編碼與編程的表達則存在著類似于檢查與測試間的關(guān)系理解。

  • 編程與測試:

在廣泛性與難度上高于編碼與檢查。

涉及對適當(dāng)問題加以表達的選擇與設(shè)計。

  • 編碼與檢查:一種對編程或測試內(nèi)已完成工作的表達。

我們?yōu)楹尾挥懻摼幊套詣踊?

之所以不討論編程自動化,是因為我們能夠進行自動編碼,具體包括:

  • 代碼自動補全。
  • 宏系統(tǒng)。
  • 自動生成代碼注釋,即projectlombok。
  • 翻譯/編譯器。

在涉及編碼時,我們往往總會想到如何以自動化方式加以實現(xiàn)。而且自存在編碼這一概念時,我們就已經(jīng)開始采用自動化機制。

我個人從業(yè)以來參與的***個項目就是利用JSP圖生成程序代碼。在該項目中,我會利用自動方式生成C與COBOL代碼。

Herbert A. Simon在這篇論文中將編程任務(wù)的自動化執(zhí)行視為一種問題解決實踐。而編碼自動化則已經(jīng)成為一種給定且理所當(dāng)然的前提。

圖表

我在自己的讀書筆記中繪制了這樣一份圖表:

并在圖表中添加了以下附注信息:

  • “…”代表開發(fā)并不只包含編程與測試這一事實。
  • 編程與測試皆擁有自己的多個表達層——其中一些可以輕松實現(xiàn)自動化處理,另一些則必須人為介入(難以實現(xiàn)自動化)。
  • 我們會對其中的“簡單”層進行自動化。

為了讓大家看得更清楚,這里我整理出了更為清晰的圖表版本:

  • “-”代表每一項所謂“高級任務(wù)集”都擁有與之對應(yīng)的、易于實現(xiàn)自動化的低級層(可能具備或不具備對應(yīng)名稱)。
  • 我在檢查表達當(dāng)中添加了“斷言”一項,因為我們會對if(x==2){return false;}這類特定條件進行檢查,并在報告與監(jiān)控內(nèi)容中添加相關(guān)檢查結(jié)果。我們利用這種斷言中止自動化流程的執(zhí)行。

總結(jié)

我嘗試開發(fā)一套自動化模型以作為軟件開發(fā)流程中的組成部分。這意味著我希望盡量避免被束縛在測試自動化乃至自動化這一概念本身,而應(yīng)將其視為更為廣泛的開發(fā)流程內(nèi)工具支持機制(而非局限于測試或者測試人員群體之內(nèi))。

我認(rèn)為這種方式能夠讓人們更輕松地通過溝通確定程序員這一職能角色,因為我們不再討論自動化測試這一議題——我們實際討論的是如何對開發(fā)方法中的常規(guī)自動化流程加以延伸,具體包括:

  • 在應(yīng)用程序內(nèi)執(zhí)行代碼流。
  • 檢查結(jié)果。
  • 斷言這些檢查結(jié)果。

這就是我通過計算科學(xué)的歷史文獻中發(fā)現(xiàn)的寶貴價值。也希望大家能在閑暇之時翻翻故紙堆,沒準(zhǔn)會找到一些意外的驚喜。標(biāo)題

原文標(biāo)題:Relating Programming, Testing, Coding, and Checking  作者:Alan Richardson

【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

責(zé)任編輯:武曉燕 來源: 51CTO
相關(guān)推薦

2021-11-19 22:53:11

AR零售業(yè)技術(shù)

2022-01-13 09:21:38

黑客網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2021-04-29 15:55:51

編程IT程序員

2023-08-03 10:27:54

供應(yīng)鏈供應(yīng)鏈領(lǐng)導(dǎo)者

2017-02-28 09:02:10

科技早新聞

2015-10-16 10:48:03

Gate One嵌入Web

2022-08-19 08:00:00

OPA集成Kubernetes集群

2022-10-08 00:35:48

gRPCGuice服務(wù)器

2018-07-27 06:08:12

2020-08-21 10:59:10

微軟服務(wù)器運維

2020-01-15 12:03:03

優(yōu)化架構(gòu)性能

2009-11-09 10:39:35

2014-01-22 09:25:44

2020-06-20 14:15:53

信息安全數(shù)據(jù)技術(shù)

2011-08-17 09:18:11

項目管理

2013-10-17 09:37:07

2022-04-23 10:55:51

存儲AI/ML對象鎖定

2018-06-23 13:55:15

Apache SparPython數(shù)據(jù)

2019-06-06 16:00:49

深度學(xué)習(xí)癌癥人工智能

2011-09-23 09:46:09

軟件項目
點贊
收藏

51CTO技術(shù)棧公眾號