OO第一階段總(休)結(養)分(生)析(息)

第一次做業:

   這是一次讓我認識到ddl面前潛力真的能夠無限大的做業。正則表達式

   一直覺得OO是一門和數據結構同樣先用幾周的時間講講Java而後寫寫」Hello World」小程序再開始講正課的我(我也不知道爲何如今特別喜歡寫賊長的句子),僅僅看了看Java怎麼輸入和輸出就美滋滋地接到了第一次做業的指導書。一兩個小時擼完C代碼(仍是用狀態機寫的)內心就開始不停地喊着「我不會寫Java」,拖延症晚期的我硬生生地把Java程序拖了三天。當我意識到本身恐怕第一次就要凉的時候,終於開始翻開了假期就買了的Java程序設計開始看語法,看了兩個小時漸漸感受心中的涼意愈發真實,就再也沒耐心看下去幹脆直接開始碼代碼。在ddl面前,什麼會不會寫Java都再也不是問題。正則表達式、各類庫函數,基本上寫幾行就得去問問度娘,進度十分緩慢,就這樣OO的第一次做業就讓我熬了夜,好在最後也總算是矇混過關。小程序

   此次的Java程序能夠說是很醜了,就是面向過程,一個主類裏面一個主函數下來(連表面面向對象都懶得表面),因此也就沒有什麼類圖了。中間想偷懶開個巨大的數組直接用哈希減小一點排序和查找,後來發現內存直接爆掉了(這裏必定要吐槽爲何規定的範圍那麼大啊喂),規規矩矩用快排寫好而後本身測了幾個小數據,就提交睡了。數組

   趕出來的程序怎麼可能沒bug?速成的正則表達式在作壓力測試的時候仍是歇菜了,直接爆棧就崩掉了一個點,嗯就是下面這個東西…數據結構

 

1 String regEx = "([+-]?\\{(\\([+-]?[0-9]{1,6},(-0{1,6}|[+]?[0-9]{1,6})\\),){0,49}\\([+-]?[0-9]{1,6},(-0{1,6}|[+]?[0-9]{1,6})\\)\\})([+-]\\{(\\([+-]?[0-9]{1,6},(-0{1,6}|[+]?[0-9]{1,6})\\),){0,49}\\([+-]?[0-9]{1,6},(-0{1,6}|[+]?[0-9]{1,6})\\)\\}){0,19}";
2             Pattern pattern = Pattern.compile(regEx);
3             Matcher matcher = pattern.matcher(std_input);

 


 

第二次做業:

       在寫第二次做業的時候,沒了語法的障礙,寫起來也駕輕就熟一些。只不過提出的需求增長了許多,所以在碼代碼以前的設計就尤其重要,設計好了就不會出現像在第三次做業中漏洞百出甚至得重構的麻煩事。函數

 

   這一次的設計就有了些OO的感受,各個類也看似合理了一些,大致上沒有明顯的問題。可就是!由於閱讀指導書不仔細,而致使了一個時刻點的時刻的區分出現了問題,結果公測再次有測試點沒過。同時,我測試的那位同窗的代碼也是存在一個由於沒有讀清指導書(猜想…由於難度並不大)而出現的問題,由此獲得的教訓就是指導書真的要好好看!要花時間好好讀!而這一點,在第三次做業中也尤其重要。測試

 


 

第三次做業:

   本覺得第三次做業就是在第二次做業的基礎上重寫調度機制,工做量會小不少。可這一重寫,簡直要了老命…本來只有100多行的調度器,硬生生擴充爲500+。並且因爲在着手寫代碼以前的設計不充分,致使了在debug的時候十分痛苦,硬生生是測了一天才基本測完,但就算如此仍是有一個點沒有考慮到,雖然公測沒有被發現,但互測的時候被挑了出來,在此十分感謝這位老哥,也是第一次體會到了OO的溫暖…spa

 


 

 

心得體會:

1)天無絕人之路。在第三次debug時,深深感受到本身怕是要被OO勸退了,但仍是心有不甘就想着再寫寫試試,不知不覺就把程序都給測完了。debug

2)寫代碼前的設計過重要!!全面的設計會讓你的代碼事半功倍,而抱着先寫寫看的態度寫完,將重心放在調試上,真的會讓人調到懷疑人生。設計

3)在寫代碼前,最好用註釋寫一份僞代碼,而後就像填充每一部份內容同樣,寫一部分測試一下,就能夠避免bug堆疊在一塊兒的頭疼發生。調試

4)雖然OO是一門讓人頭疼的課,但其實真的能夠會讓代碼能力進步(寫這麼多bug不進步纔怪)

5)OO真的能夠治療拖延症…

相關文章
相關標籤/搜索