37signals 喜欢用 concerns 而且玩得溜。
我是只有公用逻辑才放 concerns。
rails 6 -> 7 使用的 turbo 有变化,用的包不同,属性从 data-* 换成了 data-turbo-*。搜论坛可能会搜到旧的内容。
不知道你看的是哪个版本教程。现在推荐看英文官方的教程 https://guides.rubyonrails.org/ ,目前版本是 8.0.1。要看中文的可以用翻译软件翻译全页。
application.js 打包到一起,某些库体积大又很少变的单独打包,例如 editor,chart。layout 里 include 几个 js 文件。
其实 DHH 即使推 nobuild 也是把所有 js 预加载,可以用浏览器调试看 https://app.hey.com/sign_in ,所有 js 都用了 modulepreload。importmap 默认设置也是 preload。
懒加载会导致交互延迟,体验不好。
list_actions.rb 是个 module,被 include 到 topic_controller.rb 里面调用,调用环境是 topic_contorller。
我依赖好几个 npm 包,importmap 无法很好的支持,所以回到 esbuild 了。
把 stimulus 作为一个包装器,所有 js 库都可以包进去。
stimulus-components 很多组件就是基于这个方法。
环境变量问题,需要在 config/deploy.yml
设置
env:
clear:
DB_USER: app
secret:
- DB_PASSWORD
这里设置了的环境变量才会 push 到远程服务器。
反向代理问题,单机情况下 kamal_proxy 可以替代 nginx,去掉 nginx。
kaml_proxy 不需要设置就可以满足 rails 需要。
AI 也需要提问的智慧。我很乐意推荐不好好准备提问的人去问 AI。
主要是网络,好的网络体验大不相同。我有次调试 cloudflare 的边缘节点居然是连到英国,绕地球一圈。
看 @RaySong 有无兴趣搬运?
把图片塞到 job 的参数,小心 redis 内存不够用。
job 的参数是 data:image?不建议参数用太大的对象。把对象保存以后传 id。
basecamp 是用独立的 db 做 cache db。用 db 的好处是缓存周期可以设很长。
我现在写博客主要作为自己外部记忆,顺便给别人看看。
是 Rails cache 的一个实现,类似的可以存 memcache,redis,solidcache 是存到数据库。
Rails 8 刚发布,回归好时机。
Rails 8 的前端方案完善,简化部署配置,减少了依赖服务。要入门和回归的话这就是最好的版本。
Ruby 需要更多布道者👏
docker + devcontainer。
大企业前后端分离的,可以用在管理后台。
暂时没遇到,我之后留意一下。
Stimulus 如果进行了 dom 操作,也需要注意历史恢复的状态。相比之下 Lit 只需要 render 简单多了。
我第一份工作还是 2011 年,当时 Rails 是个时髦的技术。我毕业后半年没找工作鼓捣些开源项目,后来觉得还是要找个工作获得收入。于是看招聘信息,当时一位国内有名的 Rails 布道者的公司在招聘,我就写邮件交了份简历,然后就让我去北京入职了。
Web 组件应该对 Hotwire 很友好,具体是遇到什么问题了?
Hotwire 点赞👍
v0 这个版本号一看就很不靠谱 😂
v1 是 2017 年提的,也过去很久了。
Lit 3.0 是 2023 年发布的,这个时候我才开始认真考虑。
最近实际在项目里面用了感觉可以了,最大的吸引力是它跟 Turbo 兼容。
Web component 已经被主流浏览器支持了。我看了下 caniuse,safari 不支持的只是 is 属性,也就是修改内置元素的能力。现在看来不允许修改是有道理的,各个浏览器内部实现不一样,很难说修改内部元素会产生什么问题。但这个特性不影响 web component 应用。
浏览器 API 的演变就是很缓慢的,通常要落后于第三方框架。但一旦成为标准,其他框架就可以精简一大堆内容。例如 jQuery 和 querySelector,曾经有一个庞大的 jQuery 生态,标准演进后就消亡了。
我不是说 react 会消亡,因为现在有很多应用和生态构建于 react。而是当更多开发者了解 Web component,那么基于 Web 标准构建的组件会越来越多。
怎么我觉得这两篇文章都是推 Web Component 的。
Web Component 胜在可交互性,现在 js 框架互相不兼容,用 react 写的组件要用在 react 组件里面。兼容也不是不行,只是要做很多适配器,估计没人这么用。而 Web Component 可以用在 erb,也可以用在 react。
我正在写一篇博客,Rails 开发者应该拥抱 Web Component。
网络问题。
7 默认也不打包了。