軟件工程(C編碼實踐篇)課程總結

     課程內容來自網易雲課堂中科大孟寧老師的軟件工程(C編碼實踐篇)課程。linux

課程頁面 git

     我以爲本門課程的設置很是科學,每一週課程都是基於上一週課程的進一步抽象,使得學習者可以按部就班,逐漸加深對軟件工程的理解。程序員

      1. 第一週:熟悉Linux實驗環境;要求 實驗一:寫一個hello world小程序。編程

實驗報告連接+git代碼庫連接小程序

     總結:hello world自己很容易,可是linux下工做方式和windows下徹底不一樣,會給不熟悉linux的人帶來很多問題。首先vi沒有Windows下的IDE智能化,不能實時糾正語法錯誤,編譯是會產生很多語法錯誤,須要細心調試。其次,linux的諸多命令和參數,須要更長時間練習操做才能熟練掌握。最後,初學者每每不熟悉git,須要必定時間研究版本控制系統。這3點是liunx初學者須要克服的困難。windows

      2. 第二週:代碼風格規範;要求 實驗二:命令行菜單小程序V1.0。安全

實驗報告連接+git代碼庫連接 網絡

     總結:初步接觸了模塊化設計思想,理解了代碼風格的重要性,學會了將命令封裝成函數供使用者調用。數據結構

     3. 第三週:基本的模塊化設計;要求 實驗三:內部模塊化的命令行菜單小程序V2.0。多線程

實驗報告連接+git代碼庫連接 

     總結:初步實現了業務邏輯與數據結構的分離,加深了對模塊化思想的理解。並且此次本身作死創造難度,採用了AVL樹作數據結構,static函數聲明,函數指針作參數實現call -back;以及實現了在Windows IDE下編程,共享到Linux虛擬機編譯運行,最後從本身的Vmware11的Ubuntu虛擬機向實驗樓git代碼。從而進一步提升了自身的水平。

     4. 第四周:可重用模塊的接口設計;要求 實驗四:用可重用的鏈表模塊來實現命令行菜單小程序V2.5。

實驗報告連接+git代碼庫連接 

     總結:本次對於數據結構,我參考了Linux內核源代碼中雙向鏈表的實現,移植其功能接口集成到menu菜單程序中。而在Linux內核鏈表的設計中,爲了達到最高運行效率,使用了宏定義和內聯函數完成全部功能的設計實現,全部代碼集成在其設計的接口頭文件中。Linux內核源代碼博大精深,其通用的設計思想和高效的實現方式,值得C/C++程序員認真閱讀,即便不去作內核相關的工做,閱讀精彩的代碼對程序員自我修養的提升也是大有裨益的。

     5. 第五週:可重用模塊的接口設計(callback函數);要求 實驗五:用callback加強鏈表模塊來實現命令行菜單小程序V2.8。

實驗報告連接+git代碼庫連接  

     總結:本次實驗經過Debug調試的使用加強了代碼調試的能力,利用函數指針參數化上下文,以最小化信息隱藏的標準,設計了更加 通用好用 的API接口。

     6. 第六週:函數的可重入性(reentrant)及線程安全淺析;本次沒有實驗,老師主要介紹了多線程編程和線程安全方面的知識。

     總結:多線程編程和並行編程是將來技術的發展趨勢,儘管這方面的內容博大精深,但倒是一個優秀的軟件工程師核心競爭力的體現。關於這方面知識的進一步學習,我推薦2套最新更新出版的經典書籍:《Linux/UNIX系統編程手冊》和《UNIX環境高級編程(第3版)》。我認爲若是掌握好這2套書的內容,將會在技術競爭力上有絕對優點。

     7. 第七週:子系統的可重用設計;要求 實驗七:將menu設計爲可重用的子系統。

實驗報告連接+git代碼庫連接 

     總結:本次實驗難點在於Liunx系統函數getopt的理解和使用。getopt自己參數衆多,難以理解,極易用錯。作爲最後一次實驗,綜合了前面所學知識,完成目標須要全面設計和仔細分析調試。

     8. 第八週:代碼背後的設計思想;本次沒有實驗,老師主要總結了前面的課程,論述了軟件工程的一些理論知識。

     總結:本次課程主要講述了 不一樣的質量視角,各類設計方法論,和幾個重要的設計指導原則;爲進一步學習後續課程打下良好的基礎。

     經過一學期的學習,使得本身對軟件工程有一個初步瞭解和認識,找到了進一步提升能力的方向。回想起一學期的歷程,最大的收穫是:抽象能力的提升和模塊化思想的實踐。很是期待軟件工程系列課程的 後續2門課程。最大的遺憾是課程時間比較短,不足以深刻學習多線程編程方面的內容。這方面網絡上視頻稀缺,而書籍比較晦澀難懂,自學難度較大,期待老師之後有時間能製做多線程和並行編程方面的課程。

     真實姓名:薛鎮(與最後申請證書的姓名務必一致) + 原創做品轉載請註明出處 + 《軟件工程(C編碼實踐篇)》MOOC課程http://mooc.study.163.com/course/USTC-1000002006

相關文章
相關標籤/搜索