緣起
業界常提到一個詞:代碼行數。代碼行數是一種簡單的衡量一個軟件規模的方式。
可是代碼行數的具體統計方法的不一樣,也會使結果產生不可忽略的差別。
主要分歧有:數據庫
- 空行算不算?
- 純註釋的行算不算?
- 有行尾註釋的行算1行仍是2行?
- 項目文件算不算,SQL腳算不算?
屢次百度都是各家有各家的標準,在我看來就是沒有標準。許多工具乾脆作成各類成分都統計出來,也有的提供參數讓使用者自行決定統計哪些成分。本人本着「有標準就參照執行,無標準就創造標準」的原則來倡導一種標準,但願它真的能夠成爲多人採用的標準。工具
標準
- 空行 不算。
- 純註釋的行 算。
- 行內註釋 不算。(即有行尾/行中註釋的行只算1行, 如
int i = 3; //初始化
)
- 由工具建立/導出的文件 不算。(如項目文件、導出的SQL腳本)
依據
- 空行指除了換行符外,沒有任何字符或只有空格的行。有些童鞋寫代碼時喜歡順手連續敲幾個空行,這個真不必,也不能讓他們「鑽空子」,因此不算。
- 純註釋的算,註釋也是重要的代碼的一部分,好的註釋也是很是講究的。
- 行尾註釋有點讓我糾結。它是註釋與第2點同性質,但它通常比較簡短,並且算的話一行含註釋的代碼算2行,也是「奇怪」。考慮再三,仍是決定不算。同理,行中間的註釋不算。
- 由工具建立的/導了的畢竟不是本身敲的,導出的SQL腳本若是算的話,真的很衝擊敲代碼的童鞋。你可能會說設計數據庫也是一種繁重的工做,正是有了設計纔有導出。也對,但一樣是繁重的工做的設計圖片,它並不導出「代碼行」。綜合考慮,這種不算。
創建標準是挺難的一種事,創建衆人喜歡的標準更是難上加難。衆口難調,許多人慣性地舉出「特殊狀況」來「反駁」。標準很差能夠討論改進,有標準總比沒有標準好。設計