Elixir 1.7 來啦

elixir elixir 1.7 新版本 你沒有見過的船新版本


Elixir v1.7 released [1]

這次來了什么新東西呢?

更好的文檔

Elixir 1.7 給文檔增加了一些元數(shù)據(jù),用于描述作者,版本號等信息

@moduledoc "A brand new module"
@moduledoc authors: ["Jane", "Mary"], since: "1.4.0"

不僅如此,現(xiàn)在的文檔可以供所有 Erlang VM 語言來使用了。也就是說將來 Elixir 寫的 doc,Erlang 也能看了。

ExDoc 也得到了增強,第一感覺就是變的更花花綠綠了,這得益于全新的代碼高亮工具 Makeup
不僅是外觀發(fā)生了變化,這次升級還增加了更多的提示,比如給被棄用的內(nèi)容加上醒目的警告,顯示某個函數(shù)在哪個版本號被加入等。舉個栗子,看一下這次慘遭棄用的 Behaviour
未來的版本中(Elixir 1.8.0-dev 之后)還將加入對函數(shù)等進行自定義分組顯示的功能。栗子: Guards 分組。

當然,不僅限于 ExDoc,交互式文檔中也會輸出這些信息。
此外,文檔不但能看了,還能做結構化處理了。1.7 新加入的 Code.fetch_docs/1 函數(shù),使得開發(fā)者可以方便的獲取結構化文檔信息。

更好的日志

首先,在異常處理中新增了 __STACKTRACE__ 結構。它符合詞法作用域,而且無副作用。
調(diào)用的時候就像這樣

try do
  ... something that may fail ...
rescue
  exception ->
    log(exception, __STACKTRACE__)
    reraise(exception, __STACKTRACE__)
end

然后是整合了 Erlang/OTP 21 中新的 :logger 模塊,可以用它來方便的處理更多數(shù)據(jù)和元數(shù)據(jù)。
值得提到的是,在之前 Logger 中不論有沒有輸出,它的參數(shù)都會被執(zhí)行,比如雖然設置了 info 級別的日志,但是 debug 級的依然會被執(zhí)行。
現(xiàn)在,不被輸出的日志調(diào)用將在編譯時被清洗掉,而且還可以手動配置指定清理哪些日志調(diào)用,具體配置如下

config :logger,
  compile_time_purge_matching: [
    [application: :foo, level_lower_than: :info],
    [module: Bar, function: "foo/3"]
  ]

這樣配置就代表了,application :foo 中,低于 :info 級的日志調(diào)用將被清洗,同時,Bar 模塊下的 foo/3 函數(shù)所有級別的日志調(diào)用也將被清洗。

更好的測試

在之前,如果你在測試中寫出 assert foo(a, b) 這種代碼時,一般都需要配合打印出 a b 的值。
在新版本中,這件事 Elixir 替你做了。如果你寫出光禿禿的一個 assert ,那么一旦斷言失敗,就會給你打印出參數(shù)的值。
與此同時,測試結果也更加漂亮,更加具有色彩了。

如果你使用 mix test 命令進行測試,那這個功能你一定喜歡。本次更新新增了 --failed 參數(shù),執(zhí)行 mix test --failed只會執(zhí)行上次失敗的測試,節(jié)省了寶貴的時間。
另外一個改進是 --cover 參數(shù)將在統(tǒng)計完覆蓋率后將會在控制臺輸出一個統(tǒng)計總表,非常方便。


  1. 完整更新內(nèi)容列表 ?

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 本文章翻譯自 https://blog.codeship.com/comparing-elixir-go 譯者:關...
    Shawn_xiaoyu閱讀 9,043評論 3 26
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評論 19 139
  • 關于Mongodb的全面總結 MongoDB的內(nèi)部構造《MongoDB The Definitive Guide》...
    中v中閱讀 32,317評論 2 89
  • 笑語嫣然 我看不清你的臉 長路漫漫 走不完的眷戀 怎樣才能到你心坎 為赴一面之緣 說什么山高水遠 你那里略遠 舞步...
    一筍閱讀 239評論 0 1
  • 三件事 1.上午照看小雞 2.晚上七點給父母打電話 3.下午1個半小時回顧本周內(nèi)容 小確幸 可以去廣州出差^ω^ ...
    張志飛閱讀 150評論 0 0

友情鏈接更多精彩內(nèi)容