從零開始搭建一個PaaS平臺 - 我們要做什么
前言
從最開始的小公司做小網(wǎng)站,到現(xiàn)在進入現(xiàn)在的公司做項目,發(fā)現(xiàn)小公司里很多很多工作都是重復(fù)的勞動(增刪改查),不過想想也是,業(yè)務(wù)軟件最基礎(chǔ)的東西不就是增刪改查嗎。
但是很多時候,這種業(yè)務(wù)邏輯其實沒有必要挨個重寫。總不能說你的增刪改查比我的高級很多。很大程度上,復(fù)雜的問題只是數(shù)據(jù)太多了怎么優(yōu)化。
簡介
在真的開始做之前,先來簡單介紹幾個概念。簡單介紹一下PaaS是什么,大概意思就是已經(jīng)做好了一個大的平臺,你可以在上邊快速的配置、擴展你的服務(wù)。
詳細的介紹推薦看一下阮一峰老師的博客 http://www.ruanyifeng.com/blog/2017/07/iaas-paas-saas.html
概念上
我想從零開始搭建一個能夠配置定義業(yè)務(wù),通過代碼擴展業(yè)務(wù)的平臺。在這個平臺上,簡單的需求,不寫代碼。復(fù)雜需求,只寫與標準不同的代碼。
有啥好處
提高生產(chǎn)力
其實,做軟件的大部分時候,都是在寫增刪改查,實在是太簡單了。搬磚誰不會對吧,要想搬得快,不需要你有多么好的腳力,更多的時候,你可能需要一個塔吊。
穩(wěn)定的高負載
PaaS的設(shè)計之初,就是為了比較大的數(shù)據(jù)量來考慮的。項目小的時候,怎么著都行,但是,數(shù)據(jù)量一旦上來之后。小的項目可能根本沒法用,如果是PaaS平臺的話,你可能只需要多幾臺機器就完了,還是基礎(chǔ)組搞的事情。
分工明確
提到了高負載,其實很大程度上都是底層的事情。普通的開發(fā),更多的好處只是性能的提升。那么就需要兩撥能力不同的人來共同完成這件事情。搞底層的更專注性能、擴展,搞業(yè)務(wù)的就更關(guān)注自己的核心業(yè)務(wù)就完了。
更少的服務(wù)代價
這個指的是客戶花銷,也是PaaS對于傳統(tǒng)軟件的優(yōu)勢。PaaS平臺一旦做完,他肯定已經(jīng)有平臺了,如果要開發(fā)新的功能,可能并不需要占用更多的資源,只是在原有的資源上增加點業(yè)務(wù)而已。況且PaaS服務(wù)商與客戶更多的是提供服務(wù)的續(xù)租模式,多一個客戶少一個客戶,其實對于服務(wù)器來說并沒有啥壓力,同一個團隊能夠服務(wù)與更多的人。
開發(fā)更快
就算是往小里做,如果你有這么一個PaaS的框架,你想要在上邊直接搞一個業(yè)務(wù)的話。其實也就是搞點配置,然后作為一個單機軟件部署,純定制開發(fā)也會變得更快。
具體點 我們要做什么
假設(shè)我們現(xiàn)在要做一個人員管理系統(tǒng),我們一般需要以下內(nèi)容。
- 增加數(shù)據(jù)
可以配置一個或者多個新增數(shù)據(jù)的頁面,點擊保存就保存了數(shù)據(jù)

- 刪除數(shù)據(jù)
可以配置個按鈕,點擊一下就把相關(guān)數(shù)據(jù)刪除掉

- 修改數(shù)據(jù)
可以配置個按鈕,點擊一下出現(xiàn)一個編輯頁面,里邊會出現(xiàn)對應(yīng)的數(shù)據(jù),你可以修改,然后點擊一下更新,數(shù)據(jù)就更新了

- 查
-- 列表頁面
你可以在列表頁面,配置幾個篩選項,然后你修改完數(shù)據(jù)之后,點擊搜索,就會根據(jù)你的數(shù)據(jù)來改變列表內(nèi)容數(shù)據(jù)

-- 詳情頁面
你可以在列表頁面點擊名稱(點擊哪個可以配置)然后,就會自動跳轉(zhuǎn)到詳情頁面
詳情頁面要展示哪些內(nèi)容也可以通過配置來進行修改

NoCode能力
這個是整個業(yè)務(wù)的核心,也是PaaS之所以可以將幾個月的工作量濃縮為數(shù)周的原因所在。
其實就是一個簡單想法的轉(zhuǎn)變,原本我們要實現(xiàn)我上邊畫的幾張圖,都是考改變代碼來實現(xiàn),比如說列表頁面應(yīng)該是戰(zhàn)士什么Title、列表要不要出現(xiàn)選擇框、列表究竟展示那幾列、右上角究竟有什么按鈕等等。
現(xiàn)在將這些原本需要寫到代碼里邊的邏輯整理到配置里邊,然后通過解釋這些配置,渲染出頁面,渲染出邏輯。
LowCode能力
當然了,上述的情況太過于簡單了,基本上就是一個數(shù)據(jù)庫的內(nèi)容簡單展示而已,如果我們需要更復(fù)雜一點的內(nèi)容呢?
比如說我們需要輸出這個人的年齡分層(幼兒、少年、青年、中年、老年),我們要怎么做呢?
很顯然這個狀態(tài)不應(yīng)該被存放在數(shù)據(jù)庫中的,因為這個實際上是通過年齡動態(tài)計算出來的,過一年之后這個展示狀態(tài)可能就會過期了,這個時候我們就需要能夠動態(tài)插入邏輯根據(jù)年齡計算這幾個值,然后輸出結(jié)果。
當然這并不是全部了,其他還有很多需要解決的事情。比如
- 使用配置來實現(xiàn)渲染,配置數(shù)據(jù),讀取起來是不是要比寫代碼慢很多?
- 搜索條件可能有很多,怎么實現(xiàn)這些條件可用呢?
- 如果默認的頁面滿足不了我的需求怎么辦?
- 業(yè)務(wù)權(quán)限要怎么處理?總不能進入系統(tǒng)的人都有權(quán)限吧?
- 開發(fā)完了這個玩意怎么發(fā)布到線上去?
- ... ...
這個玩意有點龐大,一口氣說不完。這次內(nèi)容就這么多,我也只能一邊整理一邊寫博客,這可能會是一個很長,也可能是做不下去很短的系列。
寫的不好,能力有限多多見諒

浙公網(wǎng)安備 33010602011771號