簡體   English   中英

什么是Clojure規格?

[英]What is Clojure spec?

我無法理解clojure的意圖。 規范

它解決了什么樣的問題?

我們為什么要使用它?

spec允許您創建數據和功能的規范。 規范是它們的核心預測(基於現有的Clojure謂詞)和結構,而不是基於類型,正如您在靜態類型語言中看到的那樣。 通過基於謂詞的規范,您可以編寫比大多數類型系統更具表現力並使用與代碼相同的語言的規范。

在函數上定義的規范指定了args的規范,返回值以及args return的函數。 最后一個允許檢查比在大多數類型或合同系統中檢查的更大范圍的事物(容易)。

定義規格后,您可以使用它們:

  • 根據規范檢查值是否有效
  • “符合”一個值,為您提供值的解析和解構版本
  • 詳細解釋為什么值不符合規范(作為字符串,stdout或作為數據)
  • 使用描述性規范增強功能文檔
  • 從規范生成示例數據
  • 在開發中斷言一致性,但在生產中將它們關閉
  • 檢測開發中的無效調用或測試已檢測的函數
  • 為特定函數生成並運行基於屬性的測試
  • 開發將儀器和測試生成與存根和模擬設施相結合的測試

您可以使用規范來改進開發(通過澄清和記錄您的意圖,捕獲無效調用,並聲明數據有效性),測試(捕獲無效調用,斷言有效性,生成示例數據以及為您的speceded函數生成自動測試)和您的生產(通過使用一致性進行解構)。

此外,Clojure核心對規范的使用將導致更好的錯誤消息,並擴展核心庫使用的開發時間檢查,以便更早地發現錯誤。

關於規范庫的那些問題有點寬泛,尤其是“我們為什么要使用它”的一部分。 你讀過以下內容嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM