- 博客(7)
- 收藏
- 关注
原创 [译]在 TypeScript 中像 Go 和 Rust 那样处理错误?没有 Try/Catch
你不会错过任何一个。你可以指定哪个方法会返回它们,你返回它们,然后赋给变量,你对它们检查然后使用。在我使用 TS 的那一刻,我认为它是世界上最好的编程语言。这是三个中最冗长的一个,但讽刺的是也是最好的一个!首先,Rust 通过它惊人的枚举类型来处理错误(它们和 TypeScript 的枚举不同。所以,就我个人而言的第一个问题是,我相信也是 JavaScript 有史以来最大的问题,即:我们不知道什么会抛出错误。你很快就会意识到,代码中几乎所有的异步方法都可能会抛错,同步方法也会,你知道它们,但可能并不多。
2024-05-10 00:22:35
1861
原创 [译]现代化JavaScript深拷贝方式
两个对象间仍然共享日期类型和数组的引用,如果我们想修改那些我们认为只是拷贝对象的属性时,就会引起严重的问题。如果你仅仅只需要做浅拷贝,即不用拷贝那些嵌套的对象或者数组,那自然是可以使用对象展开的。是的,这也是一个技巧。比如,像下面这种抽风的示例也会符合预期:(译者注:可以去控制台试试,真的无限嵌套了)的实例,被拷贝的对象将不会被认为是该类的实例(但该类中所有合法的属性都会被拷贝)。你是否注意到在上面的例子中,我们拷贝整个对象同时也拷贝了内嵌的数组甚至是。需要注意的是 Web Worker 有更多的限制。
2024-04-14 18:54:30
1555
原创 我日常使用的 AI 工具和提示词技巧
不同的提问方式对结果的影响很大,问题中包含的细节越多,结果就更详细也更接近预期。Copilot 的同类型代码辅助工具,支持多种语言,可以直接在常用的编辑器如 VSCode,neo vim 和 IDE 如 JetBrain 全家桶中使用。另一点的感受就是,编排提示词的过程也是对需求重新梳理的过程。我们的视角也从开发者转变成了需求的提出者,视角的转变以及重新组织语言可以帮助我们梳理清楚需求以及发现之前遗漏的内容。(生产力的一大解放)能读懂我的想法,生成的代码基本都是我想要的,有种比我更了解代码的错觉。
2024-03-29 19:59:29
1302
原创 从开发的视角聊聊 AI 带来感受与变化
生产力的解放一方面可以让个人完成更多的事情,另一方面会带来产能过剩的问题。但靴子终究有落地的时候,或早或晚。我觉得作为普通人,想法和行动可以朴素一些:就是把手头的活,与 AI 结合好,一点点来。试想当今后的工作会逐渐由 AI 来完成细节部分,人类进行检查并完成抽象部分,生产力将会得到极大的解放。放在 4 年前,同样的需求在不熟悉 Vue3 的前提下至少需要 2 天左右的时间。作为直面用户的前端,页面上的需求是十分明确的。但可以看到的是,在 AI 的加持下,技术的门槛正在被削弱、执行某件事的阻力变小了。
2024-03-22 00:19:47
553
原创 Vue3 实现一个简单的放大动画
其实这两次的动画效果,代码都是利用 ChatGPT 生成的,我自己基本没有什么参与。但有了 ChatGPT 的加持,我也可以用当前的前端技术实现一些需求。尽管这次的需求比较简单,但通过实践可以发现,利用好 AI 能够拓宽我们的技术面,让我们做到更多事情。其中最主要的还是位移计算的逻辑。下面是Demo地址,也可以在我的博客上看到 Demo。根据不同的需求结合不同的动画,可以让我们的页面变得更加酷炫。先根据后端返回的数据排列内容,然后当用户点击某块内容后居中放大并根据具体的方位数据显示方位动画。
2024-03-18 00:08:46
717
原创 Vue3 实现一个简单的方位动画
在这个实现下,要获得不错的效果主要依赖背景图片是否合适,图片大小、边缘留白等都会影响最终的效果。如果是针对不规则的地形组合,可能用 SVG 或 Canvas 来实现更好,但相对的代码复杂度也会上升。这是最近遇到的一个有点意思的需求,需要根据后端返回的数据,在一块地图的具体的方位上显示对应位置标识(位置图钉)。不用十分精确,只要能表现出大致的方位即可。除了方位标识,类似的实现也可以拓展到其他场景,比如车厢内的座位标识,停车场的车位标识等。来实现位置标识的显示和动画。类似下面的效果,有点像游戏里的地图标识。
2024-02-28 23:32:59
470
原创 改进 Git flow 来管理 Bitbucket 上的私有 TypeScript 依赖
这一套 Git flow 可以在任何的代码托管工具使用,即便没有类似 Pipeline/GitAction 的触发方式同样也可以通过跑脚本的方式实现。出于人力以及迁移仓库的成本考虑(我们有近 100 个依赖,且每个依赖有许多版本并且被不同的服务引用),对此只能通过改进 Git flow 来解决上述瑕疵。虽然没有完美的 Git flow,但一套合适的 Git flow 也可以让我们的工作更加规范,提高工作的效率。,整个 Git flow 的核心。实现打 src tag、编译以及推送编译后的正式 tag。
2024-02-16 16:01:20
406
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人