從零開始搭建一個PaaS平臺 - 我們要做什麼

来源:https://www.cnblogs.com/anxin1225/archive/2020/05/23/12944001.html
-Advertisement-
Play Games

前言 從最開始的小公司做小網站,到現在進入現在的公司做項目,發現小公司里很多很多工作都是重覆的勞動(增刪改查),不過想想也是,業務軟體最基礎的東西不就是增刪改查嗎。 但是很多時候,這種業務邏輯其實沒有必要挨個重寫。總不能說你的增刪改查比我的高級很多。很大程度上,複雜的問題只是數據太多了怎麼優化。 簡 ...


前言

從最開始的小公司做小網站,到現在進入現在的公司做項目,發現小公司里很多很多工作都是重覆的勞動(增刪改查),不過想想也是,業務軟體最基礎的東西不就是增刪改查嗎。

但是很多時候,這種業務邏輯其實沒有必要挨個重寫。總不能說你的增刪改查比我的高級很多。很大程度上,複雜的問題只是數據太多了怎麼優化。

 

簡介

在真的開始做之前,先來簡單介紹幾個概念。簡單介紹一下PaaS是什麼,大概意思就是已經做好了一個大的平臺,你可以在上邊快速的配置、擴展你的服務。

詳細的介紹推薦看一下阮一峰老師的博客 http://www.ruanyifeng.com/blog/2017/07/iaas-paas-saas.html

 

概念上

我想從零開始搭建一個能夠配置定義業務,通過代碼擴展業務的平臺。在這個平臺上,簡單的需求,不寫代碼。複雜需求,只寫與標準不同的代碼。

 

有啥好處 

提高生產力

其實,做軟體的大部分時候,都是在寫增刪改查,實在是太簡單了。搬磚誰不會對吧,要想搬得快,不需要你有多麼好的腳力,更多的時候,你可能需要一個塔弔。

 

穩定的高負載

PaaS的設計之初,就是為了比較大的數據量來考慮的。項目小的時候,怎麼著都行,但是,數據量一旦上來之後。小的項目可能根本沒法用,如果是PaaS平臺的話,你可能只需要多幾台機器就完了,還是基礎組搞的事情。

 

分工明確

提到了高負載,其實很大程度上都是底層的事情。普通的開發,更多的好處只是性能的提升。那麼就需要兩撥能力不同的人來共同完成這件事情。搞底層的更專註性能、擴展,搞業務的就更關註自己的核心業務就完了。

 

更少的服務代價

這個指的是客戶花銷,也是PaaS對於傳統軟體的優勢。PaaS平臺一旦做完,他肯定已經有平臺了,如果要開發新的功能,可能並不需要占用更多的資源,只是在原有的資源上增加點業務而已。況且PaaS服務商與客戶更多的是提供服務的續租模式,多一個客戶少一個客戶,其實對於伺服器來說並沒有啥壓力,同一個團隊能夠服務與更多的人。

 

開發更快

就算是往小里做,如果你有這麼一個PaaS的框架,你想要在上邊直接搞一個業務的話。其實也就是搞點配置,然後作為一個單機軟體部署,純定製開發也會變得更快。

 

具體點 我們要做什麼

假設我們現在要做一個人員管理系統,我們一般需要以下內容。

- 增加數據

可以配置一個或者多個新增數據的頁面,點擊保存就保存了數據

 

 

 

 

 

 

- 刪除數據

可以配置個按鈕,點擊一下就把相關數據刪除掉

 

 

 

- 修改數據

可以配置個按鈕,點擊一下出現一個編輯頁面,裡邊會出現對應的數據,你可以修改,然後點擊一下更新,數據就更新了

 

 

 

- 查

-- 列表頁面

你可以在列表頁面,配置幾個篩選項,然後你修改完數據之後,點擊搜索,就會根據你的數據來改變列表內容數據

 

 

 

-- 詳情頁面

你可以在列表頁面點擊名稱(點擊哪個可以配置)然後,就會自動跳轉到詳情頁面

詳情頁面要展示哪些內容也可以通過配置來進行修改

NoCode能力

這個是整個業務的核心,也是PaaS之所以可以將幾個月的工作量濃縮為數周的原因所在。

其實就是一個簡單想法的轉變,原本我們要實現我上邊畫的幾張圖,都是考改變代碼來實現,比如說列表頁面應該是戰士什麼Title、列表要不要出現選擇框、列表究竟展示那幾列、右上角究竟有什麼按鈕等等。

