文件符號

GitLab Mirror 3 分钟轻松迁移与同步 Git Repo

近期工作上计划将 GitLab 迁移到 GitHub,但光是腾出时间进行专案迁移就感觉很麻烦,也因此很多计画被耽搁着,像是建构 CI 自动化测试环境、导入 AI 代码审核。幸好 GitLab 很早就有一项功能叫做 Mirroring。

容器装载惊叹号符号

速通了解 TypeScript 泛型

对于 TypeScript 的泛型我一直有种恐惧,什么满满的 `<T>`、`<U>`、`extends`、多层嵌套,看起来就很可怕。毕竟在日常开发里,好像也不太需要……对吧?的确解决小问题如此,但在特定问题下泛型将会非常必要。

打勾圆框符号

前端自动化测试会遇上的坑

前端 UI 一直是多变且复杂的题材,经历各种工具迭代与起伏,有很长一段时间其实并没有什么特别统一良好的方式进行测试。在经历过太多次的跌宕变化过后,纪录我认为现阶段怎么打造可被验证的前端与未来趋势与过程中实际遇到的各种困难。

形状转换符号

实际简单的 Monad 解释

Functor 的好处是:它让我们能用同样的方式操作不同的「容器型别」,想像成一个「装值的盒子」,它允许我们对盒子里的值进行运算,但同时又保留了盒子的结构。 Functor 「提供了方式在容器里操作值」,遵循同一性(Identity)与合成性(Composition)。

形状转换符号

实际简洁的 Applicative Functor 解释

从先前 Functor 的概念出发,Functor 的 `map` 只能作用在数值上,而不能是「存在于容器中的数值」上,所以才需要 Applicative Functor,一种比 Functor 更多功能的结构,除了满足 Functor 的功能外还能「让盒子里的函数作用(apply)到另一盒子的值」。

节点符号

Pointfree 代码风格通过函数组合提升代码质量

一种代码风格,着重于函式的组合关系而非具体资料,定义函式时不显式提其参数(points),而是透过函式组合与高阶函式来表达资料流动。可以减少不必要的命名保持代码简洁与达成更好的通用组合性,但是额外的抽象须被理解与熟悉。透过两个实际案例熟悉 Pointfree 开发风格。

形状转换符号

实际简单的 Functor 解释

我不是数学家也对于范畴论没有太大兴趣,但它深刻的与 Functional Programming 进阶理念挂勾,透过实战了解开发层面这些理论可以如何撰写更好维护的程式。 Functor 是一种具有 map 方法的结构,允许对其中的值进行转换同时保持结构不变、让函数可以基于容器进行组合,意味着可以被用于封装副作用或情境。

加载符号

探讨适当的加载时长如何打造更好的加载体验

最好的用户体验是即时的,因此追求更短的等待时间和更快的反馈非常重要,然而匆忙的将任何信息显示给用户未必是最佳体验,举例来说:1.进入网页 2.反馈“加载数据中……”3.显示加载完成的数据,以上流程简洁实在,会有什么问题呢?问题出在时机和时间。

复选框符号

轻松引入的 Vue 无头表单验证:VeeValidate

最近在迁移旧的 Element Plus 项目时,需要寻找另一款客户端表单验证方案。在使用 Shadcn Vue 的过程中,我发现 VeeValidate 是一款专为 Vue 打造的无头表单验证工具,你可以集成自己的 UI,使用原生表单组件也完全没有问题。

人与各种形状图示

学习 Go interface 实践多型

对于「多型 Polymorphism」的概念理解像是「要做一件事,但这件事对不同对象来说实践的方式不同」。具体来说像是各种「形状」都可以「算面积」,但背后实践的方法却不同,而在 Go 当中 interface 就是方法的集合。

板手图示

像 Class Method 的奇特 Go Receiver Function

第一次看到 Go 的 Receiver 函数会觉得这是啥怪语法,函数名前面还能接收参数?Go 语言提倡「Composition over inheritance」,并极力追求代码的简洁性,以此规避 class-based OOP 所带来的复杂性。

指標图示

学习 Go Pointer 与 Passing by reference 的差异

Go 设计上一切数值都是直白的「Passing by value」,会有「Passing by value」的效果原因是因为 Reference Types 带有指标,复制时是复制指标值。要让 Value Types 有 Passing by Reference 的效果要显式的使用 Pointer。

表格图示

TanStack Table 拯救前端复杂的数据表格呈现问题

前端生涯中遇到无数攸关资料呈现的需求需要解决,而 TanStack Table 是一款第一眼看起来很多余复杂但实际上能省下无数时间的一个优质套件,如果有任何「大量表单、中大型表单应用」我会强烈推荐。在实际工作中我透过导入 TanStack Table 在几天时间内就能把现有表单大多复杂功能重现。