node.js 整个运行环境是基于事件驱动的,内部不断的执行事件循环,回调是异步执行的。
Ruby 的基本环境是顺序执行,除非显式的调用线程/进程和未来的 guilds。ActiveSupport 只是提供一种回调语法,本身还是顺序执行。
要像 node.js 那样实现基于事件驱动的异步,可以看 https://github.com/eventmachine/eventmachine ,并且所有用到的库都需要基于事件模型(在 Ruby 世界不流行)。
事件驱动对于重 I/O 的场景很适用,例如 nginx,代理服务器大部分工作是转发请求,适合用事件驱动。如果重 CPU 的场景使用事件驱动,可能上下文切换的支出反而导致效率降低。
本来我是忠实的 Rails default stack 推崇者,最近两个组件 ActiveStorage 和 ActionText 我觉得还是学习它的设计好了,用不用看情况……
Ruby China 不允许这类不友好的发言,自己编辑吧。
关键在最后一行,没截到。
你指 python2 还是 python3?
因为早期 Ruby 资料都是日文,不便于传播。
测了一下 AR 自带的也是把 attributes 改成 string。
最好当作 feature,看看用了 enum 以后业务代码需要处理原始值是否合理。
巴士系数
推荐原因是亚飞为了解决远程面试专门开发了个网站😂 https://ruby-china.org/topics/38926
看了这个列表,前几个是服务(收费),后面就是一些库,Rails 都有(Gem or Engine)。不明白“这样的组件生态才是正确方向”是什么意思,如果说是做个页面把一些关键的库列出来,Ruby & Rails 早就有了 https://www.ruby-toolbox.com/
又或者你觉得 Rails 应该官方实现更多的库,一直以来 Rails 被抱怨的不是做得太多吗?除了一些核心必要的组件,更多组件应该由社区提供,这样更适应需求也更健康。
用 webpacker 要同时了解 webpack 本身的配置和 webpacker 的默认配置,目前资料较少,需要大家一起踩坑总结。
package.json
里面这行:
"main": "dist/js/bootstrap.js"
拆成 sidekiq 任务,task 只负责入队
已经在做了(进度 0%)
更新:在分发过程中保护 Ruby 代码版权 by 东仙队长
我觉得 Rails 6 保留 sprockets 一是为了不破坏现有项目,二是兼容带 UI 的 Rails engine。
新的项目应该全部用 webpacker 了,我实际用下来没有问题。 https://github.com/getcampo/campo/tree/master/app/webpacker
靠,跟之前一样的手法。
你所说的几个 UI 框架都可以用在 Rails 项目。
还在用 2015 年款 13 寸 Macbook Pro……
官方的 MDC 库实现不完整,标签繁琐,有的甚至效果很难看,实际用的时候费时费力,试过两次还是决定放弃。
其实变了两次,一开始就是自己实现的简化 material degisn,后来觉得用现成的 UI 库可能可以减少工作,就用上 bootstrap。用了 bootstrap 之后进行了很多定制,由于它没有设计指引,什么东西放什么地方需要自己考虑,结果发现并不比自己实现 UI 好用,就又切回 material design。
用 UI 库容易同质化,不好定制,反而 Material Design 没有多少网站愿意用(包括 Google 自己的服务都不合规范),我还是希望在 Material Design 方向多探索一下。
Material Design 缺少桌面端的指导,我自己改了很多次都不满意,目前版本算是勉强看得过眼的。如果随着项目发展能有设计师提供帮助就好了。
这应该不会改,因为也想面向非中国区的开发者。
很高兴有人记得这项目。保持 campo 代码精简也是我的目标,所有功能尽量基于 Rails 默认栈,没有不必要的抽象,让新手更易读。
很久没看,改不动了……
可以,MIT 协议。
没这个计划😅