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

平泉網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)。
在今天的文章中,我們將回顧出版于1972年的《表達與意義(Representation and Meaning)》,其中囊括了由1960年到1965年之間發(fā)表的多篇論文。
首先是書中2.2章節(jié)內提到的由Herbert A. Simon撰寫的《啟發(fā)式編譯器(The Heuristic Compiler)》一文:
二者的一大區(qū)別在于,我們將相對簡單的任務稱為“編碼”,而將比較廣泛且更為艱巨的任務稱為“編程”——其可能包含選擇或者設計一種適當?shù)膯栴}表達方式,而前者則不涉及這一點。
這不禁讓我想到了與測試、檢查與自動化相關的討論——特別是以下幾個問題:
- 我們無法實現(xiàn)自動化測試,但可實現(xiàn)自動化檢查。
- 我們?yōu)楹尾挥懻摼幊套詣踊?
我們無法實現(xiàn)自動化測試; 但可實現(xiàn)自動化檢查
關于編碼與編程的表達則存在著類似于檢查與測試間的關系理解。
- 編程與測試:
在廣泛性與難度上高于編碼與檢查。
涉及對適當問題加以表達的選擇與設計。
- 編碼與檢查:一種對編程或測試內已完成工作的表達。
我們?yōu)楹尾挥懻摼幊套詣踊?
之所以不討論編程自動化,是因為我們能夠進行自動編碼,具體包括:
- 代碼自動補全。
- 宏系統(tǒng)。
- 自動生成代碼注釋,即projectlombok。
- 翻譯/編譯器。
在涉及編碼時,我們往往總會想到如何以自動化方式加以實現(xiàn)。而且自存在編碼這一概念時,我們就已經(jīng)開始采用自動化機制。
我個人從業(yè)以來參與的***個項目就是利用JSP圖生成程序代碼。在該項目中,我會利用自動方式生成C與COBOL代碼。
Herbert A. Simon在這篇論文中將編程任務的自動化執(zhí)行視為一種問題解決實踐。而編碼自動化則已經(jīng)成為一種給定且理所當然的前提。
圖表
我在自己的讀書筆記中繪制了這樣一份圖表:
并在圖表中添加了以下附注信息:
- “…”代表開發(fā)并不只包含編程與測試這一事實。
- 編程與測試皆擁有自己的多個表達層——其中一些可以輕松實現(xiàn)自動化處理,另一些則必須人為介入(難以實現(xiàn)自動化)。
- 我們會對其中的“簡單”層進行自動化。
為了讓大家看得更清楚,這里我整理出了更為清晰的圖表版本:
- “-”代表每一項所謂“高級任務集”都擁有與之對應的、易于實現(xiàn)自動化的低級層(可能具備或不具備對應名稱)。
- 我在檢查表達當中添加了“斷言”一項,因為我們會對if(x==2){return false;}這類特定條件進行檢查,并在報告與監(jiān)控內容中添加相關檢查結果。我們利用這種斷言中止自動化流程的執(zhí)行。
總結
我嘗試開發(fā)一套自動化模型以作為軟件開發(fā)流程中的組成部分。這意味著我希望盡量避免被束縛在測試自動化乃至自動化這一概念本身,而應將其視為更為廣泛的開發(fā)流程內工具支持機制(而非局限于測試或者測試人員群體之內)。
我認為這種方式能夠讓人們更輕松地通過溝通確定程序員這一職能角色,因為我們不再討論自動化測試這一議題——我們實際討論的是如何對開發(fā)方法中的常規(guī)自動化流程加以延伸,具體包括:
- 在應用程序內執(zhí)行代碼流。
- 檢查結果。
- 斷言這些檢查結果。
這就是我通過計算科學的歷史文獻中發(fā)現(xiàn)的寶貴價值。也希望大家能在閑暇之時翻翻故紙堆,沒準會找到一些意外的驚喜。標題
本文標題:我們該如何將編程、測試、編碼與檢查聯(lián)系起來
文章來源:http://m.fisionsoft.com.cn/article/dpcpsip.html


咨詢
建站咨詢
