隨著大數(shù)據(jù)的發(fā)展冻河,數(shù)據(jù)建模箍邮、模型比賽、模型分享概念紛紛如約而至叨叙,各類真真假假的模型紛紛登場亮相锭弊,周邊朋友也經常討論模型的靈魂所在,而業(yè)務邏輯卻甚少被人提起摔敛,究其原因廷蓉,可能是大家都是業(yè)務領域的專家精英,認為業(yè)務邏輯就是業(yè)務規(guī)則,業(yè)務規(guī)則就是業(yè)務桃犬,如果你也這么想刹悴,那可能就要出問題了。
業(yè)務邏輯攒暇、業(yè)務規(guī)則和具體的業(yè)務土匀,這是三個完全不同的范疇,我認可也相信你非常熟悉你的業(yè)務形用,但是就轧,我不太相信有太多的人會明白業(yè)務背后的業(yè)務邏輯,因為一旦你明白了業(yè)務邏輯田度,一個基本合格的模型基本就在你手中了妒御,但是很可惜的是,迄今我們沒有看到太多成功的镇饺,有示范意義的模型乎莉。所以,可以聊聊業(yè)務邏輯這個事奸笤。
看一下這個概念惋啃,業(yè)務你可以看成是一種服務,既然是服務监右,那就會有服務與被服務對象這兩個實體边灭,業(yè)務規(guī)則就是這兩類實體在互動中必須遵守的準則或遵循的流程,而業(yè)務邏輯是在完成所有同類業(yè)務中總結提煉出的一種規(guī)律健盒,俗稱“套路”绒瘦。
IT精英都會明白一件事,你要想做一個好的需求分析師扣癣,一個不錯的架構師椭坚,你最大的本錢一定是掌握了這個領域更多、更細的業(yè)務邏輯搏色。設計模型的根本原理其實跟設計一個系統(tǒng)差不多,或者我可以這么說券册,在某種意義上频轿,一個模型就是一個小的應用系統(tǒng),因此烁焙,軟件設計架構的通用三個層級完全適用于模型的構建航邢,這三個層級是就是展示層、業(yè)務邏輯層和數(shù)據(jù)層骄蝇,其中展示層負責模型的外在界面以及與用戶的交互膳殷,邏輯層就是今天說的重點,用戶把自己的請求交付給邏輯層九火,經過邏輯層判斷赚窃,把請求按照既定的組織次序提交給數(shù)據(jù)層册招,按照一定的策略再向等待在展示層的用戶返回結果。這就是一個模型運行的經典場景勒极。因此是掰,我們可以看出,業(yè)務邏輯其實就是一個處于承上啟下位置的“中間件”辱匿,它至少涵蓋了四個部分:業(yè)務實體键痛、業(yè)務規(guī)則、數(shù)據(jù)治理匾七、運作流程絮短。
我們用“群租房”舉例說明這個問題∽蛞洌“群租房”(簡單講丁频,就是一大堆人住在一個不應該住一堆人的家里,為啥要管這個我就不多說了扔嵌,想想一屋子人的傳銷吧)管理的其中一個業(yè)務邏輯為例限府,這個例子就是通過用水量發(fā)現(xiàn)群租房的業(yè)務模型。
這個業(yè)務模型涉及的業(yè)務實體包括出租(家庭)戶痢缎、多個實際居住人胁勺、社區(qū)民警、每戶用水量數(shù)據(jù)等独旷。業(yè)務規(guī)則是社區(qū)民警通過對全小區(qū)每戶用水量的比較署穗,把超過平均用水量一倍以上的房子找出來,因為用水量大很有可能這些房子里住的人多嵌洼,因此這些疑似是群租房案疲。如南方一個四口之家大約一個月用10噸水,那就把用超過用水20噸以上的房子挑出來麻养,當然褐啡,這個與所處的地理位置,所處的季節(jié)鳖昌,不同的小區(qū)等諸多因素有關备畦。接下來的數(shù)據(jù)組織、數(shù)據(jù)調用许昨、數(shù)據(jù)質量保證懂盐,除了用水量的數(shù)據(jù),還有戶籍數(shù)據(jù)糕档,地理信息數(shù)據(jù)莉恼,屋主數(shù)據(jù)等等,其中數(shù)據(jù)質量問題在此還要多說一句,如用水量數(shù)據(jù)從自來水公司要過來俐银,如何與戶籍數(shù)據(jù)對接上尿背,還有一大堆的清洗去重去噪轉化對標工作,對這項工作要有充分的繁重的數(shù)據(jù)清洗過程的認識悉患。然后就是設計業(yè)務邏輯的業(yè)務流残家,這是從社區(qū)民警工作的角度出發(fā),從具體業(yè)務操作的角度看問題售躁,工作流是業(yè)務邏輯的一部分坞淮,它的作用是定義和約束實體之間的交互關系,但不涉及規(guī)則的制定陪捷,更不涉及數(shù)據(jù)的處理和質量保證等方面回窘。在這個案例中,業(yè)務流主要就是社區(qū)民警在應用時輸入什么條件市袖,到最終的結果數(shù)據(jù)如何到社區(qū)民警手上的一個完整過程啡直,一般都能用圖示的方式把開展的具體流程展示出來。最后是核心部分業(yè)務邏輯的作用苍碟,它負責模型領域內的業(yè)務數(shù)據(jù)的處理酒觅,均是對具備邏輯性數(shù)據(jù)的處理,如生成微峰、處理及轉換等舷丹。同時對所輸入的邏輯性數(shù)據(jù)的正確性及有效性負責。通俗地講蜓肆,就是能用“計算公式”這種方式表達出來颜凯,如這個案例,計算公式就包括計算全小區(qū)各戶用水量的平均數(shù)仗扬,超過一倍的數(shù)值計算症概,以及與戶號與戶數(shù)對應等。
模型的業(yè)務邏輯與系統(tǒng)建設的“業(yè)務邏輯層”有很大的相似度早芭,但也有一定區(qū)別彼城,業(yè)務邏輯是應用模型的核心和靈魂。嚴格講退个,一個模型除界面和人機交互設定外精肃,其余都可看作是廣義范疇上的業(yè)務邏輯,其實業(yè)務邏輯說到底就是如何處理數(shù)據(jù)的邏輯帜乞。