packhouse
v2.0.3
Published
Packhouse is a function wrapper based on the concept of functional programming
Downloads
23
Maintainers
Readme
Summary
Packhouse是一個基於函數式程式設計(Functional Programming)的程式設計模型,其擁有以下特性:
- 追蹤呼叫上下文
- 真正的型態檢查
- 管理與分類函式
- 美麗的寫作規範
- 建構後端服務的能力
開始前可以閱讀函數式編程指南了解基本觀念。
為何採用Packhouse?
Packhouse開發可以建構統一的Input/Output接口。
Packhouse的精神是建構微服務中的微服務,建立細微可控的函式能夠快速反應需求變更,且如果保持函數式編程的核心理念,便可以在專案破碎化的情況下複製模式到各個專案中。
並不是所有的專案都能運行TypeScript,而Packhouse是原生的JavaScript,不需要經由任何編譯就能執行。
編寫Cloud Function時將所有的邏輯編寫在一個檔案中難以應付頻繁的需求變更,物件導向開發在minify或編譯後難以除錯,雖然我們可以藉由單元測試來避免錯誤,但上線後會發生的事永遠比開發時離奇。
無伺服器架構 - Serverless
你不需要逐步建立服務,可以直接參考API Service章節。
無伺服器架構是Packhouse絕佳的運作平台:
安裝
npm i packhouse --save
運行環境
Node 8.x以上。
Packhouse並沒有強制必須於哪個環境下運作,它甚至允許於瀏覽器執行,但我們不會在乎瀏覽器兼容性。
First Function
以下是最低限度地執行程式:
const Packhouse = require('packhouse')
const packhouse = new Packhouse()
const group = {
tools: {
sum: {
handler: (self, v1, v2) => self.success(v1 + v2)
}
}
}
packhouse.addGroup('math', () => {
return {
data: group
}
})
packhouse
.tool('math/sum')
.action(10, 20, (error, result) => {
console.log(result) // 30
})
使用案例
Mess是為通勤族精心設計的閱讀網站,你可以在任何等待時間使用任何裝置隨時閱讀國外媒體或文章,並享受精心設計的使用者介面與翻譯、語音服務。
Versions
1.x與2.x的版本差異非常大,如果使用1.x請參照下列文件: