這是觀看網易公開課 Mehran Sahami教授的《斯坦福大學公開課:編程方法學》後的隨筆。編程
目前只看到第三次課,《Karel與Java》,個人收穫有如下要點:函數
1.軟件工程跟普通的寫代碼是不一樣的。軟件應該考慮不少東西,好比:可移植性、便於升級維護等等,而不單單是寫出代碼實現功能那麼簡單。學習
2.代碼是寫給機器執行的,但更重要的是人要讓人能看懂。(代碼後期維護等等的工做量或者時間是寫代碼的10倍及更多,因此讓代碼更規範更易被人讀懂很重要)軟件
3.準肯定義一個函數、一個類、一個包的功能。好的代碼,要高內聚低耦合。軟件工程
4.實現最底層的功能,經過它們能夠實現更多功能,解決的問題更具廣泛性,無需常常修改代碼。(有點自頂向下的意味,開始即考慮全部可能的狀況並作好準備)方法
5.一個類文件裏,主函數在最上邊,主函數裏定義了實現功能的大體步驟。每一個步驟的具體實現方法寫在後面。代碼是咱們寫的,因此不用擔憂未被定義的函數,咱們能夠寫出來。(學習也應該按照這種一問一答的方式進行。全部問題都應該被視爲問題,而不是理所應該)文件