精選文章

2021 年 1 月熱門電子書推薦 | 精選書籍推薦

圖片
2021 年1 月推薦書籍:一起來閱讀增進知識吧,挑戰看看這個月能看幾本!或是有其他推薦書籍也歡迎分享~ 全身激痛點地圖 (電子書) 出版日期:2020/04/21 作者:侯鐘堡 推薦指數:⭐⭐⭐⭐ 失眠的年代:即刻救援你的睡眠,不睡這個殺手就在你身邊 (電子書) 出版日期:2020/12/16 作者:許承翰,高紅敏 推薦指數:⭐⭐⭐⭐ 病從排寒解2 排寒實踐與突破:20年臨床實證,突破排寒盲點,防治疫毒流感的中醫養命方略! (電子書) 出版日期:2020/12/05 作者:李璧如 推薦指數:⭐⭐⭐⭐ 身體的立體結構網絡:一個結構治療科醫師的筆記 (電子書) 出版日期:2020/11/01 作者:林兩傳 推薦指數:⭐⭐⭐⭐ 1個月-7kg 奇蹟蛋白質減重法 (電子書) 出版日期:2020/12/29 作者:土田隆 推薦指數:⭐⭐⭐⭐ 人類使用說明書 (電子書) 出版日期:2020/11/26 作者:卡蜜拉‧彭 推薦指數:⭐⭐⭐⭐ 0負擔天文課:輕薄短小的109堂課,變身一日太空人 (電子書) 出版日期:2020/11/16 作者:侯東政 推薦指數:⭐⭐⭐⭐⭐ 我們為何吃太多?全新的食慾科學與現代節食迷思 (電子書) 出版日期:2020/12/30 作者:安德魯‧詹金森 推薦指數:⭐⭐⭐⭐ 只有一半的真相:為什麼科學看不到全貌? (電子書) 出版日期:2020/11/30 作者:布拉斯藍德 推薦指數:⭐⭐⭐⭐⭐ ...

PHP 也有 Day #50:處理前人的遺產 - 聊 legacy code | 活動心得記錄


第一次參加 PHP 也有 Day 的活動,這次報名的主題是談談 legacy code。活動地點在三創,邀請的講者是 Recca Chao。

這次談論的議程有三大點:
  1. 定義什麼是 legacy code
  2. 重構和重寫的選擇,如何提議重構及評估時程
  3. 如何避免自己產生新的 legacy code

什麼是 legacy code

一個專案中有符合以下 4 點,可以被定義為 legacy code
  1. 年代久遠
  2. 結構龐大
  3. 歷經多次迭代
  4. 沒有文件
其中沒有文件算是我覺得蠻有感的問題,剛接觸專案時碰到之前處理的工程師已經不在,又沒有文件可以參考時,就只能慢慢 trace code,也造成重構上的不易,容易改 A 錯 B。

如何評估重構和重寫

講者建議除非遇到像是專案要整個換成新的語言,或者換成相異度很大的框架時,再來考慮重寫。原因是重寫會遇到像是市場的風險(被競爭者淘汰)、開啟專案的時間及人力成本等。有時技術上可行,但卻會在商業上失敗。

如果是重構的話,講者建議在重構前要先
  1. 寫測試:可以先功能測試,再拆成單元測試
  2. 補文件:避免寫完後,後續接手也無法快速了解(包含自己)
重構的話可以逐步改進,在保持實作新需求後,再漸漸修改 legacy code。

如何避免產生新 legacy code

講者有提到,既然開始重構了,也要避免自己又產生出新的「 遺產 」,可以依照下列四個方向努力:
  1. 時常與同事討論文件內容
  2. 和同事做 code review,有機會讓更多人對程式碼有印象
  3. 建立方便修改的小專案
  4. 花時間維護文件 ( legacy code 的要素之一就是沒有文件 )

總結

今天課程上講者提到很多觀念,我自己也沒有完整落實,另外我覺得此次內容脈絡很有條理、方法也很具體。很感謝講者的分享,下次也會想再參加 PHP 也有 Day 的活動。




如果喜歡我的文章,想隨時收到最新行銷、技術分享,歡迎按 fb 粉專讚

加入好友  或加入 LINE 官方帳號,即時接收最新文章通知

留言

這個網誌中的熱門文章

自動將 Blogger 文章發佈到 facebook 粉絲專頁 (上)

使用 docker 部署 Python Flask | 心得分享

3 步驟獲取Google Play 中APP數據 - Python 爬蟲