鄰近原則 contiguity principle

概念

相關的資訊應該放在鄰近的位置上,避免學習者浪費認知資源在搜尋相關的資訊。

這個議題跟程式碼的組織風格有關,良好的程式碼組織風格可以將相關的資訊整合再一起,不好的程式碼組織風格會讓資訊分散在各處。

因此程式碼組織風格是極為重要的,這裡會介紹兩種常見的程式碼組織風格:

  • Stack style

  • Entity style

stack style是一種違反鄰近原則的style,是一種浪費認知資源在資訊整合的程式碼組織風格。而entity style是一種基於鄰近原則的style,是一種有效利用認知資源的程式碼組織風格。

Stack style

Stack style是依據技術的layer去組織程式碼,以mvc架構為例,所有的model、view、controller都會分別放在一起。

範例,以stack style為組織方式的school management專案結構:

  • model

    • teacher-model.js

    • student-model.js

    • course-model.js

  • view

    • teacher-view.js

    • student-view.js

    • course-view.js

  • controller

    • teacher-controller.js

    • student-controller.js

    • course-controller.js

這樣組織程式碼的方式違反我們大腦認知處理的方式,因為我們是以實體概念而非技術layer的方式去進行認知處理。

當我們要去了解這個系統的時候,我們不會依技術layer為邊界將model、view、controller分別檢視程式碼,而是以實體概念teacher、student、course分別檢視程式碼。

Entity style

Entity style是依據概念去組織程式碼,以school management為例,所有的teacher、student、course都會分別放在一起。

範例,以stack style為組織方式的school management專案結構:

  • teacher

    • teacher-model.js

    • teacher-view.js

    • teacher-controller.js

  • student

    • student-model.js

    • student-view.js

    • student-controller.js

  • course

    • course-model.js

    • course-view.js

    • course-controller.js

這個風格的好處是有良好的知識邊界劃分,也符合我們大腦認知處理的方式。當我們要去理解這個系統的時候,我們就可以依據概念的方式去理解整個系統,

entity style符合了鄰近原則,可以有效的利用認知資源,是良好的程式碼組織風格。

Last updated