現在將這些原本需要寫到代碼裡邊的邏輯整理到配置裡邊,然後通過解釋這些配置,渲染出頁面,渲染出邏輯。

 

LowCode能力

當然了,上述的情況太過於簡單了,基本上就是一個資料庫的內容簡單展示而已,如果我們需要更複雜一點的內容呢?

 

比如說我們需要輸出這個人的年齡分層(幼兒、少年、青年、中年、老年),我們要怎麼做呢?

很顯然這個狀態不應該被存放在資料庫中的,因為這個實際上是通過年齡動態計算出來的,過一年之後這個展示狀態可能就會過期了,這個時候我們就需要能夠動態插入邏輯根據年齡計算這幾個值,然後輸出結果。

 

當然這並不是全部了,其他還有很多需要解決的事情。比如

  • 使用配置來實現渲染,配置數據,讀取起來是不是要比寫代碼慢很多?
  • 搜索條件可能有很多,怎麼實現這些條件可用呢?
  • 如果預設的頁面滿足不了我的需求怎麼辦?
  • 業務許可權要怎麼處理?總不能進入系統的人都有許可權吧?
  • 開發完了這個玩意怎麼發佈到線上去?
  • ... ...

 

這個玩意有點龐大,一口氣說不完。這次內容就這麼多,我也只能一邊整理一邊寫博客,這可能會是一個很長,也可能是做不下去很短的系列。

寫的不好,能力有限多多見諒


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 今天小編要跟大家分享的文章是關於想要學習web前端需要掌握哪些技能和工具?互聯網的快速發展和激烈競爭,使得用戶體驗成為一個重要的關註點,導致專業前端工程師成為熱門職業,各大公司對前端工程師的需求量都很大,要求也越來越高,優秀的前端工程師更是稀缺。因此想要學習前端技術的人越來越多,那麼零基礎學習web ...
  • 前端開發因為其上手快,開發難度適中,而應用非常廣泛,成為目前大部分想進入IT行業的年輕人的首選。目前前端開發崗位人員主要分類三類:高校畢業生,培訓生,自學人士三大類。今天主要和大家一起來探討一下,自學前端需要掌握哪些知識點。 ...
  • Ajax 非同步 JavaScript 和 XML 第一步: 創建 XMLHttpRequest 對象,var 對象名 = new XMLHttpRequest(); Xmlhttprequest 對象用來和伺服器交換數據 第二步: XMLHttpRequest 對象的 open()和 send()方 ...
  • JavaScript箭頭函數 語法 基礎語法 高級語法 描述 引入箭頭函數有兩個方面的作用:更簡短的函數並且不綁定 this 。 更短的函數 不綁定 this 在箭頭函數出現之前,每個新定義的函數都有它自己的 this 值(在構造函數的情況下是一個新對象,在嚴格模式的函數調用中為underfined ...
  • 前言 文章只記錄理解以及容易遺忘的知識點。 詞法作用域、塊作用域 詞法作用域 詞法作用域:簡單的說,詞法作用域就是定義在詞法階段的作用域。換句話說,詞法作用域就是在你寫代碼時將變數和塊作用域寫在哪裡來決定的,因此在詞法分析器處理代碼時會保持作用域不變(大部分情況是這樣的)。 當然有一些欺騙詞法作用域 ...
  • # 5.盒模型 - box-sizing:content-box | border-box; 預設content-box 一個盒模型的功能強弱,直接決定了佈局是否簡潔,決定了編程的複雜度。 正常盒子: boxWidth = width + border*2 + padding*2; IE6混雜模式的 ...
  • 表單一點擊提交按鈕(submit)必然跳轉頁面,如果表單的action為空也會跳轉到自己的頁面,即效果為刷新當前頁。 如下,可以看到一點擊提交按鈕,瀏覽器的刷新按鈕閃了一下: 如果想要阻止表單的預設提交事件,有以下幾種方法: 1.將<input>標簽內按鈕類型從type="submit"修改為typ ...
  • 什麼是前端? 前端即網站前臺部分,也叫前端開發,運行在PC端,移動端等瀏覽器上展現給用戶瀏覽的網頁。隨著互聯網的發展,HTML5,CSS3,前端框架的應用,跨平臺響應式網頁設計能夠適應各種屏幕解析度,完美的動效設計,給用戶帶來極高的用戶體驗。 (核心技術:HTML、CSS、JavaScript) 核 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...