最近學生報告了一篇有趣的論文。研究團隊開發了一個系統 CodeConjurer(程式碼魔術師),說的是可以憑空產生的程式碼。你會想,這怎麼可能? 它的原理很簡單,首先各位都知道 google 搜尋引擎可以去找全世界網頁的資料,其實還有許多是針對程式碼的搜尋引擎。例如 Merobase。研究團隊利用 Merobase 到一些 opensouce 的地方(例如 SourceForge)找程式碼,程式設計者只要寫出你想要用的物件的功能(也就是定義他的介面),CodeConjurer 就幫你找出一些可能的軟體元件,你可以進去看裡面的程式碼檢驗是否這就是你要的元件,如果是的話,可以馬上下載並整合到你的專案中。這無疑的可以幫你節省一些時間。 當然,光是透過介面的定義就認定該原始碼就是你要的可能會有些風險。為了進行 semantic check, CodeConjurer 也與 JUnit 作整合,開發者在使用這些元件前應該先透過 JUnit 確認元件的 semantics。 如果這個東西真的可行的話,第一個要擔心可能是老師們,因為抄襲的問題可能會越來越嚴重,學生可能越來越不寫程式。但從軟體工程的角度來看,這不失為是一種 code reuse 的發展趨勢。在防堵學生抄襲的同時,老師們也需要教導如何在有限的時間內套用正確、合適的元件來增加軟體開發的效率。