用过的来说说效果,有没有坑
已用于生产环境
http://www.phoenixframework.org/blog/the-road-to-2-million-websocket-connections 看看上面这篇文章可能会引起你相当大的兴趣,单机撑起 2 百万的 websocket 连接哦
我在用 Phoenix,前一阵子写了一个简单的有简单 CRUD 功能的 Demo: https://github.com/cassiuschen/workshop_elixir
总的来说语法糖有一些,写过 Ruby 会觉得很容易上手,总比直接写 Erlang 要好很多……Phoenix 框架响应速度也确实快,返回一个 404 只要 0.3ms,部署极其简单,编译成二进制文件直接运行就可以了。
要说坑,目前轮子还不够多,导致很多东西需要自己手写;Elixir 语言的抽象也不算很高,毕竟只是 Erlang 的 DSL,举例来说比如Array
这个抽象,在 Ruby 中用的很爽,但在 Elixir 中很明确的没有数组这个概念,而是最基础的 List。用链表来直接当做数组用是一件很痛苦的事情……我想你也懂得……
#19 楼 @fsword 也不能完全这么说……程序的入口文件是一个 Bash 脚本,会调用打包好的别的二进制包来运行,比如 evm 什么的。开发的时候首次启动 server 也需要先行编译链接的类库,如果项目大首次启动用时还挺长的……但最终生产环节不用装 Elixir,Phoenix 框架会把静态文件打包,然后代码编译成二进制包,再附上用于跑 Erlang 的工具链,直接放到服务器上跑就可以啦,超简单:
官方文档:http://www.phoenixframework.org/docs/advanced-deployment 教程:http://learnelixir.com/blog/2014/10/16/deploy-phoenix-application-to-a-ubuntu-server/
#20 楼 @cassiuschen 原来指的是这个,那倒不稀奇,面向分布式领域的技术必须解决软件包自包含的问题,所以 erlang 有这个基础设施,elixir 也继承了这份遗产。我本以为你说的是类似 golang 那样的静态编译技术呢
学习中。之前啃过 Erlang,遇上 Elixir 比较习惯。 正在做一个基于 Elixir/Phoenix 的项目,搞起~
elixir-cn 更新太少了也,不知道哪里交流多些。