OO第四次做業

第一次做業:正則表達式

 

 

  由於初次接觸面向對象編程還不熟悉,因此第一次做業採起了面向過程式的編程方法,將全部代碼寫在了一個類裏。雖然基本完成了要求,可是圈複雜度太高,說明程序代碼質量較低,難以測試和維護。算法

  我第一次做業的總體思路就是直接將整個多項式用一個超長的正則表達式來匹配,這樣能夠從在開始時就過濾掉不少不正確的輸入格式。可是我沒有仔細閱讀指導書,致使多項式相減得0等邊界狀況沒有考慮到,未經過公測。編程

  我用公測的樣例取邊界數據測試匹配到的同窗,沒有發現bug。多線程

 

 

第二次做業:函數

 

  第二次做業由於本身蠢的緣由到了截止時間沒有提交上去,變成了無效做業。雖然是無效做業,可是仍是得找出本身的不足。此次的程序塊嵌套很高,一段時間以後本身看都以爲頭暈。應該在寫以前組織好總體的思路,不要想到哪裏就寫到哪裏,致使容易出現各類各樣的錯誤,又很差修改。學習

  此次的傻瓜電梯程序雖然名叫傻瓜,但是也比我強一些,我沒有考慮全同質請求的各類狀況,致使寫出來的電梯比傻瓜還要差點。由於無效做業,我有點回避此次的程序,致使bug也沒有徹底修改好,也變相提升了以後做業的難度。測試

 

 

第三次做業:線程

 

 

  第三次做業能夠說是前兩次做業的綜合——但倒是缺陷的綜合。此次既有圈複雜度太高,又有塊嵌套過深,能夠說是好的沒學,壞的都學會了。此次的做業對於我來講難度提升了一個檔次,捎帶請求的處理讓我想了好一陣子,結果到最後仍是隻能完成一小部分樣例的正常輸出。緣由有第二次無效的影響,可是主要仍是本身的水平不夠。此次也由於各類要求慌了陣腳,致使與第二次做業相比甚至有些倒退。能夠說完成度不高。我以後會繼續修改調試。debug

  此次也檢查了匹配到的同窗的程序,但是除了公共樣例外基本沒有什麼錯誤。我想我須要提升本身的測試能力,這樣對本身也算是十分有好處。設計

 

 

心得體會:

  快沒時間的時候要把寫好了的程序先交上去,再考慮細枝末節。

  對於函數複雜度太高的狀況要儘可能下降。方法有提煉函數、替換算法、分節條件表達式、合併條件式、合併重複的條件片斷、移除控制標誌、將查詢函數和修改函數分離、令函數攜帶參數、以明確函數取代參數。

  而面對過深的嵌套時,應該減小嵌套層數。條件判斷的代碼塊不要跨度太大,相隔太遠. 經過就近處理各類狀況來增長可讀性.同時當你的循環和分支超過 2 層時考慮重構.還要考慮將嵌套的邏輯分爲獨立的函數。好比, 若是你在一個循環中對一些對象進行處理, 這其中的每一個對象都包含一個列表 (好比一個有着重複字段的協議緩衝區), 那麼你能夠定義一個函數來處理這裏面的每一個對象,而不是使用一個兩層的嵌套循環.

  通過了三次做業的洗禮,我以爲仍是要多花時間在總體的思路和設計方面。只要可以把一種可行的方案徹底構思出來,寫程序就會明確的多,也簡單得多。我如今所欠缺的就是這種大局觀,在動手以前,必定要多動腦,有一個目標。我以前的這種寫到哪是哪的想法必定要捨棄。還有就是本身對待做業的態度。要對做業多上心,不會的多去問,多去學習,提升本身的水平。立刻就要迎來多線程電梯的做業,在第三次做業上更進一步。老師助教都說此次是個不小的挑戰,我也已經準備好了面對它。還有重要的就是要努力提升本身的測試和debug能力,讓本身寫出來程序先要完成全部的基本要求,而後再在各個方面加以完善改進。

相關文章
相關標籤/搜索