標籤:
學完《軟體工程(C編碼實踐篇)》之後的總結
By: 紀*保*華 + 原創作品轉載請註明出處 + 《軟體工程(C編碼實踐篇)》MOOC課程http://mooc.study.163.com/course/USTC-1000002006
Part1 對代碼層面的軟體工程的理解及學習心得體會
作為一個此前未系統學習過軟體工程的學生,在學習本門課程之前,對軟體工程的印象僅僅是一本厚厚的教科書和枯燥無味的文字描述,就代碼層面來說,也僅僅是停留在代碼量和代碼規範的淺顯理解上。
在這兩個月的學習過程中,從一開始的熟悉linux開發環境,到慢慢發現軟體工程並非只有枯燥的教科書,也並非只有代碼量和代碼規範,學習下來,收穫很多。
好的軟體工程代碼是講究設計規範的,講究模組化思想,是需要保證安全執行緒的,子系統的介面需要是可重用的。
在設計規範上,需要做到以下幾點:(1)保證代碼是簡單的,例如一個函數只做一件事,一個模組只做一類事的;(2)遵循“不和陌生人說話”的原則,封裝類,保證一個對象對另一個對象瞭解的儘可能少。(3)合理使用資料結構、控制結構等來簡化代碼;(4)要有錯誤處理。
在模組化的思想中,講究高內聚低耦合,介面是規範的,代碼是通用的。例如,按照可以用callback函數實現多態以便介面更加通用,實現資訊隱藏。
在處理多線程問題中,需要關注函數是否是可重新進入的,使用互斥鎖以保證多安全執行緒等。在子系統的設計當中,設計出可重用的介面是很受用的。
此外,在linux下對代碼的編譯可以編寫Makefile檔案,然後直接用make命令編譯會省事不少。
學習過程中,應當要多動手寫代碼,邊寫邊理解,寫完了之後再回顧和不斷最佳化代碼,把相關的模組串聯起來思考,理解它們之間的內在聯絡。
Part2 實驗報告匯總
(1)實驗報告一
實驗一:寫一個hello world小程式
(2)實驗報告二
實驗二:命令列菜單小程式V1.0,具體要求參見視頻
(3)實驗報告三
實驗三:內部模組化的命令列菜單小程式V2.0
(4)實驗報告四
實驗四:用可重用的鏈表模組來實現命令列菜單小程式V2.5
(5)實驗報告五
實驗五:用callback增強鏈表模組來實現命令列菜單小程式V2.8
(6)實驗報告七
實驗七:將menu設計為可重用的子系統
Part3 總結
在軟體工程開發過程中,需要注重代碼規範、設計規範、模組化、安全執行緒、子系統要可重用等,寫出易讀而又高效安全的代碼。遺憾的是沒有組隊做一個完整實用的軟體工程應用項目。
學完《軟體工程(C編碼實踐篇)》之後的總結