在我大學畢業後的第一份工作,被派駐到某新竹園區大廠工作時,那是我第一次與模組模式 (Module Pattern) 相遇,當我並不知道它有名字。
當時我們整個專案使用的前端框架是 Ext.js 2.x 版,當時的 Javascript 不像現在這麼被重視,Component 的觀念也還不是潛規則,而且老實說我當時的技術等級,大概也只能看看 sample code 套用並微調而已,壓根沒想過要怎麼比較好的組織程式碼。
直到有一天,我遇到一個 bug 一直解不掉,至於是什麼 bug 我也想不起來了,只依稀記得好像是 this
語法使用上的問題。他讓我看了一段他的程式碼,跟我解釋我遇到的問題是什麼,我彷彿看到了新世界。哇,他也是寫 Ext.js 為什麼那份程式碼,跟我的程式碼長得那麼不一樣,好有結構化,邏輯什麼的都清清楚楚。在我離職後換到第二份工作,我又見到它一次。
因為 NodeJS 的流行,NodeJS 是使用 CommonJS
風格的模組,目前熱門的模組幾乎都是使用 CommonJS
格式,但我偶而還是可以在一些小的 plugin 看到模組模式的身影。
ps. 我剛剛花了 20 分鐘在 Github 上找了一下哪一個模組是用這個風格來撰寫的,但我還沒找到,如果之後我找到了再把網址貼上來。
greeting.js
function greeting(name) {
return `Hi, ${name}`
}
module.exports = greeting
app.js
const greeting = require('./greeting')
console.log(greeting('ALin'))