個人工程實踐選題是「加密類圖章的智能檢測」。下面結合工程實踐選題分析這個項目源代碼的代碼規範與編程風格。python
(1)目錄結構編程
因爲是一個python項目,因此採用pycharm軟件進行編程實現,下面是代碼的在pycharm下目錄結構:目錄結構符合通常項目結構佈局,較爲簡潔明瞭。編程語言
(2)類名/函數名/變量名等命名採用的是 Snake Case方式這是書寫複合詞或短語的一種慣例(practice)。複合詞或短語中的各個單詞之間用下劃線(_)分隔而且沒有空格。複合詞中的每個單詞的首字母一般都是小寫的,而且複合詞的第一個字母既能夠是大寫的又能夠是小寫的,例如:「foo_bar」和「Hello_world」。通常認爲 Snake Case 的可讀性要比 Camel Case 要強。而文件名採用的是按照存放的內容進行命名。下面兩張圖分別展現了文件名命名方法和類名/函數名/變量名等命名等命名方法。函數
(3)接口定義規範,以其中一個函數爲例,函數封裝了功能實現,調用時給出指定參數便可,部分參數給出默認參數,缺省時可按默認值傳入。直接將功能封裝在函數內部,調用函數傳遞指定參數便可實現。程序開發過程當中,寫代碼是爲了實現需求。當咱們的代碼經過了編譯,只是說明它的語法正確,功能可否實現則不能保證。 所以,當咱們的某些功能代碼完成後,爲了檢驗其是否知足程序的需求。能夠經過編寫測試代碼,模擬程序運行的過程,檢驗功能代碼是否符合預期。單元測試的特色就是開發者編寫一小段代碼,檢驗目標代碼的功能是否符合預期。一般狀況下,單元測試主要面向一些功能單一的模塊進行。因此在此項目項目中,每當實現一部分功能,就測試具體的要求是否能實現。佈局
(4)下面的一些作法符合代碼規範和風格通常要求,好比單元測試
4.1 代碼中的命名沒有使用拼音與英文混合的方式,也沒有直接使用中文的方式測試
4.2 類名/函數名/變量名等命名採用的是 Snake Case方式優化
4.3 包名統一使用小寫,點分隔符之間有且僅有一個天然語義的英語單詞加密
(5)下面作法有悖於「代碼的簡潔、清晰、無歧義」的基本原則spa
好比常量並無採用寫方式,類名/函數名/變量名等命名有點混亂,有個別採用駝峯命名規範,另外程序的註釋太少。
優化方法就是,改進常量的命名方式,規範類名/函數名/變量名的命名。能夠按照一個命名規範統一改進。
(6)同類編程語言或項目在代碼規範和風格的通常要求以下
6.1 代碼中的命名均不能如下劃線或美圓符號開始,也不能如下劃線或美圓符號結束
6.2 代碼中的命名嚴禁使用拼音與英文混合的方式,更不容許直接使用中文的方式
6.3 類名使用UpperCamelCase風格,必須聽從駝峯形式(某些狀況諸如領域模型相關的命名除外);方法名、參數名、成員變量、局部變量都統一使用lowerCamelCase風格,必須聽從駝峯形式
6.4 常量命名所有大寫,單詞間用下劃線隔開
6.5 包名統一使用小寫,點分隔符之間有且僅有一個天然語義的英語單詞