AI图鉴

AI图鉴首页 › AI 资讯 › 一年的狄奥克修斯在生产:好,痛苦

一年的狄奥克修斯在生产:好,痛苦

来源:Hacker News · 发布时间:10-28 · 由 AI图鉴每小时自动聚合

文章 URL:https://oxidt.com/blog/one-year-of-二氧化物-fulstack-in-production-the-good-the-painful URL:https://news.ycombinator.com/items?id=50265960 互联网档案馆的存檔,存档日期2013-12-21.

一年的狄奥克修斯在生产:好,痛苦

在本页(5节)

经过一年的狄奥克斯·富士达克的制作,Rust代码是我最无聊的生意。 CI是最激动人心的部分,不尽人意:一个发布架构在GitHub托管的跑者身上需要90分钟。

那一年我从上次工作开始,继续用我自己的产品。 回到4月,我写了为什么我选了Rust来生产一个微型SaaS。 短版本:开始较慢,较后期生活更便宜。 这个帖子是账单。

我所追求的

SeggWat是SaaS产品的一个内应用反馈工具。 它的仪表板是一个Dioxus 0.7 fullstack app into a Cargo 工作空间:一个具有服务器功能的后端箱子,一个认证箱,以及大约10个UI的箱子,包括洞察力,反馈,想法,板子,部件和设置。 十二箱靠二氧化物维生。 所有东西都放在PostgreSQL上。

下面的页面建在同一堆上。

“Fullstack”是指一个Rust codebase从事三项工作。 它在服务器上制作,将服务器功能作为后端运行,并将客户端编译到WebAssembly,使页面变得交互。

好东西

一个语言,一直下去

数据库查询,业务规则,服务器功能,按钮:全部Rust. 一个工具链一个物料一套习惯当东西断裂时一个地方看

直到你成为独唱创始人,我没有一个“前端大脑”和“后端大脑”,我打开工作空间继续走

两边都一样

这是我最想念的。

一个结构得到定义一次。 数据库层返回它,服务器函数发送它,组件使其产生它。 当我重命名一个字段时,货物检查会给我一份包括UI在内的每个破碎地点的清单。 没有OpenAPI的光谱可以再生,也没有TypeScript接口与后端同步漂移。

胜利并没有更快地写出代码。 却无人审查。

其他平台的门仍开着

狄奥克斯可以从同一个组件模型中瞄准桌面和移动,包括iOS. 我的产品今天都不需要本地的应用软件但当我决定把一年的工作放在哪里时,知道我可以不重写地运送一个。

制作很无聊

这就是重点所在。 一旦编译出来,它大多只是运行。 整类的“ 未定义不是函数” 错误从没有到达用户,因此确实通过错误是逻辑错误。 我宁愿把注意力花在那里。

4月份的“生产中的麻烦”论点与真正的用户保持了联系。

痛苦

编译时间

这是路斯特福音者倾向于跳过的部分。

仪表板会编译两次:一次是给服务器的,一次是给浏览器的hem32. 一打Dioxus的箱子加上一个宏重的UI加起来。 在本地,我的工作流程文件中的评论就像日记一样:

- 单是WASM就花了22分钟在6个核心上。 这是一个单一的叶子箱:为浏览器编译的仪表板。

- 发布图像需要大约90分钟在GitHub主持双核跑者。 以我个人的VPS选手来说

- Clippy被OOM杀死了 7GB主机跑车上的货运剪辑器 -- -- 工作空间 -- -- 所有目标因退出码143而死亡,根本没有诊断。 修补是10GB的互换文件加上CARGO BUILD JOBS=1来剪切峰值内存。 我的灯关需要交换。

在某个时候,我停止了在每次推向主线上建立图像。 他们现在利用发行标签或者当我用手触发它们时因为每次推90分钟的计费票是花钱的傻方法

我试过的

- 用斯瓦蒂内姆/破伤风卡切但有一个陷阱。 一个工作流程运行只能从自己的ref或默认分支中恢复缓存,GitHub驱逐了7天未使用的缓存。 一旦我停止主建,释放结构开始冷。 我的工作几乎很有趣:在依赖性崩溃之后,我手动触发一个主线的积木,只是为了保持缓存的温暖。

- 建造和测试一个去,所以测试再利用编译了文物,而不是第二次编译世界。

- 模具连结器不错,但联系从来不是瓶颈。 编曲是。

- 重楼的自营跑者这是迄今为止最大的胜利,90分钟降到40分钟。 这也意味着我现在维持一个构建服务器。

每一个都有帮助。 它们都没有改变基本的数学:两个编译目标,一个大依赖树和许多宏意味着很多编译。

"全Rust"带有星号

业务逻辑都是Rust. 情况并非如此。

SeggWat的见解页面显示图表,因此图是Chart.js,从一个CDN装入,包裹在约340行的JavaScript中,Dioxus通过二oxus-use-js调用。 Styling是Tailwind,因此CI也安装了Bun,并在Rust甚至开始前运行Tailwind CLI.

我不介意,这是务实的。 如果你选择Dioxus来逃离JavaScript,就知道自己要签什么:Rust

我会再来一次吗?

人们问道:“什么能帮助我最快的航行?” 更好的问题是,“什么能帮助我保持不恨我的生活?”

对于后端来说,答案仍然是Rust

我改变主意了。 如果我在建立真正类似应用的东西,但我建造的大多是仪表板:表格、表格、几张图表和几张图。 我对每次放行都要缴纳22分钟的瓦斯M税

接下来是什么:Topcoat

因此,我的下一个项目是使用Topcoat,一个新的满层框架从tokio -rs org,宣布在7月。

这让狄奥克斯的赌注相反服务器上的一切,组件都是可以直接查询数据库的Async函数。 对于交互,您会用普通的,按类型检查的 Rust 来写 $(...) 表达式。 Topcoat在服务器上评价它们进行第一个渲染,同时也将其翻译为JavaScript,所以它们在浏览器中即时重新运行。 没有WASM捆绑,也没有第二个编译目标。

自动同步

以Topcoat README为例。

在纸面上,Topcoat保留了我对Dioxus的热爱(一种语言,共享类型,没有API层),并删除最伤害的部分,即22分钟的WASM构建。

说清楚,这是赌注,不是结果。 Topcoat的README称其为早期和实验性,我放弃多平台选项。 我还没有衡量任何一座建筑。

我将用真实的数字来写后续:编译时间、CI分钟,若我的释放时间从40分钟降至10分钟,如果不是这样,你也会听到这一点。

我是Hauke。 我用Rust在SeggWat、Stepshot和以下网页上写作

本文由 AI图鉴自动抓取并翻译,版权归原作者所有;如需查看原文请点下方链接。

相关 AI 工具

相关免费羊毛

同源资讯

阅读原文(oxidt.com)

标题、摘要与正文均来自该信源的公开页面,版权归原作者所有;本站自动聚合与翻译,仅作出处跳转。

← 返回 AI 资讯列表AI工具图鉴首页

返回 AI图鉴首页 · 提交工具 · 商务合作 · 关于本站 · 595 款 AI 工具分类导航 · 每日 AI 热门项目与动态