Comment on page
Introduction
Packhouse Introduction

Packhouse是一個基於函數式程式設計(Functional Programming)的程式設計模型,其擁有以下特性:
使用Packhouse開發可以建構統一的Input/Output接口。
Packhouse的精神是建構微服務中的微服務,建立細微可控的函式能夠快速反應需求變更,且如果保持函數式編程的核心理念,便可以在專案破碎化的情況下複製模式到各個專案中。
並不是所有的專案都能運行TypeScript,而Packhouse是原生的JavaScript,不需要經由任何編譯就能執行。
編寫AWS Lambda時將所有的邏輯編寫在一個檔案中難以應付頻繁的需求變更,物件導向開發在minify或編譯後難以除錯,雖然我們可以藉由單元測試來避免錯誤,但上線後會發生的事永遠比開發時離奇。
無伺服器架構是Packhouse絕佳的運作平台,Mess的後端就是使用Packhouse與Serverless Framework建構整個API Service,我們推薦下列兩種Serverless框架:
$ npm i packhouse --save
Packhouse並沒有強制必須於哪個環境下運作,它甚至允許於瀏覽器執行,但我們不會在乎瀏覽器兼容性。
以下是最低限度地執行程式:
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')
.promise(10, 20)
.then(result => console.log(result)) // 30
Mess的整個後端都由Packhouse建構
Last modified 1yr ago