denopark logo
Deno Park
日本语
中文
English
首页游戏排行升级

切换Deno技术栈的一点心得

从零开始的挑战

本网站使用 deno 编写,运行在 deno deploy 上,并使用 fresh 框架,并且使用 supabase 作为数据库以及它的 realtime 实现多人在线, 游戏使用一个叫 kaboom.js 的轻量有趣的游戏引擎。 而这些技术在编写此网站前从未使用过。

作为独立开发者,做产品时候使用都是新的技术框架,是十分冒险的。但是现在回头看是十分正确的。

网站上线到现在,有超过 1万的注册用户。并且期间受到恶意注册攻击,注册超过 10 万的垃圾账号。但是网站都一直保持正常运行。 现在回头看,这些技术的选择让我的工作变得轻松和愉悦。

denopark tech stack

为什么使用新技术

因为新的技术是最简单的,第一版本发布用户测试时候,我只有 kv 没有数据库。开发期间只需要跑一行命令行 deno task start . 没有 npm install ,没有 pm2 logs. 更不用安装数据库,搭建测试和正式环境。

没有任何 ci,action。提交代码马上上线,fresh 的服务器渲染解决了 seo 问题。deno deploy 让我没有服务器运维的烦恼。这些对于一个开发者来说都是无比幸福的事情。

随着 supabase 的引入,项目变得有一些复杂。但是 supabase 的数据库+实时功能实现太诱惑了。

正是因为这些新技术带来极大的便利, 我们同时需要克服新技术带来的摩擦。我要分享使用新技术的秘诀,就是放弃完美主义。

用最简单的方式使用新技术

如果你的目标是让产品上线, 遇到问题马上用愚蠢的方案解决。比如网站的多语言如何实现,成熟的框架可能会有标准答案。我找不到,找到可能也不会用。所以最本的办法是把多语言写在 html 里面,通过语言变量去选择。

<a>{["Edit", "编辑", "編集"][langIndex]}</a>

像以上代码充斥着所有 html 代码中,但是我可以说效果很好。我方便修改,AI 也可以协助我修改。更重要的是我不用等 Fresh 的多语言支持,因为这是我自己的方式实现的。

最后

我不是想推广 deno 这项技术, 虽然我的域名包含 deno。但和官方没有关系,存粹是我注册不了 dinopark 的域名而已。

或者有更好的技术方案, 比如 bun, hono。 但是 deno 和 fresh 是值得尝试的, 特别是你还在使用 express 写网站。