iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0

工作經驗夠久的工程師應該或多或少都會遇到這個狀況,想說趁今天花一些時間談談這個可能有點敏感的問題。

先聲明我不是反對複製貼上程式碼的人,我只是想從自己的角度出發,探討為什麼會發生這個狀況?以及這個狀況可能會造成什麼問題?以及思考可能的改善方向。

為什麼?

根據經驗,複製貼上的程式碼大致有以下特徵:

  • 相似性高,但不是完全 100% 相同程式碼,可能只是改了變數名稱而已
  • 不容易包成函式(沒有回傳值、依賴的變數作用域無法拆分)
  • 頭一樣身體不一樣,複製頭的程式碼
  • 重複的元素 (array 中的 item)、重複的頁面結構
  • 相似,但不能說應用場景完全一樣的程式碼

以上特徵造就複製貼上的程式碼很難被模組化。

或者就算要模組化,中間也需要花時間去釐清哪些是重複邏輯而且可以拆分出來的部分?
在開發時間不太夠的狀況下,可能還是會先選擇用複製貼上的方式度過,而未來也不一定有時間可以重構程式碼

可能會造成什麼問題?

最容易發生的狀況是需求調整或程式重構,因為相當於一份程式碼有兩個複本,所以改動的時候兩邊都要確認是否都有改道?

也有一種狀況是維護的人並不曉得專案中其他地方是否有存在邏輯相似的程式碼?雖然功能調整並沒有提到另外一個地方的程式碼是不是要一併調整?這種情況就會讓人需要花比較多心力去確認,相對來說會消耗掉比較多時間

可能的改善方向

其實筆者目前處理這類狀況的經驗還不是很多,只能從預防勝於治療的角度提出一點建議
增強危險意識,發現自己在做複製貼上的事情時,先註記下來,提醒未來的自己注意

以上,今天花一點時間談談關於開發時遇到的一些問題,也歡迎大家在底下留言區分享自己的經驗
我們明天見


上一篇
拾壹。如何在平台開發新功能同時不影響原本的使用者?
下一篇
拾參。利用 BLOB 實現前端的圖片預覽功能
系列文
程式小萌新的學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言