2013年5月30日 星期四

The role of the study of programming languages in the education of programmers

課程論文研討()
日期 : 2013/03/22
時間 : 13:50 ~ 15:30
學生 : 資傳研二 蕭維廷
演講者 : 政治大學 陳恭教授

寫程式要養成良好的寫作習慣,這樣寫出來的程式碼才劇友可用,可讀和效率性。一個好的程式碼,可以讓錯的程式看得出錯。

例來說在C語言裡:
char* dest, src;
這是合語法的程式碼; 這可能符合你的編程規範, 甚至可能是故意這樣寫的, 不過如果你寫C的經驗夠, 就會注意這種寫法把dest宣告成字元 指標卻把src宣告成字元而已, 這可能是你的意思, 不過也可能不是. 反正這段程式看起來有點不對勁.

Joel Spolsky (設立在紐約的一家小型軟體公司) 的創立者.畢業於耶魯大學 (Yale University) ,並曾經在微軟, Viacom Juno 擔任程式人員與管理工作.提出了一些實際的例子:

if (i != 0)
    foo(i);
這段程式是百分之百正確的;它符合大多數的編程規範也完全沒有錯誤, 不過你可能會質疑if敘述所接的單敘述主體並未用大括號包起來, 因為你腦子裡想到有人可能會插入另一行程式碼
if (i != 0)
    bar(i);
    foo(i);
...又忘記加上大括號, 結果讓foo(i)變成永遠會執行! 所以當你看到沒有用大括弧包起來的程式碼區段時, 可能就會感覺到一絲絲讓你不舒服的氣味.

他也提到三種程式師的成就層級:
1. 不知道乾淨和髒有什麼分別.
2. 對乾淨有粗淺的認知, 主要以是否符合編程規範為準.
3. 開始能嗅出藏在表面下不對勁的蛛絲馬跡.會察覺這是問題並且找出來修正.
4. 有計劃地架構程式碼, 藉助能察覺問題的靈眼讓程式碼更正確.

唯有讓自己達到第4層級,才是真正的藝術: 仔細地設計讓錯誤顯而易見的編程規範, 藉此製作出穩固的程式。

沒有留言:

張貼留言