每周收集和 Elixir 相关的文章和讯息. 有任何对文章的补充和错误之处欢迎邮件指出: zengzhilgATgmail.com

Elixir lists vs Elixir tuples

Alchemist Camp 的新文章. 学习 Elixir 的时候总是会疑惑 List 和 Tuple 到底什么时候用呢? 这篇短文说不定可以帮你解答疑惑. 简单来说, List 是用链表( Linked List) 实现, 在内存中不是连续存储, 所以通常访问头部 (Head) 很快是 O(1), 而访问列尾则为 O(n); 反观 Tuple 在内存中存储是连续的, 访问很快是 O(1), 但是删除或添加元素涉及到拷贝整个数据, 所以是 O(n). 文章还列出了操作和访问这两种类型的不同方式.

Monitor Your Phoenix Application with Sentry

Alex Koutmos 在这篇文章中手把手指导我们如何部署一个私有的 Sentry 错误追踪服务(使用这个 Docker 包), 然后在 Phoenix 项目 中集成部署好的 Sentry 服务. 我还是第一次知道 Sentry 也可以搭私有的..

Oban Recipes Part 1: Unique Jobs

Parker Selbert 开立了一个系列文章. 主要讲解和 Oban 这个 hex 库相关的实践方法. Oban 是一个以 PostgreSQL 为后端的后台任务服务. 这一篇主要展示了如何保证所执行任务的唯一性, 举个例子, 用户再保存表单的时候会触发发送邮件的任务, 如果碰到一个手快的用户, 一个表单点了两遍, 就有可能会执行两次任务, 有兴趣不? 有兴趣就去看看吧.

Phoenix LiveView Challenge for Developers

Dockyard 开展了以 Phoenix LiveView 为主角的开发者比赛. 比赛从 7.29号开始至9.30号截止. 之后会有评委们选出最佳应用. 大家踊跃参加吧. 本人也参加了 : ) 虽然还不知道要干嘛.

Verbalex - Regex with the reader and writer in mind

Tyler Barker 写的这个 hex 库可以让大家用比较自然或者说更易读的形式描述正则表达式. 注意这是一篇教程, 其中举了几个常见的正则以及使用 verbalex 书写的例子. 我在这里给个例子.

  1. def email_regex do
  2. ""
  3. |> Vlx.word_boundary()
  4. |> local_part()
  5. |> Vlx.then("@")
  6. |> domain()
  7. |> Vlx.word_boundary()
  8. |> Regex.compile!
  9. end
  10. email_regex()
  11. # ~r/\x08[[:alnum:]._%+-]+(?:@)[[:alnum:].-]+(?:\.)[[:alpha:]]{2,}\x08/

One Task to Rule all Elixir Analysis & Testing Tools

Karol Słuszniak 写了一个插件 ex_check, 添加好后可以通过 mix check 自动运行 compiler, formatter 还有集成测试. 基本上装了这个就不用花时间逐个的安装相应的包了. 总之就是一把梭.

Elixir resources

Antonín Král 收集了一系列使用 Elixir 一般会用到的各种文章. 其中包括了以下几个大块

  1. 部署, 容器和 Kubernetes.
  2. 分布式系统 / 数据类型.
  3. 代码格式化, 应用结构设计 和 监控相关的最佳用例.

涉及的文章很多, 请选择食用.