最近使用 Elixir 有点多, 经常需要观察一些依赖 (Deps) 的实现, 比如想加个日志打印点 IO.inspect 啥的观察下某个变量,才能更好的理解某个 Elixir 的依赖。...这里介绍下一些调试的方式: 这里以 yeshan333/ex_integration_coveralls 为例子.
Elixir 是一个基于 Erlang 虚拟机的函数式、面向并行的通用编程语言。...Elixir 以 Erlang 为基础,支持分布式、高容错、实时应用程序的开发,同时亦对其进行扩展使之借助宏实现元编程,并通过协议支持多态。 José Valim 是 Elixir 语言的设计者。...Elixir 是编写高度并行处理,高可靠性应用的极佳选择。 Elixir主要特性 基于 Erlang 虚拟机(BEAM)之上。...一直在使用OTP,包括mix、Elixir编译器,甚至问题跟踪系统都符合OTP约定。...点击「阅读原文」查看知乎专栏文章「elixir:灵丹妙药?or 徒有其名?」
这篇文章谈一谈最近火爆的 Elixir,同时说一下对编程语言选择的看法。同时作为 Erlang 发烧友,Elixir 不可不提。即使有了那么多编程语言 Elixir 也值得接触。...现在开始接触 Elixir 对编程语言选择的一点看法 Elixir 的元编程 (meta programming) 和 DSL 很多有用的链接 ?...Erlang 项目可以用 rebar ,但是 Elixir 的 mix 友好的很多倍。 另外一个好的 REPL 命令行工具非常重要,因为这可以方便的侵入应用进行调试,或者测试一条代码片段。...比如 Java、Node.js、Scala、Elixir 等等。 说了这么多,回到 Elixir。首先 Elixir 执行和 Erlang 没有任何差别。Erlang 的优点 Elixir 完全具备。...另外 Elixir 比 Erlang 多出的好处在于更加友好的语法、工具链、社群。很多之前写 Ruby 的开始写 Elixir,因为他们的语法最接近。
从 1.2 版本开始, with 运算符是需要点时间去理解的 ELixir 特性之一. 它经常在使用 case 的情形下使用, 反之亦然....回想一下, Elixir 中的条件语句也是函数. 它们可以被插入或链接到其他条件的表达式部分....res} -> do_something_with_res(res) {:error, {:some_error, err}} -> handle_some_error(err) end 相关文章 Elixir
Elixir Macros 系列文章译文 [1] (译) Understanding Elixir Macros, Part 1 Basics [2] (译) Understanding Elixir...(译) Understanding Elixir Macros, Part 4 - Diving Deeper [5] (译) Understanding Elixir Macros, Part 5...可跟踪函数的工作方式与普通函数一样, 但每当我们调用它时, 都会打印出调试信息....}, {:b, [if_undefined: :apply], Elixir}]}, {:Elixir, import: Kernel], [{:a, [if_undefined...: :apply], Elixir}, {:b, [if_undefined: :apply], Elixir}]} ]} 所以实际上我们的 guard head 实际上是这样的: {:when, _
作为Kickstarter的一部分,我们创建了免费的内容来向更多的人介绍Elixir。这是我们在这篇文章末尾宣布的内容。我们也在继续在DailyDrip Elixir主题中建立Firestorm论坛。...随着这个项目的发展,将会为任何构建生产Elixir应用程序可能遇到的问题提出真实的解决方案。我们希望这有助于个人和团队拥护Elixir及其社区的所有真棒。...Episodes Week 1: 初级Elixir 在第一周,您将学习Elixir编程语言语法及其工具的基础知识,您将学习如何在进程之间发送消息。 我们用自我指导的练习来构建一个独立的过程。...[001.1] Introduction to Elixir — Introduction to the language, and installation of Erlang and Elixir...它还提供监督树,这是使用Elixir构建容错应用程序的构建块。
Contents Ruby 和 Elixir(以及 Phoenix) 的起源 搞清楚 Ruby 和 Elixir 的优劣势 Elixir 和 Ruby 的最佳实践 最后,到底是选择 Elixir 还是...Elixir 的优势 经得起时间考验的解决方案(指 Elixir 运行在 Erlang VM 上) 上面已经提到,Elixir 是运行在 Erlang 虚拟机上(BEAM),不仅仅是因为 Erlang...Erlang 库 Elixir 可以调用 Erlang,Elixir 项目中可以非常方便的集成 Erlang 的库。...相关文档 Elixir 官方网站 上有大量的 Elixir 使用的文档,以及非常活跃的 Elixir 社区,文档也可以从终端中阅读,非常方便。...Elixir 的劣势 Narrow Talent Pool 虽然 Elixir 诞生于 2011 年,但 Elixir 仍然被认为是一种小众语言。导致很多方面的空白。
Elixir Macros 系列文章译文 [1] (译) Understanding Elixir Macros, Part 1 Basics [2] (译) Understanding Elixir...虽然我确信编写宏不是很难, 但与普通的 Elixir 代码相比, 它确实需要更高视角的关注. 因此, 我认为这了解 Elixir 编译器的一些内部细节是非常有帮助的....如果你很熟悉 Elixir 和 Erlang, 但对宏还感觉到困惑, 那么这些内容很适合你. 如果你刚开始接触 Elixir 和 Erlang, 那么最好从其它地方开始....创建 AST 片段 什么是 Elixir AST? 它是一个 Elixir Term, 一个深度嵌套的层次结构, 用于表述一个语法正确的 Elixir 代码. 为了说得更明白一些, 举个例子....Macro.to_string(final_expr) "(\n a = 1\n b = 2\n)\n\na + b" 例子: tracing expression 理论结合实践, 一个简单例子, 我们将编写一个帮助我们调试代码的宏
两年多的时光弹指过去,Elixir在最近终于发布了1.0.x版本,而Jose本人又频频上镜,到处布道Elixir,我才重新关注起这门语言。...所以我就重新拾起Elixir的文档,边啃边写。...借着这股兴奋劲,我来讲讲自己对Elixir的浅显认知。 惊艳的语法 Elixir的语法在向Ruby致敬,同时透着Erlang和Prolog的灵气。...当然,植根于Erlang的Elixir,又有有很多自己的特点。...而Elixir让你的代码和你的思路高度一致。 这个语法特点来源于Prolog,遗憾的是,继承自Prolog的Erlang没有将其捡来,却把它遗给了继承于Erlang的Elixir。
这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情 Elixir 是一门非常强大的 函数式 编程语言,Elixir 社区构建了一个插件,该插件可以在 Jetbrains 的 IDE...上运行 Elixir 程序且是用于所有的 Jetbrains 产品。...在开始之前确定你已经安装了 Elixir,安装 Elixir 同时会安装 Erlang,因为 Elixir 是运行在 Erlang 虚拟机上(BEAM)。...如果你的开发平台是 MAC,可以通过 brew install 安装最新版的 Elixir,并且通过 elixir --version 命令来查看安装的 Elixir 的版本号。...之后会选择项目的 SDK,安装的 Elixir Plugin 可以检测到你安装的 Elixir SDK,并且可以将这个 SDK 设置为默认的 SDK。
安装好 vfox 之后,我们再安装下插件: # 添加 vfox-erlang 插件 vfox add erlang # 添加 vfox-elixir 插件 vfox add elixir 接下来我们就可以通过上面安装好的两个...vfox 插件 vfox-erlang 和 vfox-elixir 去安装管理多个 Erlang 和 Elixir 的版本了。...通过 vfox-erlang 插件安装 Erlang/OTP 因为 Elixir 依赖于 Erlang,所以在安装 Elixir 之前,我们需要先安装下 Erlang。...接下来开始安装 Elixir 吧 安装 Elixir 因为安装 Elixir 也是从对应版本的源码进行编译安装的,Elixir 的编译需要依赖到 Erlang,我们先让当前使用的 shell 能找到刚才安装好的.../OTP 版本和 Elixir 版本是兼容的,可以查看这个文档去确认兼容性: 《compatibility-and-deprecations.html#between-elixir-and-erlang-otp
Elixir / OTP和面向过程的编程 在Elixir / Erlang和OTP中,通信原语是执行语言的虚拟机的一部分。在进程之间和机器之间通信的能力建立在语言系统的中心。...Elixir或Erlang的任何培训课程必须(通常是)包括OTP,并且应该从一开始就有一个过程方向,而不是“现在你可以在Elixir中编写代码,所以让我们来做并发”类型的方式。...了解基础知识 什么是Elixir和OTP? Elixir是一种基于Erlang VM的功能编程语言。OTP是一个面向过程的编程框架,与Erlang和Elixir是一体的。 什么是面向过程的开发?...什么是最好的采用Elixir/OTP和面向过程的开发? 从培训或探索开始,着重于OTP和过程管理,然后是Elixir的语法和功能方面。...为什么选择Elixir / OTP和面向过程的开发?
Elixir Macros 系列文章译文 [1] (译) Understanding Elixir Macros, Part 1 Basics [2] (译) Understanding Elixir...(译) Understanding Elixir Macros, Part 4 - Diving Deeper [5] (译) Understanding Elixir Macros, Part 5...是时候继续探索 Elixir 的宏了. 上次我介绍了一些关于宏的基本原理, 今天, 我将进入一个较少谈及的领域, 并讨论Elixir AST 的一些细节...., import: Kernel], [ {:my_fun, [context: Elixir], [ {:arg1, [if_undefined: :apply], Elixir...(2)> quote do a == b end {:==, [context: Elixir, import: Kernel], [{:a, [if_undefined: :apply], Elixir
Elixir Macros 系列文章译文 [1] (译) Understanding Elixir Macros, Part 1 Basics [2] (译) Understanding Elixir...(译) Understanding Elixir Macros, Part 4 - Diving Deeper [5] (译) Understanding Elixir Macros, Part 5...这是 Elixir 中的宏系列的第二篇. 上一次我们讨论了编译过程和 Elixir AST, 最后讲了一个基本的宏的例子 trace. 今天, 我们会更详细地讲解宏的机制....因为宏有两个看似矛盾的性质: 宏也是 Elixir 代码 宏在在最终的字节码生成之前的展开阶段运行 Elixir 代码是如何在被生成之前运行的?它不能....由于宏也是函数, 而 Elixir 在调用函数时可以省略括号, 所以我们可以这样写: Tracer.trace 1+2 这很可能是 Elixir 之所以不在函数调用时要求括号的最主要原因.
Elixir凭借其Actor模型与轻量级进程,天然支持高并发。本爬虫利用此优势,结合HTTPoison与Floki,高效实现多任务网页抓取、链接提取与数据解析,是处理大规模数据采集的理想方案。...下面是一个使用 Elixir 实现的高并发爬虫示例。Elixir 的 Actor 模型和轻量级进程使其非常适合构建高并发的网络应用。...defmodule ConcurrentCrawler do @moduledoc """ 高并发网页爬虫实现 使用 Elixir 的并发特性和 HTTPoison 库 """ use Task...ConcurrentCrawler.crawl(urls, 20) # 20是并发数# 或者作为监督树的一部分启动{:ok, pid} = ConcurrentCrawler.start_link(urls, 20)这个实现利用了 Elixir...总之,该爬虫充分展现了Elixir在并发处理上的强大能力。代码结构清晰,易于扩展,您可根据实际需求添加代理、去重或分布式存储等功能,以构建健壮的爬虫系统。
Elixir Macros 系列文章译文 [1] (译) Understanding Elixir Macros, Part 1 Basics [2] (译) Understanding Elixir...(译) Understanding Elixir Macros, Part 4 - Diving Deeper [5] (译) Understanding Elixir Macros, Part 5...在 module 中生成代码 正如我在第 1 章中提到的那样, 宏并不是 Elixir 中唯一的元编程机制. 我们也可以在模块中直接生成代码....() = :running iex(line 13) Elixir.Test.pause(:running) = :paused iex(line 13) Elixir.Test.resume(:paused...回顾 关于 Elixir 宏的系列文章到此结束了. 我希望你觉得这些文章有趣且有学习意义, 并且对宏的工作机制有了更多的了解和使用信心.
Elixir Macros 系列文章译文 [1] (译) Understanding Elixir Macros, Part 1 Basics [2] (译) Understanding Elixir...Macros, Part 2 - Micro Theory [3] (译) Understanding Elixir Macros, Part 3 - Getting into the AST [4]...(译) Understanding Elixir Macros, Part 4 - Diving Deeper [5] (译) Understanding Elixir Macros, Part 5...- Reshaping the AST [6] (译) Understanding Elixir Macros, Part 6 - In-place Code Generation 原文 GitHub...(5,2) = 2.5 iex(4)> Test.div(5, 0) iex(line 5) Elixir.Test.div(5,0) = :error 正如你所看到的那样, 可以进入 AST, 分解它
initial version of Elixir AST, which is expressed in the form of Elixir Terms; if you are interested...in Elixir’s AST, you can follow this Project arjan/ast_ninja; Step 2、In the Elixir AST stage, some...AST in the Expanded Elixir AST stage; Step 3、Final Elixir AST will be converted into Erlang standard...AST form (Erlang Abstract Format) after being processed by Elixir Compiler; Step 4、Finally, Elixir...For details on the compiler, see: elixir_compiler.erl and elixir_erl.erl source code For more details
前言 使用 Elixir 开发点小玩意的时候,面对经常需要走外网下载依赖 (Elixir 的镜像站 UPYUN 使用有时候也经常抽风) 的时候,为了避免需要不断的进行网络代理配置,有想到之前经常使用 GitHub...通过 https://github.com/codespaces/new 我们能配置 GitHub 使用的环境规格和部署地区: 加速 Elixir 开发环境 Elixir 应用构建拉依赖经常需要走外网,...但 GitHub 默认创建的 Codespaces 环境默认一般都是 js 的开发环境 Dockerfile,并没有 Elixir 环境,需要我们自己单独配置一手,好在提供了 devcontainer.../tree/main/.devcontainer { "image": "ghcr.io/yeshan333/erlang_elixir_asdf_ubuntu_container:latest",..."customizations": { "vscode": { "extensions": ["jakebecker.elixir-ls"] } }, "postCreateCommand
CoAP采用了二进制报头,而不是文本报头(text header) CoAP降低了头的可用选项的数量 CoAP减少了一些HTTP的方法 CoAP可以支持检测装置 Refs IoT with Elixir