不都说 RoR 落伍了吗?看来可能是谣传啊。
觉得公司好就申请啊。
一看你就特别了解 Erlang,来来具体说说?
具体想了解哪些?
我是想说,用这两条原则,可以理解一些看起来很神奇的代码。
我一直觉得
if a = b
这种写法不好。
Ruby 可以省略括号,且 Ruby 几乎所有语句都是方法调用。
列表支持,hash 没有
没觉得有必要
解构的话,就是这种
h = {:a => 1}
{:a = a } = {:a => 1}
不如 h[:a]
,如果是对象的话,直接 h.a
就可行。
Erlang 不解构就太长了,比如 State#state.a
,写起来麻烦。解构的话,方法定义又很长,读起来也麻烦,要高清从哪解出来的,要去读方法定义。
Erlang 的解构有 pattern matching,Clojure 一解构的时候,我就搞不清,到底有没有这个字段。
Erlang pattern matching 可以把依赖写成这种,括号比 Clojure 都晕。
{deps,
[{xxx, {git, "git://github.com/xxx/xxx.git", {branch, "master"}}}]}
有兴趣可以看这个 The Design Impact of Multiple Dispatch,觉得长的话,也可以听我胡乱说说。
Julia 整体设计比较统一,挑不出来什么毛病。不给人添麻烦,Erlang 虽然很美好,但太特别了,比如变量非要大写。
语法很简洁,比如方法定义 f(x) = x + 1
,作者也比较有品位,比如 Julia 有 block。
Type System && The Expression Problem
语言要对不同的数据进行不同的操作。
比如 +
,加字符串和加数字不一样。面向对象是,都由对象自己决定。但对象的状态就变得模糊,且不好拓展。函数式交给方程,无法保证结构,有的时候甚至不接受这种抽象。
type 则不一样,状态清晰,抽象度更高。
Julia 很好扩展,比如 +
有了数字和字符串的加,那文件加怎么办?定义一个 +
方法,接受 file 这个 type 就可以。
type 有 union type、subtype、abstract type、general type。简介、并且包含了所有可能。
type + type Inference 让开发效率和运行效率都能得到解决。声明类型,写起来麻烦。没类型,运行慢。Julia 方法定义可以不声明类型(泛型),需要优化的部分,可以声明类型。
Julia
随机的,有的时候有的人慢
布吉岛,反正路由器感觉像拖拉机。
宝强和马蓉的那件新浪微博不知道抗住了没有。。。微博数据似乎是一直都存着的。
2000 万人的时候,不需要分库吗?xxx_feeds 很大的话,Btree+ 做索引,要从磁盘读很多次吧?
有个小 typo 查入道 event 表中
You have too many requests in queue. Since version 4.0.15 there is a limit which is 100 by default. Here is a short excerpt from http://blog.phusion.nl/2013/09/06/phusion-passenger-4-0-16-released/ which says:
https://stackoverflow.com/a/20537659
有请求过慢,找到慢请求,优化,比如异步啥的。
暗戳戳表明 Elixir 比 Erlang 更友好。对 Erlang 感兴趣,学 Elixir 才是正确的方向。
我上周刚好写了几行代码,用来部署一个 java 项目,这几行代码让我很开心,因为我再也不用打开 jekins 了,也省了 ssh 到主机 tail log 的麻烦。
我想我大概理解一些了。过早、过度的抽象可能会不利于维护!
DRY 也是有代价的,要有判断和取舍
不太理解 WET code,
如果方法 A,被调用了 3 次。有新的需求,发现方法 A 不好被复用,也可以复制一个方法 A1 啊,这样只要去维护两分代码就可以,也比维护 4 份好啊。。。
当然我也认同有的时候复制粘贴也是有意义的,比如无法抽象出来一个概念、抽象出来的概念过于复杂,或者抽象带来的便利不大等等
Process 比对象还对象,还有个运行时
(当前执行的方法)。由于变量不可变,还是显示的穿进去的,非常好 debug。
有个大神,说他面试就问基础,然后问为什么。
模式匹配让 tuple 很好解析,但 tuple 读起来费事,配置文件看的头大。
ok 还好,no_reply;keep_state,如果对其机制不熟悉的话,就凉凉了。
先加内存吧
Ruby 也热爱程序员
我没说清楚问题。。。Ruby 程序员不好招,为啥不招其他语言的程序员来写 Ruby?
举办活动是件很不容易的事情
Ruby 程序员这么少,为什么不考虑其他语言的?
刚好说明 app 比较火!
不是大神。。。
公司有部分服务是 erlang 写的。
有 GenStage 和 GenEvent 的是啥关系? 可以简单理解 GenStage 并发更好,更友好一些?