業務軟件的本質,超越CRUD
阿新 • • 發佈:2018-11-27
nta 存儲結構 形式 吐槽 數據結構 深入 新技術 pro 軟件 經常寫業務軟件的開發會吐槽crud沒有技術含量,想學新技術,但是學完新技術會發現又進入了crud的循環(學完mq發現只會發送和接收消息,學完redis發現只會讀寫緩存,學完zookeeper發現只會操作node節點)。這種現象產生的原因是什麽的?因為關註點一直是邏輯,而不是存儲。而一項技術的底層和原理無非邏輯與存儲。
一個業務軟件本質由兩個部分組成:業務數據+業務邏輯,這有點像是面向過程=數據結構+算法,這道出了軟件開發本質。
業務數據層本質就是數據存儲,storage,從組成形式來說,分為內存和磁盤,這就劃分了數據存儲技術,data container,data store,data base,業務數據的價值和重要性決定了存儲的技術選型。
這裏只是一種簡化認識~
一個業務軟件本質由兩個部分組成:業務數據+業務邏輯,這有點像是面向過程=數據結構+算法,這道出了軟件開發本質。
業務數據層本質就是數據存儲,storage,從組成形式來說,分為內存和磁盤,這就劃分了數據存儲技術,data container,data store,data base,業務數據的價值和重要性決定了存儲的技術選型。
業務邏輯層本質就是對數據操作,compute,就是crud,我加一條:mapping(convert),不同層間的映射,不同系統間的映射。分布式的邏輯有map-reduce,fork-join。如果公司對存儲層的api封裝的足夠好,那麽就可以專註於業務邏輯了。作為個人不能止步於此,作為公司要專註於業務,產品。
很多分布式技術的應用與選型,大多來自數據層的選型,設計一個分布式系統一個出發點就是存儲結構的設計。擴縮性,高可用,高性能的難點也集中在了數據層。因為數據層有狀態。邏輯層一般無狀態的,但是具體操作可能是狀態的。擴縮很簡單,只需要增加節點。
其實crud是超越不了的,業務軟件開發本質決定了其特性,只能增加對crud的理解。深入crud的實現,可以深入存儲層的研究。
業務軟件的本質,超越CRUD