1、Web 程式重構改善 Web 程式的設計JACE JU哇寶資訊技術總監重構是什麼?打掉重做!?重構就像握著方向盤在直路上開車一點一點修正你的程式碼重構保護你的程式碼重構前程式碼是黑白的重構後程式碼是彩色的重構不該改變原有功能所以重構是工程師自爽的工作那麼為什麼要重構?1.重構讓程式碼更具彈性2.重構讓程式碼更容易被看懂3.重構幫你找到 Bug完全不會!都是常見的程式技法!重構困難嗎?隨時都可以重構無法判斷何時該重構的話,以下有幾個建議的好時機:加新功能修 BugReview 程式碼當舊有設計趕不上變化那麼什麼時候需要重構?或是你聞到程式碼有以下壞味道時看不懂的程式碼一堆複製貼上的程式碼部份函式
2、越來越大,功能越來越複雜一個小功能,要更動好幾個地方PHP,HTML,Style,JavaScript 夾雜在一起那麼重構可以解決各種疑難雜症嗎?錯!重構不是萬靈丹!發現以下症狀時,重構是沒用的舊程式已經一團亂的時候迫近死亡之線的時候測試才能確保重構的正確性但 Web 開發所牽涉到的測試範圍非常廣:Server 端應用程式JavaScriptHTML 畫面資料庫其他如何保證重構後功能不變?那麼 Web 程式重構到底要做些什麼?封裝常變化的部份將常變動的設定移出程式外將常改的 Switch 改為類別復用包裝成函式或 Plugin減少 SQL 串接善用主樣版易維護的程式碼定義常數對調常數判斷式善用
3、 JavaScript Library可讀的函式參數加上為什麼的註解(而不是怎麼做)架構重整分離業務處理邏輯與資料呈現邏輯單一檔案單一功能單一程式或類別只做它該做的事錯誤控制大部拆解分離業務處理邏輯與資料呈現邏輯PHPHTML單一功能單一檔案HTMLJSCSSPHP單一程式或類別只做它該做的事DB 抽象層ModelController這邊最花時間,也不容易除錯錯誤控制dieException定義常數對調常數判斷式加上註解把可以 Reuse 的部份包裝起來包裝成函式或 Plugin包裝成函式或 Plugin減少 SQL 串接減少 SQL 串接把常變動的部份封裝起來可設定的程式可設定的程式將常改的 Switch 改為類別將常改的 Switch 改為類別將常改的 Switch 改為類別將常改的 Switch 改為類別JavaScript善用 JavaScript Library善用 JavaScript Library可讀的函式參數可讀的函式參數樣版善用主樣版善用主樣版還有更多重構技巧謝謝大家