2018春 OO第一階段總結
阿新 • • 發佈:2018-04-04
body 申訴 readme 程序崩潰 類的繼承 面向對象 也會 方法 遺憾 )。第三次作業發現了別人的兩個 Bug。
基於度量分析程序結構
第一次作業
第二次作業
第三次作業
分析自己程序的 Bug
第一次作業使用 java 正則表達式類庫的時候,沒有詳細查詢文檔,導致輸入串過長的時候,正則表達式類庫會爆棧拋出 Error。而我在最外層只 catch 了 Exception,導致程序崩潰。
第二次作業沒有被發現 Bug。
第三次作業誤解了指導書中的 INVALID 格式,因為一個格式錯誤導致公測所有的非法輸入都掛掉了(10 個測試點),略有遺憾。其他的也沒有被發現 Bug。
分析發現別人 Bug 所采用的策略
第一次作業發現了別人兩個 Bug。第二次作業發現了別人會程序崩潰(然而他申訴我的輸入是無效輸入,被助教刪掉了 Bug,我不太懂指導書中“任何情況下都不應該出現 crash”和他的 README 誰的優先級比較高
我的策略主要是先自己閱讀兩遍他人的代碼,一般讀完一遍我就能找出所有的功能性和邊界的 Bug,讀第二遍只是為了確保萬一。同時,我也會制造一些隨機數據,讓我的程序和他的程序一起運行,然後比對結果。不過這一步一般沒什麽用,Bug 通常在閱讀代碼的時候已經找完了。
心得體會
前兩次作業我都只在周二晚上花了約 1h 寫完,導致對第三次的難度估計有些偏差,沒有花費足夠的時間閱讀指導書。雖然第三次作業沒有功能性的問題,但是卻因為格式錯誤而掛了 10 個公測點,略有遺憾。
通過三次作業,我對 java 的面向對象設計方法有了更深的理解,對於繼承、接口,以及重載、覆蓋等也比較熟悉了。java 這套方法雖然有的時候會感覺略有累贅,沒有寫 c++ 的時候的暢快的感覺,但是對於多人合作一個大的工程卻很有幫助。
編寫面向對象程序的時候,我們一定要提前設計好程序的整體層次、類的繼承關系、接口,還要分析好需求,考慮可擴展性。
2018春 OO第一階段總結