script知識3) css知識4) 后臺編程語言,僅使用到與前臺界面編寫相關的部分知識。5) 業(yè)務知識
通過以上分析可以看到,在編寫單表的維護代碼階段是使用知識最少的一個步驟,同樣的當業(yè)務產(chǎn)生變更時,為該處的變化所用的編碼時間也比較少,而變化所花費的時間與表結構的調整所花費的時間是正比關系。這個關系將在復雜度分析時進一步說明。接下來看編寫該表與其他表的業(yè)務關系代碼和編寫界面代碼部分,這個2個階段所使用的知識繁多,并且涉及的知識面也很廣,是項目中花費時間最多的地方。但是在實際項目開發(fā)中并沒有再對這兩個步驟進行更細的分解的過程。
現(xiàn)在可以得出一個這樣的結論,工作量是與所使用的知識相關的。一個業(yè)務所使用的知識點越少,所涵蓋的知識面越少,那么所耗費的工作量也會越少。由此,當需要提高工作效率時,盡量少的使用知識是一種有效的手段。但是在實際情況中,并不能有效的減少知識使用種類,只能在使用知識的熟練度上下工夫,一個開發(fā)者所掌握的知識熟練度越高,那么相對的工作量也就會越少,一個知識點的入門門檻越低,那么工作量也會越少。因此,設置工作量為G,知識點入門門檻為B,B1為交給新手人員開發(fā)的知識點,知識點總數(shù)為C,P1為高級開發(fā)人數(shù)的,P2為新手人數(shù),那么G = ( C - B )/P1 + ( B - B1 ) / P1 + B1 / P2 。
對知識點分析完后,再對業(yè)務的復雜度進行分析,知識點的應用可以看作是開發(fā)中的橫切方向的話,那業(yè)務的復雜度就是開發(fā)中的縱切方向,業(yè)務的復雜度貫穿了所有的開發(fā)步驟。
在本文中,從數(shù)據(jù)的應用著手,來分析業(yè)務的復雜度。
在項目開發(fā)中,經(jīng)常要遇到"類型"這樣的業(yè)務點,例如職務。對于這一類業(yè)務,其主要開發(fā)時間就花費在"對于單表的增刪改查"上。另一種類型的業(yè)務,其復雜度高一點,主要應用于該表需要與另一個表進行組合,然后產(chǎn)生一種"所屬"的關系,例如權限,角色等,其主要開發(fā)時間就花費在"對于多個表的所屬關系的增刪改查"上。還有一種類型的業(yè)務,主要是將多個表的數(shù)據(jù)進行組合轉換后輸出,例如報表,CMS的模板解析等,其主要開發(fā)時間就花費在"對于多個表數(shù)據(jù)的監(jiān)測和重組上",最后一種類型的業(yè)務,主要是為數(shù)據(jù)附加上狀態(tài),例如工作流等,其主要開發(fā)時間就花費在"對于數(shù)據(jù)的不同狀態(tài)的處理上"。
以上4點基本涵蓋了做項目時所面對的業(yè)務。接下來,我們?yōu)檫@4種業(yè)務定一個權值
1.對于單表的增刪改查"權值為1
2.對于多個表的所屬關系的增刪改查"權值為4
3.對于多個表數(shù)據(jù)的監(jiān)測和重組上"權值為8
4.對于數(shù)據(jù)的不同狀態(tài)的處理上"權值為16
這個權值的比值基本來自于數(shù)據(jù)的維度,1類業(yè)務是單一緯度。2類業(yè)務除了要處理多個1類業(yè)務外,還需要處理多個1類業(yè)務之間的關系。3類業(yè)務除了要處理2類業(yè)務中包含的,還需要對數(shù)據(jù)本身進行轉換處理,4類業(yè)務除了要處理3類業(yè)務的,還需要處理數(shù)據(jù)的狀態(tài)。后一種業(yè)務要比前一種業(yè)務多處理一種邏輯結構。
根據(jù)這個權值,來看看在項目中經(jīng)常遇到的情況,以職務為例,最開始的需求就是1類業(yè)務,這個時候客戶的需求變更可能如果僅限制在1類業(yè)務的需求范圍內,那么如果完成職務的業(yè)務開發(fā)時間為1的話,那么修改的時間應該在<=1的開發(fā)時間內。但是,這個時候客戶提出一種需求變更,他要求,職務是有從屬關系