1作者: flutterjs14 天前原帖
大家好!我是FlutterJS的创始人。 问题:Flutter Web非常适合构建应用程序,但对于网站来说却很糟糕。它将所有内容渲染到Canvas/WASM,这意味着: - 2-5 MB的包(在移动设备上加载缓慢) - 零SEO——谷歌无法索引Canvas像素 - 较差的可访问性(没有语义化的HTML供屏幕阅读器使用) - 初始加载时间为3-8秒 如果你曾尝试使用Flutter Web构建营销网站或博客,你一定遇到过这个问题。 解决方案:FlutterJS将你的Flutter/Dart代码编译为语义化的HTML + CSS + JavaScript,而不是Canvas。使用的语法与Flutter相同,但输出为: - ~50-100 KB的包(小50倍) - 完全支持SEO(真实的HTML元素) - 首次渲染时间少于1秒 - 默认可访问 工作原理: 1. 你编写普通的Flutter/Dart代码 2. 我们的Dart CLI分析你的AST并生成中间表示(IR) 3. IR被转译为JavaScript,并使用轻量级运行时 4. 输出为搜索引擎可以索引的语义化HTML 当前状态:测试版(v0.9.x)。我们支持最常见的Material组件(Scaffold、AppBar、Text、Button、Row、Column、StatefulWidget等)。动画支持和完整的Material 3在开发计划中。 已知限制: - 目前并非所有Flutter组件都已实现(请参见README中的兼容性矩阵) - 方法的拆分目前需要用lambda包裹 - 复杂的动画尚不支持 - 这更适合内容丰富的网站,而不是图形密集型应用 我为什么要构建这个:我遇到了许多客户,他们喜欢Flutter的开发体验,但需要他们的网站在谷歌上排名。Flutter Web无法做到这一点。我希望能够兼得两者的优点。 我非常希望听到你的反馈,特别是: - 你是否在使用Flutter Web时遇到了这个SEO问题? - 你在使用场景中需要哪些组件? - 对这种方法有任何顾虑吗? 欢迎提出关于架构、性能声明或开发计划的问题!
1作者: Anshikakalpana14 天前原帖
我是一名二年级学生,正在开发 ReTraced——一个分布式作业调度器,它将重试行为视为一等数据,而不是隐藏在日志或配置标志中。 大多数调度器只告诉你某个作业重试了 3 次,而 ReTraced 则告诉你: - 每次重试发生的时间(带时间戳) - 重试的原因(暂时性故障与永久性故障) - 是自动重试还是手动触发? - 在进入死信队列(DLQ)之前的完整审计记录 我之所以构建这个系统,是因为在压力测试时,我发现了一个回退定时的错误,只有在我能够将重试尝试以结构化数据的形式“看到”时才会显现。预期的指数延迟(5秒 → 10秒 → 20秒),但实际时间戳显示约为 6 秒的平稳期。这种可见性使调试变得简单。 *核心理念:* - 将重试尝试存储为可查询的记录(不仅仅是计数) - 针对每个作业的重试策略(固定、线性、指数 + 抖动) - DLQ 是一等公民,带有完整的失败上下文 - 基于 Redis,至少一次的语义 *当前状态:* v1.0.0——核心模型稳定,可用于内部工具和实验。目标是在一年内实现生产就绪的自托管。 我正在积极寻求反馈,特别是在以下方面: - DLQ 重放策略 - Redis 协调模式与 Postgres 的比较 - 我遗漏的重试策略边缘案例 GitHub: [https://github.com/Anshikakalpana/ReTraced](https://github.com/Anshikakalpana/ReTraced) 文档: [https://re-trace-five.vercel.app/](https://re-trace-five.vercel.app/) 我非常希望听到大家的想法,特别是那些在生产环境中构建或操作调度器的人。