每周收集和 Elixir 相关的文章和讯息.

有任何对文章的补充和错误之处欢迎邮件指出: zengzhilgATgmail.com

A GitHub Workflow for Elixir Releases

Richard 分享了一份在 Github Actions 中部署 Elixir 1.9 应用的配置.

Protocols in Elixir

Ben Schmeckpeper 用一个生成 SVG 结构的实际例子来理解 Elixir 中 protocals 的用处

Serving iOS/Android Deep Links from Phoenix

Justin 给了一个使用 Plug 管理静态资源的方法使得网站可以为手机端的通用链接( iOS Universal Links 和 Android App Links )提供配置 . 我们可以举一反三的让 Phoenix 直接处理各种各样的静态资源. 具体使用了

  1. plug Plug.Static,
  2. at: "/.well-known",
  3. from: {:my_app, "priv/static/well-known"},
  4. gzip: false,
  5. content_types: %{"apple-app-site-association" => "application/json"}

How do you update relations in Phoenix forms?

Alchemist Camp 出品的又一篇教程. 这篇文章主要讲述了如何在 Phoenix 表单中处理创建和更新属于( belongs_to )和 一对一( has_one )关系的方法. 介于我最近也做了一个 多对多(一个 article 有多个 tags) 的功能, 这里也把我参考的文章放在这里 The Complete Guide to Nested Forms in Phoenix

What’s the Fastest Data Structure to Implement a Game Board in Elixir?

Tobias 带我们使用 Benche 的方式对比了构建 9 乘 9 矩阵所使用各种数据结构的性能区别. 有两个方面的看点: 1. Elixir 和 Erlang 中数据结构的区别 2. Benche 这个强大的 Hex 库

Hex v0.20 released

Hex 发布了新的版本, 包含以下新的特性:

  • 每个项目mix中可以配置自己的 Hex 配置, 具体可以查看 mix help hex.config
  • 添加 mix hex.package diff 命令, 比如使用 mix hex.package diff decimal 1.6.0..1.7.0 可以显示两个版本之间的差异. 升级和查错的时候会非常有帮助.
  • 现在组织也可以在 hex.pm 中发布公共包.
    具体可以看 release notes

Elixir Releases + Phoenix + Gigalixir

来自 Gigalixir 的 Jesse Shieh 写了一篇如何使用 Elixir 新的 release 功能来部署 Phoenix 应用的指南.