個人職場和代碼重構

一,剛踏入職場與代碼重構android

項目已經開發到必定階段會對代碼的要求更高,對系統crash要求更嚴格。項目代碼重構無非就是爲了提升開發效益,爲了穩定系統版本。 -- 項目重構好像在我第一份工做就彷佛有聽到個,那時候的我連一個協議都不會聯調的時候,剛剛從學校畢業就去面試軟件開發,那時候便是憧憬又是彷徨,項目經理安排的任務不知道該如何下手,甚至次日去上班的勇氣都沒有了,當初覺得本身能在學校寫一點代碼,能夠幾個月拼出一個項目就感受本身牛得不得了,好像本身真的有什麼優點同樣,其實真正到了要給企業公司作事情的時候給感受到壓力特別大,畢竟是領着老闆的工資,當初我記得項目經理面試個人時候,問我分配的任務可以完成嗎?問我學習能力強嗎?我面不改色的說我能夠按時完成任務,我會積極主動學習,在我還沒來及學習的時候問題就堆成山,面臨這些問題我感受天天我都須要加班,我得花一些時間去學習,本身吃透不會的知識點,一天一天過去,本身熟悉了整個項目,同時分配的任務也能按時完成,可是好景不長,由於沒有大牛的帶領,我一我的一直在已有的項目上迭代,致使項目代碼冗餘,很難維護現有的代碼結構和擴展,恰好一期項目結束。項目經理就告訴我二期項目須要代碼重構,我第一次聽代碼重構?我由於在以前自學都是習慣的去SEO,因此我就搜索什麼代碼重構。面試

二,認識代碼重構設計模式

我做爲一年多工做人,開始對本身產生了一些不滿意的想法,原單位是一個獨立崗位開發,android開發只有我一我的,對於本身開發能力和之後的一些規劃產生了一系列的想法,我開始須要突破本身,提高本身的開發水平,就想到更大的公司,有一些團隊一塊兒開發,向他們學習一些經驗,提高本身,這時候我就對項目經理說我須要辭職,發出郵件的10分鐘他就找我談話,由於郵件至發給他一我的,沒有發給HR,他跟我聊了不少,對我便是確定又是表揚的,還對我生活上的照顧,那時候我彷佛忘記本身爲何要提辭職,過了兩週我主動去找他說我決定了要走,而後到了騰訊SNG(也就是互娛平臺)作的是道具商城項目,剛去又是接手別人寫過的代碼,我雖然說有一年多的工做經驗,可是在大神面前我依舊是班門弄斧,閱讀他們的代碼也就是不知因此然。過了幾個月,產品已經發布上線了,感受仍是充滿了挑戰,由於大公司因此對代碼和文檔技術都是頗有要求的,大公司作事情老是有合理的安排和佈置,規範的流程,對項目要求更嚴格,領導提出須要代碼重構,我又再次進入代碼重構,此次我知道什麼是代碼重構,是對項目結構和代碼的優化,代碼解耦,對於我這個小菜來講  根本提高不了代碼的性能和優化,我就看着大神重構的代碼,代碼沒有重構的時候添加需求或者改動牽扯的class 太多。數組

三,代碼重構的意義架構

我用本身的話來講,代碼重構就是爲了更好的寫代碼,寫出穩定流暢的系統。 重構就是經過調整程序代碼,但並不改變程序的功能特徵,達到改善軟件的質量、性能,使程序的設計模式和架構更趨合理,更容易被理解,提升軟件的擴展性和維護性性能

四,如何代碼重構學習

一、提取類/抽離方法   解除代碼的冗餘,提升代碼的複用,提出公告的代碼,這就是Java中體現的封裝,由於平時習慣寫代碼爲了趕時間,趕進度,考慮的是功能,沒有考慮代碼的質量。他類的成員方法的成員方法。這些方法也應該被遷移到合適的類中。測試

2,分離條件 優化

if( seat.equals("硬座")|| seat.equals("硬臥") ||seat.equals("軟臥")||seat.equals("無座")) { 
spa

if(ticket>0){

  System.out.print("出票成功,能夠回家了");

}else{

  System.out.print("出票失敗,繼續在公司加班。。");}

   }

}

else { 

System.out.print("繼續在公司加班。。");} 

重構

if(ticket>0&& !TextUtil.isEmpty(compareSeat(String seat))){

  System.out.print("出票成功,能夠回家了"+compareSeat(String seat));

}


private String compareSeat(String seat){

String resultTicket = "";

if("硬座".equals(seat)){

resultTicket  = "硬座";

}

else if("硬臥".equals(seat)){

resultTicket  = "硬臥";

}

else if("軟臥".equals(seat)){

resultTicket  = "軟臥";

}

else if("無座".equals(seat)){

resultTicket  = "無座";

}

三、引入參數對象/保留全局對象 

在我作代碼審查時發現另一個很常見的狀況 - 好幾個參數被傳入方法。問題主要與須要從已有方法中增長或者移除一個方法參數有關。在這種場景,建議將相關方法參數組成一個對象(引入參數對象),讓方法傳遞這些對象而不是每一個單獨的參數。 

4,代碼規範

a.圖片用英文名
b.代碼註釋規範。 例如: int age;//年齡 
c.類名,方法名,變量名命名規範,要有意思,最好用英語。 
d.冗餘代碼要刪除(廢棄的方法、變量名,註釋掉的代碼快) 
e.新建文件夾要在相應的工程目錄文件夾裏面新建 



4、下降重構的風險

   把你重構的代碼和其它程序隔離開,這樣能讓你更容易找到出問題的地方。 
   爲你的重構活動準備測試計劃,包括迴歸測試,功能測試,反向測試,負載測試,性能測試和用戶確認測試。 
   投入所有精力來研究其中的邏輯,不要分心作其它事情。 
  在須要的地方使用設計模式。不要爲了設計模式而增長設計模式。設計模式應該用在合適的時間和合適地方。

相關文章
相關標籤/搜索