業務軟件的本質,超越CRUD

常常寫業務軟件的開發會吐槽crud沒有技術含量,想學新技術,可是學完新技術會發現又進入了crud的循環(學完mq發現只會發送和接收消息,學完redis發現只會讀寫緩存,學完zookeeper發現只會操做node節點)。這種現象產生的緣由是什麼的?由於關注點一直是邏輯,而不是存儲。而一項技術的底層和原理無非邏輯與存儲
一個業務軟件本質由兩個部分組成:業務數據+業務邏輯,這有點像是面向過程=數據結構+算法,這道出了軟件開發本質。
業務數據層本質就是數據存儲,storage,從組成形式來講,分爲內存和磁盤,這就劃分了數據存儲技術,data container,data store,data base,業務數據的價值和重要性決定了存儲的技術選型。
這裏只是一種簡化認識~
業務軟件的本質,超越CRUDnode

業務邏輯層本質就是對數據操做,compute,就是crud,我加一條:mapping(convert),不一樣層間的映射,不一樣系統間的映射。分佈式的邏輯有map-reduce,fork-join。若是公司對存儲層的api封裝的足夠好,那麼就能夠專一於業務邏輯了。做爲我的不能止步於此,做爲公司要專一於業務,產品。redis

不少分佈式技術的應用與選型,大多來自數據層的選型,設計一個分佈式系統一個出發點就是存儲結構的設計。擴縮性,高可用,高性能的難點也集中在了數據層。由於數據層有狀態。邏輯層通常無狀態的,可是具體操做多是狀態的。擴縮很簡單,只須要增長節點。算法

其實crud是超越不了的,業務軟件開發本質決定了其特性,只能增長對crud的理解。深刻crud的實現,能夠深刻存儲層的研究。api

相關文章
相關標籤/搜索