晕 今天居然有 Tuesday
#13 楼 @RainFlying 碉堡了啊
190+ 表示 XXL 刚刚好
人肉的节奏啊
学习了
顺便吐槽下 SOA,架构转向 SOA,整体复杂度上升,包括测试,联调,业务对接,监控都会上好几个难度。
Ruby 或者说 Rails 的 omakase 在 SOA 确实有阻力,
显然大多是还是用 Rails,所以还是按 Rails 的来讨论:
Service
因为 ActiveRecord 包含了数据库的访问,所以没有 Plain Object,这样没法把 Model 作为 Gem 发布。因为 SOA 讲求 Service 接口(广义上的接口)之间的调用,比如 A 团队负责订单,他们提供 Order Service,B 团队负责支付,他们提供 Pay Service,那么他们内部可以访问自己相关的数据库表,对外提供 Service 接口,跨业务的访问都是调用对方的 Service。而 Service 调用后必然要序列化为 Model,这个 Model 应该由各相关业务团队提供的,里面可以包含非持久层访问的业务方法(即充血模型)这样其他团队可以使用(类似 Java 里的 POJO)。
Web
既然 SOA 了,Web 里就不会直接调用类似 ActiveRecord 的对象直接请求 DB,肯定调用 Service,因为肯定存在不同团队的 Web 跨业务调用其他 Service。其次整个 Route 方面也是分开了,每个团队的 Web 有自己的路由,xxx_path 这种,还有 Rails 根据 Resource 和 Route 的关系派发到 Controller 肯定要绕弯子了。整体上看访问方面需要有一个总的反向代理能将请求派发到不同 Web 上。
当然其实还有很多问题的,基本上原本的 Rails 优势都没了。真的要做 SOA 也是可以的,只是这样,就不需要 Rails 了,需要搞出符合 SOA 的 Stack。
刚刚被对面的人踢了 2 脚。。。
那是 Erlang 吧
'E'.ord.to_s(16).chars.map &:to_i
求起司猫
有 vim 帖子,顺便请教个问题:
#include <stdio.h>
int
main(int argc, const char *argv[])
{
return 0;
}
// vim 中执行 gg=G ,就会变成
#include <stdio.h>
int
main(int argc, const char *argv[])
{
return 0;
}
缩进配置是:
autocmd FileType c set noexpandtab tabstop=4 shiftwidth=4 softtabstop=4
有没有啥好办法?
。。。这。。。
谢谢 UCloud
今天不上班是因为请假给女友送机。。。
a.chunk {|n| n % (rand(a.size) + 1) == 0 }.each {|_, ary| p ary}
p a.slice!(0, rand(a.size) + 1) while a.size > 0
说一下心里话,其实如果公司不出钱,人不在北京,总体花费还是不小。个人买票到时还好,也就 499,可是来回机票要 1000(我按上海到北京算),住宿起码 200-300,基本上就 1700-1800 了。再吃个饭基本去一趟 2000 是必须的了。(我是不是太抠了。。。)
瓶颈在语言层面我不能说没有,但前面有太多层 stack 要经过,大部分瓶颈都会在前面。
这种测试确实没啥意义,2 个崩是掉数据库连接池不够。整个 Web 应用受影响的面太多了,数据库,缓存,集群,异步处理,关测试语言性能没意思。所以我前面也说了,这是很无聊的测试,跟 helloworld 没区别。