- Params Modules for Phoenix">Params Modules for Phoenix
- Nightly Tasks with a GenServer">Nightly Tasks with a GenServer
- ExDoc v0.20">ExDoc v0.20
- Micro: Read cmd line pipes in elixir">Micro: Read cmd line pipes in elixir
- Cleaning up Phoenix Controller Actions">Cleaning up Phoenix Controller Actions
- Elixir protocols, how do they work? the erlang perspective">Elixir protocols, how do they work? the erlang perspective
- Real World Phoenix |> A LiveView Dashboard">Real World Phoenix |> A LiveView Dashboard
- The Elixir AST explained using the AST Ninja">The Elixir AST explained using the AST Ninja
- 一些看到比较有用的视频教程网站
来自 Elixir Radar, ElixirDaily, ElixirWeekly. 有任何对文章的补充和错误之处欢迎邮件指出: zengzhilgATgmail.com
PS: elixir简讯的邮件订阅服务正在构建中ing, 敬请期待 : )
Params Modules for Phoenix
通常传到服务器的参数都应该是不可信的, 要处理这些数据我们可以通过所谓的 Params 模式(pattern) 对这些传入controller的参数做校验和处理. 其核心利用了Ecto中的 Ecto.schema 和 Ecto.Changeset, 难怪ecto现在将sql层分离作为一个单独的库了, 用Ecto我们也不需要和数据库打交道哇. 想知道更多ecto不那么常用的用法请参考
Lonestar ElixirConf 2019 - Ecto Without a DB - Greg Vaughn (youtube)
Nightly Tasks with a GenServer
Eric 使用GenServer为自己的游戏系统做了一个简单但有效的定时任务服务. 使用了Process.send_after/4
和 handle_continue/3
ExDoc v0.20
Wojtek 介绍了新版ExDoc带来的更多方便功能, 包括 快捷键支持, 文档搜索补全于原文搜索支持以及一些其他的特性.
Micro: Read cmd line pipes in elixir
Regis 在其博客展示了如何将终端输出导入Elixir中处理的方法.其实在*nix系统中已经内置一些方便的处理方式, 不过Regis用elixir处理的方式也别具一格.
Cleaning up Phoenix Controller Actions
Damon 提供了一种好的模式(pattern)来清理将大量变量通过render传入到view层时render参数太长的问题. 解决的重点在于使用Phoenix提供的assign/3
这样原本的写法
def index(conn, _params) do
....
conn
|> put_flash(:info, "Hello")
|> render("index.html",
users: users,
foo: foo,
bar: bar,
long_variable_name: long_variable_name,
other_var: get_other_var(),
last_var: last_var
)
end
就可以写成
...
conn
|> put_flash(:info, "Hello")
|> assign(:users, users)
|> assign(:foo, foo)
|> assign(:bar, bar)
|> assign(:long_variable_name, long_variable_name)
|> assign(:other_var, other_var)
|> assign(:last_var, last_var)
|> render("index.html")
Elixir protocols, how do they work? the erlang perspective
Mariano 从erlang的角度研究了下Elixir中的protocals是如何实现的. 要弄懂的话估计需要对erlang有点了解. 有兴趣的不妨一看.
Real World Phoenix |> A LiveView Dashboard
Tjaco Oostdijk 使用Liveview做了一个今年ElixirConf的倒计时页面, 还顺便加了个实时显示twitter相关讨论的小组件. 据他所说,由于现在和conf相关的推还不多, 可以试试改成#apple的推文试试, 估计内容会刷的飞起.
The Elixir AST explained using the AST Ninja
Arjan Scherpenisse 给elixir社区带来了一个叫做 AST Ninja 的小工具, 可以将elixir代码显示为对应的抽象语法树(AST), 该工具是一个开源的工具. 我感觉用LiveView应该会很好实现, 不知道是不是的.
一些看到比较有用的视频教程网站
pragmaticstudio
包含elixir, ruby还有前端的视频资料. 按课程打包收费
elixircasts
以elixir相关内容为主, 订阅制, 部分内容免费