冗餘效應 redundancy effect

概念

一樣的訊息重複的出現,佔用了工作記憶,對於學習造成了干擾的現象。

以教材為例,當文字與語音的內容完全相同時,一樣的訊息額外的佔用了工作記憶,就會有出現冗餘的現象。

範例一

這個例子是一段關於課程管理相關的程式,course物件有courseName, courseHours, courseTeacher的屬性。在getCourseName function中會回傳course.courseName,我們可以發現這裡有冗餘效應的現象 因為course內的屬性,都會有course冗餘的字出現。

優化前之課程管理程式碼

const course = {
  courseName: '應用心理學理論提升程式碼可讀性',
  courseHours: 3,
  courseTeacher: 'Jim',
}

function getCourseName() {
  return course.courseName;
}

因此我們可以將程式碼優化,把course內的屬性冗餘的文字去除。這樣getCourseName function中的程式碼就會簡潔許多 避免了冗餘效應的發生。

優化後之課程管理程式碼

範例二

程式碼有時會因為需求的改變而進行改寫,有些人便會將舊的程式碼註解,方便未來可能需要還原程式碼。

久而久之,這些註解的程式碼就會占用許多空間,而其他工程師看到這些註解的程式碼,也不敢隨意刪除。導致冗餘的程式碼的註解越來越多,這會對閱讀程式碼產生認知負荷。

因此如果真的有需求,需要還原舊版的程式碼,那我們應該要善用版本控管的工具,取代註解程式碼的習慣。

優化前之程式碼

優化後之程式碼

範例三

這是一段取得三個數字之統計值的function,function中的註解解釋了每一行計算代表的含意。

註解非常詳盡,但有些程式碼本身不需要註解就已經可以很好理解。

因此那些過於簡單的註解,會造成冗餘效應的現象。

在優化後的程式碼去除了非必要的註解,只在較為複雜的計算寫上註解,是不是看起來就簡約好讀了許多呢!

優化前之程式碼

優化後之程式碼

Last updated