心得
這門課程從剛開始的熟悉環(huán)境,注意代碼風格規(guī)范,到基本的模塊化設計,然后引出可重用模塊的接口設計,callback函數(shù),子系統(tǒng)的可重用設計,中間還插入講解了線程安全,最后老師又升華了軟件工程代碼設計的思想。堅持完這八周的課程,收獲頗豐,孟老師風趣幽默,上課的過程中放松愉快,有趣的舉例使得知識理解起來更容易??梢哉f再次被寧哥拯救,非常的感謝老師?。?!
個人覺得軟件工程和蓋樓是有相同之處的,都是工程。如果只是寫一個小的玩具程序,或者是非常小的軟件,也許不需要什么工程思想,甚至可以不遵守代碼風格規(guī)范。但是正如老師講到的,一般來說人的注意力在兩千行代碼以內,當代碼的量上去之后,怎樣去組織這樣一個龐大的代碼,就是個技術問題了,這個時候軟件工程就起到了作用。只有按照軟件工程的方式去管理組織大量的代碼,才有可能使得項目容易維護,擴展,使得可以有更多的人協(xié)作(每個人開發(fā)一個或幾個模塊)。這就好比蓋一個摩天大樓和蓋一個平方相比,越是復雜的東西考慮的就越多,軟件工程就是前人留下來管理大量代碼的經驗,遵守這個經驗可以讓我們少走彎路,就像老師引用資治通鑒里的話一樣,等到不可控的時候就已經晚了。
老師用一個C語言menu項目,逐步的使其更加完善,在這個過程中讓我們體會到了模塊化,接口的設計,使得一個軟件變得更漂亮,更可重用,更易擴展。在這過程中還領略到了鏈表的威力,callback的精彩,最后的實驗七讓我知道了帶參數(shù)的命令原來是這樣開發(fā)出來的。
實驗報告作業(yè)目錄列表
實驗一:寫一個hello world小程序
實驗二:命令行菜單小程序V1.0,具體要求參見視頻
實驗三:內部模塊化的命令行菜單小程序V2.0
實驗四:用可重用的鏈表模塊來實現(xiàn)命令行菜單小程序V2.5
實驗五:用callback增強鏈表模塊來實現(xiàn)命令行菜單小程序V2.8
實驗七:將menu設計為可重用的子系統(tǒng)
收獲和遺憾
收獲非常大啊,不管是從整個的軟件工程思想,內聚耦合,還是說callback,getopt等知識。能堅持完八個星期的課程,沒有遺憾。有個愿景:如果將來有機會,寫一個c語言的開源軟件,就以老師的代碼為基礎。
最后還是要說
感謝孟寧老師,很帥!