切换 Deno 技术栈的一点心得 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
tanrunhao
V2EX    程序员

切换 Deno 技术栈的一点心得

  •  
  •   tanrunhao
    tans 2023-09-09 19:45:12 +08:00 2895 次点击
    这是一个创建于 813 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原文 po https://cn.denopark.com/blog/stack

    denopark tech stack

    总结一下 deno 好处:

    1. 无需购买服务器
    2. 无需安装依赖,使用简单
    3. 自带 kv 数据库

    以下是复制原文。

    切换 Deno 技术栈的一点心得

    从零开始的挑战

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

    产品时候使用都是新的技术框架,是十分冒险的。但是现在回头看是十分正确的。

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

    为什么使用新技术

    因为新的技术是最简单的,第一版本发布用户测试时候,我只有 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 写网站。

    4 条回复    2024-02-05 14:57:25 +08:00
    chuck1in
        1
    chuck1in  
       2023-09-09 19:50:49 +08:00
    不用 express 的话用什么呢。 如果只是个小网站,不需要 nestjs 那种比较大型的架构。
    tanrunhao
        2
    tanrunhao  
    OP
       2023-09-09 19:56:14 +08:00
    @chuck1in fresh , 有点像 next.js , 如果是不想捆绑 deno , 可以看以下 hono.dev
    tanrunhao
        3
    tanrunhao  
    OP
       2023-09-09 19:57:57 +08:00
    @chuck1in 选择可以 edge deploy 的框架, 这样子做小项目的时候, 都不用服务器费用。 现在 vercel ,deno deploy 这些 edge deploy platform 都有很高的免费额度。
    iugo
        4
    iugo  
       2024-02-05 14:57:25 +08:00
    我们使用 deno 有一段时间了. 我们最在乎的是:

    1. Web API 兼容. (前后端一致)
    2. 原生 TypeScript 支持. (前后端类型一致)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3748 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 04:14 PVG 12:14 LAX 20:14 JFK 23:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86