2020年5月30日 星期六

重構

以下只是個人的教育訓練的準備內容,並非文章。
======================
  • [Training 開場]
為什麼要提這個?
業界很紅 書出了兩版(重構-改善既有程式的設計) 第一版用Java 第二版用JavaScript
我也覺得很有效 (拿code出來比對)
好處多多 : 讓工作有效率 別人來問邏輯時 需求評估時 程式編寫時 叫修維運時 最終能準時下班 快樂生活
老闆如果不是開發背景,會覺得沒有效益,所以要讓老闆知道這個名詞。
  • [What] 什麼是重構?
不改變原先程式執行的外在結果,而是影響內部結構,提高人類理解性,以降低維運成本
重構是有風險的,所以有理論(原則)、(手)方法、工具可以降低風險,帶來不少好處
  • [Why] 為什麼要重構?有什麼好處?
電腦才不管程式碼是簡潔或冗長的 (clear or ugly),但人會!
任何人都會寫程式(能跑出結果就好),但能寫出讓人看得懂的城市才是人
程式在寫的時間不多,反而在大部分都在讀和修改中。後續的接手的人才不會痛苦
如果有需求要評估或有bug要修改時,要花很多時間找要新增或修改在哪裡,改了會不會與其他交會影響(也就是產生副作用side effect)
clean code !
性能不一定會提升,所以重構不一定是性能優化,若是性能問題,著手的可能是整體設計或資料結構的改變。

  • [When] 何時該重構?
要新入新功能時
有計畫性的
code review時
當這個功能寫的超大一坨,全部重寫比重構簡單時,就不該重構。
  • [How] 重構的方法與工具
事前一定要有測試案例或測試程式來作為驗證
一次改一點就跑自動化測試,不要等到改了一大堆後才又在trace error
註解還是要寫,原因及重點要寫清楚不要寫下時間點和人名等沒用的資訊
pair-programing  誰都會犯錯,多個人一起把關,同時可以帶領一起了解及學習,分攤壓力,甚至會減少開發時間
自動化重構 : Eclipse 有一些refactoring 功能(Extract method、rename variable 等等)




COVID-19 確診經歷紀實

原本以為真的是天選之人,就算先前家裡兩個小孩都確診都逃過了(可能有中獎但無症狀吧),不過就在2023年六月18日破解自認為天選之人的"心態",為什麼可以確認就是這天中獎的呢?因為在前都是居家上班,到人多的室內場所都會戴口罩,就剛好這天傍晚原本只想說要去附近的國...