1. 程式人生 > 遊戲攻略 >《原神攻略》平民胡桃雙巖配隊及輸出手法心得

《原神攻略》平民胡桃雙巖配隊及輸出手法心得

這個作業屬於哪個課程 2021春軟體工程實踐S班
這個作業要求在哪裡 團隊作業六——Beta衝刺+事後諸葛亮
這個作業的目標 程式碼規範

程式碼規範

1. 程式設計規約

(一)Gofmt

​ 所有的提交程式碼都應該通過檢測,儲存的時候執行 goimports

(二)命名風格

注意:一個名字在程式包之外的可見性是由它的首字元是否為大寫來確定的,謹慎命名。

  1. 包名

    • 包名必須全部為小寫單詞,無下劃線,越短越好。儘量不要與標準庫重名。
    • 禁止通過中劃線連線多個單詞的方式來命名包名。
    • 包名儘量與所在目錄名一致。
  2. .go檔名

    • 檔名必須為小寫單詞,允許加下劃線組合方式,但是頭尾不能為下劃線。
    • 非測試檔案禁止以_test.go命名。
  3. 常量

    • 常量、列舉名採用大小寫混排的CamelCase模式,不允許出現下劃線。
    • 禁止在程式碼中直接使用未經預先定義的常量。如: s := "diawhdoah" + id。
    • 按照功能來區分,並建議將公共常量置於私有常量之前。

    示例:

    const (
    	    KindPage = "page"
    	
    	    // The rest are node types; home page, sections etc.
    	    KindHome         = "home"
    	
    	    // Temporary state.
    	    kindUnknown = "unknown"
    	
    	    // The following are (currently) temporary nodes,
    	    // i.e. nodes we create just to render in isolation.
    	    kindRSS       = "RSS"
    	)
    
    • 如果是列舉型別的常量,需要先建立相應型別

    示例:

    type tstCompareType int
    const (
    	    tstEq tstCompareType = iota
    	    tstNe
    	)
    
  4. 變數名

    • 變數命名基本上遵循相應的英文表達或簡寫,嚴禁使用拼音與英文混合的方式,儘量避免使用拼音。
    • 杜絕完全不規範的縮寫,避免望文不知義。如:condition“縮寫”成 condi。
    • 變數名稱一般遵循CamelCase法,並且不允許出現下劃線。
    • 在函式外部申明必須使用var,不要採用:=,容易踩到變數的作用域的問題。
    • 全域性變數必須為大小寫混排的CamelCase模式,不允許出現下劃線。首字母根據作為範圍確定大小寫。

    示例:

    	var Global int //包外
    	var global int //包內
    
    • for迴圈變數可以使用單字母。
  5. 結構體(struct)

    • 結構體名必須為大小寫混排的駝峰模式,不允許出現下劃線,可被包外部引用則首字母大寫;如僅包內使用,則首字母小寫。

    示例:

    	type ServicePlan struct 
    	type internalBroker struct
    
  6. 介面

    • 介面名必須為大小寫混排,支援包外引用則首字母大寫,僅包內使用則首字母小寫。不能有下劃線,整體必須為名詞。
  7. 函式和方法名

    • 函式名必須為大小寫混排的駝峰模式。
    • 方法接收名必須為大小寫混排,首字母小寫CamelCase格式。方法接收者命名要能夠體現接收者物件。
    • 接收者名不要使用me,this 或者 self 這種泛指的名字。
  8. 引數名

    • 引數名必須為大小寫混排,且首字母小寫,不能有下劃線。
  9. 返回值

    • 返回值如果是命名的,則必須大小寫混排,首字母小寫。
    • 函式的返回值應避免使用命名的引數。

(三)語法規定

  1. 在系統致命錯誤以外的地方不應該使用panic。應該將錯誤作為返回值返回給上一級。
  2. 更多參考Go 經典譯文:Uber 開源的《Go 語言編碼規範》,開發中儘量避免bad操作。

2. 單元測試

  1. 單元測試是可以重複執行的,不能受到外界環境的影響。
  2. 單元測試粒度一般是方法級別。
  3. 新增程式碼及時補充單元測試,如果新增程式碼影響了原有單元測試,及時修正。
  4. 單元測試應該是全自動執行的,並且非互動式的。不應該使用fmt.Println