首先,你不要回避我的问题啊,我列了那么多条呢。
你说的开发效率我不谈,这个东西没有可以对标的案例量化。
【指令级内存操作】我指的是 Jazelle 可以通过指令集级别去进行优化中间代码,Ruby 好像没这个玩意吧,YARV 能跟它比吗。
你这个 好像
用得点睛,答案是有,YARV 好歹也是个虚拟机,就算你不愿意在 Google 上多找找资料你也得知道常见如尾递归优化吧,本坛有很多论坛讨论 比如 https://ruby-china.org/topics/5351
其次,字节码层面已经很难做复杂的优化了,但是 Ruby 暴露了自己的 Parser http://ruby-doc.org/stdlib-2.4.2/libdoc/ripper/rdoc/Ripper.html 导出的是 sexp 风格的 AST,在此基础上可以做的文章就多多了
另外 Ruby 本身强大的动态特性导致他绝大多数应用不需要在字节码、AST 层面执行,而 Java 不在这个层面很多事情非常难搞,比如 DI,即使对标的 C# 在 .Net 平台上也用不上 Spring 这样的框架。
我最近确实在学习 OpenGL,正在做一个图形库,想取代 cocos(其实我又跑去招惹另一帮人了),所以很少在 ruby 社区卖萌了,噢对了,MooTive 部分控件确实有用 Core Graphics API draw 的。
跟我说的没有关系,我也不关心你在做什么
我想表达的是 struct 很轻,但是如果你把 IO 的 buffer 解析序列化成 Ruby Object 的时候,损耗很大。而且很依赖 C,还不如从头到尾用 C 写。
隐藏内存的语言对象模型都轻不起来,你一直在讲 Java,那好,Java 把 IO buffer 解序列化,损耗就不大,那么 Java 的反序列化性能优化怎么做的?JS、PHP、C# 、C++ 常见的语言里有多少不大的?
Ruby 广泛运用在 iOS 的工具链上,于是乎据我所知,像美团这种不依赖 Ruby 的公司,内部也有 Ruby 团队,用于内部工具链、CI 的建设
因为他们经常要用到直接的 IO 去传输二进制,用自定义的协议
IO 传输协议跟 EventMachine、libevent 有什么关系?
但是大家认真看一下这些语言有一个优势——他们可以直接内存级数据序列化
跟语言有什么关系?什么叫内存级数据序列化?
而且 VM 还没有实现到 Hotspot 那种层面的指令级内存操作支持
什么叫 指令级内存操作?
写写 DEMO 告诉大家,噢是这个原理,还是不错的,可以学习一下,但是他们又不喜欢 DRY。
你当初不这么说的啊...
你给公司用 DEMO?你公司心得多大?DRY 是什么的缩写来着...你讲讲你的代码哪里体现 DRY 了?
你们去看看 midori 有几行代码自己写的 IO
不造轮子,这不就是 DRY?再换位思考下,你之前写 iOS 为啥要用 Cocoa 不学学 Facebook 从 CoreGraphics 绘制写起来?
所以我才说有炒作之嫌,就是实际上是玩具,性能任何一个游戏服务器都比不上
还真别说...10 - 12 年那会用 Ruby 写页游的多了去了... 那时候 Ruby 的性能比现在差多了,所以性能还是比得上某些游戏服务器的。
此外,是不是玩具看得是性能?
吾认为,Elixir 不能和 Ruby 相提并论,Ruby 早期发明的时候参照了 Python
错,Ruby 受 Lisp 影响很大,你为什么不多读读书呢... Matz 写过很多关于 Ruby 设计的书和博文出来,国内也引进过几本
其实 C++ 在某些方面并不比 Java 高效,大量的 new delete 等系统调用很耗,还不如 JVM 有对象池、GC 高效利用,在你开发大规模业务型程序的时候,你会发现 java 优势的明显。
难道 Java 的 new delete 的消耗就小?Java 还没值类型呢。C++ 不可以有对象池?不可以有 GC?
rails 本身也埋了很多点 搜 instruments 可以被利用来做监控 具体看看 newrelic-amp sentry-raven 的实现就好
应用层看看 raven-sentry 就好了,解释器层段错误,那你得靠 Ruby 之外的东西监控了
走 SMTP 嘛,SendCloud 也是,跟配置邮件客户端的方式一样的
申请完了,发邮件就是他们那边自动分配了,为了提高送达率还有个独立 IP 的业务,反正都属于“增值服务”咯。
如果你每天很少量(一千封以内这水平),其实我推荐申请个 QQ 企业邮箱的,除了每天配额很紧,但送达率爆高,无论国内外,不过是我 13 年时候测试的了,现在不知道怎样
当然国外 Mailgun 也不错,不过国内的邮箱也是一点都收不到。。。
有能力申请 SendCloud 的海外通道的话,就申请就好了,如果不能,你还得去弄一个 SendGrid,然后发邮件的时候要实现一个邮件发送的路由,保证国内的用 SendCloud,国外的用 SendGrid(主要是通过基于邮件域名的白名单来做)
Sendcloud 的海外通道就是 Sendgrid,两种服务商混着用你还得搞个邮件发送的路由,不然国内的服务商发国外很大概率收不到的
话说 RubyConf 还有总坛... http://rubycentral.org
Ruby 的核心开发者都供职于各家涉及 Ruby 的小公司,是真正的社区开发。有基金会,https://rubytogether.org ,网站可以看他们把钱花哪了,Ruby 社区很穷的,不像 Java 爹好(当然看 Jaba 9 难产感觉 JSR 快走到头了),PHP 有后爹 Zend 商业运作
Microsoft 一拥抱开源就全面 MIT 协议... 微人希!
广义上的业务的话,重要的是搞清楚业务是什么,你要做什么,你在做什么。有数据结构的常识可能就够了,比如需求是不允许数据有重复,你知道应该用什么样的数据结构,然后使用成熟的实现。
排序可以提一个可能小众一些的,表达式求值器如果涉及几条公式,并且存在依赖关系的时候,可以用 Topological sorting 解决,比如 https://github.com/rubysolo/dentaku/blob/master/lib/dentaku/dependency_resolver.rb#L5,并且你发现这个类名的含义是“依赖计算”,其实 Rails 的初始化过程也有 tsort 的功劳 https://github.com/rails/rails/blob/master/railties/lib/rails/initializable.rb
没有 4.3 吧...
那不错,之前我看过 go 的,这种情况没做处理
这个要生成四条匹配
/page/:page
/per_page/:per_page
/
/page/:page/per_page/:per_page
没有考虑 (/page/:page)(/per_page/:per_page) 这种情况吧?我记得 Trie 这种不好做
office 的宏都是 vb...
新版没记错 block 可以直接写 rescue 比如
foo.call do
# do sth
rescue => _ex
# handle error
end
不用套 begin ... end
,好看了很多
5.0 以前的
赶上假期改进了一下,增加了序列化反序列化的支持,另外增加了多选字段的支持
提交之后可以序列化成 YAML(可以自己实现序列化器,这里用 YAML 是因为可视化的效果比较好)
可以还原回表单
拉最新的代码可以在 dummy 应用里体验~
如果服务器端持久化 Token,那 JWT 提供的种种机制就都没必要存在了,JWT 为了载荷的安全(不考虑劫持)还要搭配 JWE 使用,很多时候想清楚就发现是多此一举。
但是多站点做数据共享(或者说 SSO)的情况下,JWT 还是有用武之地的
标准规定了 POST 不幂等
meta 通常指代元数据,可以理解为描述数据的数据,SEO 是在利用 meta tag 存储信息,而不是 meta tag 专为 SEO 服务
清空 DNS 缓存、翻墙可破之
不道,不过 3.x 可以放弃支持了,太老了