感觉这排名逻辑该更新了吧?考虑一下时间维度啥的
我们后端是 Elixir。ads 和 Data/ML 都是 Scala
帮公司发的。学不动了😂
不巧,今晚刚好有事。。😂
来来来
@ericguo 期待大神
票价和 RubyConf China 一样便宜,简直太良心
不明白 protobuf 跟 TCP 有啥关系,直接 encode 成 binary 发过去后,对方再 decode 就好了
顺手用 Elixir 写了一个
defmodule Mask do
import Bitwise, only: [bxor: 2]
def parse(
<<_fin::1, _::3, opcode::4, 1::1, payload::7, mask_bin::bytes-size(4),
masked_msg::bytes-size(payload)>>
) do
masks = Stream.cycle(:binary.bin_to_list(mask_bin))
msg =
:binary.bin_to_list(masked_msg)
|> Stream.zip(masks)
|> Enum.map(fn {byte, mask} -> bxor(byte, mask) end)
if Enum.member?([0x1, 0x9, 0xA], opcode) do
IO.iodata_to_binary(msg)
else
msg
end
end
end
bin = <<0x81, 0x85, 0x37, 0xFA, 0x21, 0x3D, 0x7F, 0x9F, 0x4D, 0x51, 0x58>>
Benchee.run(
%{mask: fn -> Mask.parse(bin) end},
time: 10,
formatters: [
Benchee.Formatters.Console
]
)
处理 binary 还蛮方便的。性能嘛,还行
CPU Information: Intel(R) Core(TM) i5-6267U CPU @ 2.90GHz
Number of Available Cores: 4
Available memory: 16 GB
Name ips average deviation median 99th %
mask 267.85 K 3.73 μs ±973.38% 3 μs 6 μs
熟悉 elixir(我们喜欢 elixir)
欢迎参加 Elixir Shanghai meetup 啊 https://github.com/elixir-cn/elixir-sh
原来如此,涨姿势了
"假台北市" typo?
案例一波 @fredwu 的 https://github.com/fredwu/crawler (不过我没用过😅)
http 和 websocket 都有个 idle_timeout,默认是 60s https://ninenines.eu/docs/en/cowboy/2.0/manual/cowboy_websocket/ https://ninenines.eu/docs/en/cowboy/2.0/manual/cowboy_http/
可以改长一点甚至是 :infinity
我的 keynote 在 https://speakerdeck.com/tony612/protobuf-in-elixir
好了,你可以去学 Elixir 了
难道不是去旁边万达包场看刀剑神域……
作为一个 Elixir 程序员,也是这样的感受😂
😂 我就是看到了“high performance”
有性能测试没?
查一下 nginx server_name 的文档就能解决了。。
来玩 Elixir 吧。debugger 也有官方支持了,虽然我没用过😁
生态赶上倒不至于,但很多轮子已经够用了,实在不行自己造一个也不难。关键是语言和框架的优势在那里摆着,可以试试
当然是 Elixir 的 Phoenix 啊,Rails 完全没有可比性
Elixir 的 doctest 不只是文档,还是测试
你如果坚持 Ruby 的 method_missing 是合理的话,那就无话可说了
是啊,不过作为一个“前" Ruby 程序员,还是心系 Ruby 的嘛😂 而且不管对哪个后端语言,都是一个理
我只是想说,如果想做一个好的 Ruby 程序员,应该少研究前端,一点没否认前端本身的价值和重要性。如果要转前端就专注在前端,不要再说自己是 Ruby 程序员。
我也没有说 Ruby 的不好啊,只是在陈述 Elixir 的好而已。也不打算拿 Ecto 跟 AR 比语法,毕竟这方面的优势也不是很明显,其他方面优势也已经够多了😜
但不可否认的是,为了支持运行时元编程,确实拖累了 Ruby,参考 http://rubykaigi.org/2016/presentations/shyouhei.html 。更不用说 method_missing 这种根本不应该存在的东西了。
撇开性能问题,Ruby 元编程带来的难维护性也是不可忽视的。
在 Ruby 里用这个意义不大啊。。