• 我是说他要悲剧了

  • 这时间安排,Ruby异步编程奥德赛 ...

  • 举个微小的例子

    -pattern(
       { integer,
         "[0-9]+",
         {erlang, binary_to_integer},
         {erlang, integer_to_binary}
       }).
    
    -dispatch({root, "posts/", {dispatch, post}}).
    -dispatch({post, "", {endpoint, index}}).
    -dispatch({post, "{id:integer}", {endpoint, post}}).
    
    test() ->
        [<<"/">>,<<"posts/">>] =
            url_reverse(index, #{}),
        [<<"/">>,<<"posts/">>,<<"10">>] =
            url_reverse(post, #{id => 10}),
        {index,#{},<<>>} =
            url_dispatch(<<"/posts/">>),
        {index,#{},<<"a">>} =
            url_dispatch(<<"/posts/?a">>),
        {post,#{id := 10},<<>>} =
            url_dispatch(<<"/posts/10">>),
        {post,#{id := 10},<<>>} =
            url_dispatch(<<"/posts/1%30">>),
        error =
            url_dispatch(<<"/posts/10/">>),
        ok.
    

    自动生成的函数大概长这样

    url_reverse(post, #{id := Vid}) ->
        [<<"/">>, <<"posts/">>,
         url:encode(erlang:integer_to_binary(Vid))];
    url_reverse(index, #{}) -> [<<"/">>, <<"posts/">>].
    
    url_dispatch(Bin) ->
        case url_dfa(Bin) of
          error -> error;
          {18, #{}, Rest} -> {index, #{}, Rest};
          {23, #{1 := T1, 2 := T2}, Rest} ->
              {post,
               #{id => erlang:binary_to_integer(url:decode(binary:part(Bin,T1,T2-T1)))},
               Rest}
        end.
    
  • 躺枪

  • 慢慢来吧。这个对轮子哥太不友好了。尽管我并不是针对他。轮子哥整天炫耀C++,正则表达式,GUI框架以及吃软饭。把轮子哥黑成不会C++了,这事就已经吓的他连写好几篇谁都看不懂的,考不上三本系列了。这次把轮子哥黑成不会正则表达式,他又要有好久没心思玩了。下回要是再把他黑成不会GUI框架,他估计要自暴自弃了,整天只炫耀自己吃软饭了,这样不好。

  • 不是不太友好,是非常不友好,都动不动不让回复了

  • 动态伸缩,直接用ansible管CloudFormation啊

  • 小破站才用Erlang。小破站换Erlang是大势所趋。

    ActionCable什么的,功能极其有限,难用的要死 ...

  • 你这SQL写的就是错的。你这么干,得先SELECT FOR UPDATE,好不好

  • 跟rails比跑分,这是连脸都不要了 ...

    Erlang跑分比较烂,估计要等明年Erlang 21出来才会改进。

He who is not an Erlang fanboy, does not understand OO.