新的Elixir 1.12 - 开发人员的观点

2021-06-23 23:49:22

一个月前,发布了一个新版本的Elixir语言。它收到了1.12版的名称。最新版本是启用Elixir以用于更多脚本应用程序的方法。

在这篇文章中,我想摘要我们作为开发人员的新手。我对语言的变化方向和成熟度感到满意。没有突然的版本兼容性。

整个更改列表可在GitHub上的发布说明中提供。此外,官方公告发布在Elixir语言网站上。继续检查自己!

总的来说,您可以将更改视为Elixir为更高的脚本使用情况。不再需要设置整个项目。一个简单的脚本就足够了。此更改使得可以放弃Python或Ruby并将环境统一到一种语言。它可以为Devops团队或私人应用程序提供方便。

在最新版本中,主要的新奇是mix.install。第一个参数是应用程序列表(因为它当前在MIX.EXS设置中)。但是,第二个参数是可能促进工作的其他选项。

使用Force的能力:True选项允许您强制删除缓存。如果没有从_deps目录删除数据的麻烦,它将允许更友好的依赖性更新。当您正在进行状态变化动态时,它可能是有益的。

使用脚本非常简单。使用缓存机制允许您加快性能并消除多次下载依赖性的需要。构建机制以与当前使用的方式类似的方式制备。第一次运行它,它将下载,编译和缓存依赖项。每个后续一个都将基于缓存来加速过程。

互动控制台已收到两个主要的新奇。首先是能够以与模块相同的方式使用管道操作员。当管道运算符启动该行时,这将消除粘贴代码(从编辑器)时的问题。

第二个变化是使用该功能时直接检查参数的能力。您将不再需要删除整行以通过H Module_name.function_name引用帮助。

另一个重要的变化是system.trap_signal / 3以及捕获信号的能力越小。使用此功能时要小心,因为它对系统产生重大影响。

我们最喜欢的枚举模块也将接收更改。这是例如count_until / 2。这将允许您检查表单中的约束:在最多/最多X项中以令人令人令人令人享受。

也可以使用Zip_with / 2。这将使元素更容易。特别是两组以上,通过令人令人令人令人令人愉快的一次,并使用我们定义的功能。

经过10年的发展,Erlang / OTP 24也被释放了!它引入了许多性能改进,可能对您的应用产生重大影响。

错误报告方法也很棒。而不是错误本身并强制搜索文档,我们可以直接从函数执行的结果中读取解释。

Interactive Elixir(1.11。0)IEX(1)> ETS =:ETS。新(:示例,[])#参考< 0.384581281.223553> IEX(2)> :ETES。删除(ETS)真IEX(3)> :ETES。插入(ETS,:CONTER_BE_A_TUPLE)**(ArgumentError)参数错误(STDLIB 3.15):ETS。插入(#参考< 0.3845811859.2669281281.23553>:shaky_be_a_tuple)

Interactive Elixir(1.12。0)IEX(1)> ETS =:ETS。新(:示例,[])#参考< 0.05641012.1058144260.76455> IEX(2)> :ETES。删除(ETS)真IEX(3)> :ETES。插入(ETS,:CONTER_BE_A_TUPLE)**(ArgumentError)在给定的参数中找到错误:* 1 St参数:表标识符不引用现有的ETS表* 2 ND参数:不是元组(STDLIB 3.15):ETS 。插入(#参考< 0.105641012.1058144260.76455>:shaky_be_a_tuple)

第二种使用最新的Elixir和Erlang版本。你知道什么是错的。指定了错误的类型参数。这一变化既是erlang的变化也是指示这种错误,并在Elixir侧正确显示它们。

如果要自己测试更改,请使用以下命令安装Elixir 1.12.1(当前最新版本)和Erlang / OTP 24。

ASDF Plugin-Update --all#下载和设置Erlang / OTP 24作为默认ASDF安装Erlang 24.0.1 ASDF Global Erlang 24.0.1#下载和设置Elixir 1.12作为默认ASDF安装Elixir 1.12.1-OTP-24 ASDF Global Elixir 1.12.1-OTP-24

安装后,值得执行命令混合Local.rebar以使用最新版本的钢筋。

作为示例,您可以在Github上下载我的公共存储库的列表(以JSON格式)。只需使用命令elixir github-repos.ex运行下面的代码

#github-repos.exs mix。安装([{:jason,"> = 1.0.0"},{:httpoison,"〜> 1.8"})defmodule githubrepos do def load(用户名)做" https://api.github.com/users/#{username} / repos" |> httpoison。得到! ()|>地图 。得到(:body)|>杰森。解码! ()|> do_some_calc()结束defp do_some_calc(数据),做:数据端" bartoszgorka" |> githubrepos。 load()|> IO。检查 ()

有关详细信息,请检查Wojtek Mach的存储库:mix_install_examples。如果您准备脚本并在评论中分享它,它会更好。

Elixir 1.12版本引入了一些重大变化。主要是能够通过MIX.INSTALL以与整个项目的方式相同的方式创建脚本和使用依赖项。 Erlang / OTP 24是一种提高应用程序性能和描述错误的新方法的一种方式。

交互式控制台在软件开发和调试过程中可以更有用。特别是更容易使用管道操作员的可能性将允许更快的原型设计。枚举的更改也可以让您更轻松地在项目中创建更改。

新版本的语言是测试其功能的绝佳机会。分享您的脚本或应用程序,可以通过新的Elixir 1.12解决。