做过一个类似的:
https://github.com/Mark24Code/vistual_call
举个例子,包在关心的部分,可以获得该处调用的图:
require "sinatra"
require_relative "vistual_call"
VistualCall.trace(theme: :lemon) do
get "/" do
"hello"
end
end
+1 看 Ruby 资料最有趣的点在于,留下来的都是经得住时间考验的。
特性在试验中:
** Sets the storage hash for the fiber. This feature is experimental and may change in the future. **
不过依然可以给出例子
# Fiber#storage 例子
# https://devdocs.io/ruby~3.2/fiber#method-i-storage
puts "start..."
def work
puts "work,running...."
puts "work,set :tmp_value"
# 可以携带数据,一直保持在这个 Fiber 中
Fiber.current.storage = {
payload: "some data"
}
puts "work,do some thing...."
puts "work: tmp_value" ,Fiber.current.storage
Fiber.yield 12
puts "work,come back"
puts "tmp_value:",Fiber.current.storage
end
puts "start...(before fiber)"
fiber = Fiber.new {
work
}
fiber.resume
puts "back to main"
puts fiber.resume
puts "the end"
运行结果
start...
start...(before fiber)
work,running....
work,set :tmp_value
work,do some thing....
work: tmp_value
{:payload=>"some data"} # 携带数据
back to main # 切换会主干执行
work,come back # 切换回 fiber
tmp_value:
{:payload=>"some data"} # 数据还在
the end
前端的方案有成本优势。 通过接口获得差异数据,前端动态生成 diff 组件。充分利用客户端算力。
后端的方案,压力全部自己扛。看钞能力。
Fiber#current: https://devdocs.io/ruby~3/fiber#method-c-current
我想看看楼主的技术分享。感觉也快用到了。真的是三端合一,这样的话,很有吸引力。
这里 PC、Mobile 完全不同,一套代码的意思是:
1.相同的代码,不同布局 2.写 2 份,根据设备情况各自分开展示
是哪种?
Thread.current,Fiber.current 往上面绑变量?
同意楼上。DHH 总是结合实践来说明问题。
前端娱乐圈总是嘴嗨更多。
如果观点不能跟随现实发生改变,其实就是一种固执己见,偏执人格障碍。
这个问题其实很简单,当网线足够宽,以前的那些省流的骚操作当然可以一并去掉了。就像现在,电话线上网那时候的“下载器”很少被人提起;直播、网上看剧成了主流。
其实是一样的。
基础设施好了,辅助设施就可以下架了。
updated
@Rei 申请加精
@Rei 申请加精
Ruby 自带的 ERB 都没法 嵌套。 Rails 打了补丁可以。 比如在 Sinatra 里用裸的 ERB 就很难受。
请问 Roda 里面怎么减少这种 模块嵌套地狱的写法?
小缅北 😂
都支持 bun 了。真是 6
Crystal 这边:
BUG 有点多: https://github.com/crystal-lang/crystal/issues?q=is%3Aopen+is%3Aissue+label%3Akind%3Abug
Ruby 这边就乐观很多,不过过滤了 v3.2(历史总数 240 还是占优势)
不过没法这样简单到的做判断,只能说明 Ruby 修复速度很快。或者 Ruby 的关注太少了?
Golang 的 问题:
有在实际工作中使用过的小伙伴愿意分享下么?
《[JA][Keynote]Ruby meets WebAssembly / Yuta Saito @kateinoigakukun》
去年看的,印象中,要付出 5~30M 内存的代价,用于实现解释器相关,还要加载额外 gem。 然后 Thread、Reactor 等高级特性无法使用,原因是 wasm 不支持。
之前 SPA 的时候,说服大家的是使用客户端的算力,减轻服务端的压力。 如果是这样,再回去,服务端的成本不是又回来了。
翻墙这件事,并没有带来收入。收入是纯粹的劳动交换获得。
如果这个逻辑成立,随便推论:计划生育政策之外出生的孩子,终生收入都是非法所得。
图没了
Rack < Roda < Sinatra < Hanami < Rails
测试好评
JavaScript 里面可以通过 Babel 这类的转义工具,提前使用未被官方认可的语法。心累 = =b
INTJ
楼上说的对。Roda 里面就用了很多 catch、throw
零刻 的小主机不错。
可以装 Ubuntu distro