核心数据提取出来之后,那就是采用不同方案的应用。k8s 放到 secret 只是在套一层壳而已。
哈哈,fir 刚上线的时候我就在公司项目上面使用过,当初 fir 搞了一个页面聚合展示上传的应用被苹果发现当时直接把我们开发者账户封了,我们年会都没过好就从普吉岛飞回去跟苹果交涉了,后来就真不敢用了。
有机会尝试或给客户端团队推荐一下哟 :D
谢谢支持!
好久不见
实际上这样是不好的习惯,可能是 ruby 单独处理,官方文档的代码范例都是符合规则的 https://ruby-doc.org/core-2.4.1/Object.html#method-i-is_a-3F
比如:
ruby
2.4.0 :010 > "String".is_a?String && false
TypeError: class or module required
from (irb):10:in `is_a?'
from (irb):10
from /Users/wiiseer/.rvm/rubies/ruby-2.4.0/bin/irb:11:in `<main>'
2.4.0 :011 > "String".is_a? String && false
TypeError: class or module required
from (irb):11:in `is_a?'
from (irb):11
from /Users/wiiseer/.rvm/rubies/ruby-2.4.0/bin/irb:11:in `<main>'
2.4.0 :012 > "String".is_a?(String) && false
=> false
crystal
icr(0.22.0) > "String".is_a? String && false
=> false
icr(0.22.0) > "String".is_a?(String) && false
=> false
从如上对比可以看出来 crystal 的语法解析才是正确的。
因为 is_a? 是一个方法,在 ruby 和 crystal 正规使用中都可以采用如下两种方式调用:
is_a?(arg)
is_a? arg # <-- 省略括号
关于 typeof 的说明官方文档也有提到:https://crystal-lang.org/docs/syntax_and_semantics/typeof.html
crystal 发起人写的关于 typeof 的一些魔法使用 https://crystal-lang.org/2015/08/24/its-a-typeof-magic.html
类型判断使用 is_a? 而不是 typeof。 https://play.crystal-lang.org/#/r/244o
用 crystal 写 worker 不是更合适吗,可参见:https://ruby-china.org/topics/32893
这只是拍砖引玉,主要引出 ruby + crsytal 的不同分工善其事。
确实,重新实现的过程是不可避免的,但过程相对是比较熟悉的,比较麻烦的主要是有动态变静态之后的限制没有那么自由。如果对于一个纯 Ruby 的开发者,这个时候 Go 或其他语言整体成本核算下来还是有不少优势的。
对于说 Go 等成熟语言拥有更大的用户群和类库的童鞋,请不要忘了刚起步的语言都是一个成长过程,Go 其实花费的时间也是很长的,相对于的弱势是 Crystal 没有 Google 强大背景而已。
#10 楼 @cassiuschen 才出来的应用,之前没升级到 2.0 的时候都没有多进程,可以怀着期待的新看看能有怎样的成长嘛
#7 楼 @cassiuschen puma 用的时间也不算太长,官方说 puma 配合 jruby 是比较不错的,MRI 的 GIL 机制限制。我觉得 puma 的优势在于前期的内存占用率以及相应速度非常快。小型的应用及服务器资源可以考虑。
#5 楼 @kenshin54 呃,说错了,我看了下命令历史,是整个 ruby 进程占了 400M 多。抱歉!
#2 楼 @small_fish__ 那只是平均内存占有量,300M 只是 app server 本身,加上其他的负载肯定带不了那么多 app 的。
baidu gem 依赖 savon 3.0 版本,而 savon 3.0 到目前一直没发布,需要自己指定下其 github 的 branch 才行