cons: 无中生有的数据结构 前言lisp 中有一种有趣的数据结构,Cons,它使用函数闭包封装了一个两元组的数据结构,并在此之上构建出其他需要的任何数据结构。在此之前,虽然也知道闭包之类的概念,写过一些高阶函数,但并未想过可以使用函数来构建数据结构,下面吾辈会说明如何在 ts 完成。 lisp cons 的 wiki 基本定义如下 $$c=cons(a,b)\car(c)=a\cdr(c)=b$$ 初始实现cons 初始
vite 构建正确内联 svg 资源 场景目前 vite 构建时内联媒体资源的功能有 bug,从 2020 年底就已经存在一个 github issue,感觉短期不太可能解决,于是吾辈决定自行使用插件恢复这个功能。 下面是一个使用 vite 构建的 dist,可以看到其中的 svg 并未被正确内联到代码中,而是单独分割为了一个 bundle,而 jpg 图片则被正确内联。 现有插件为什么不使用插件 @rollup/plugin-im
前端使用工具强制实行代码规范(Vue) 场景 GitHub Demo 非强制性的规范都不会成为真正的规范。在之前,我们也会在团队内编写一些开发规范文档,却总是不能真正有效的执行下去,原因何在? 其一,人是健忘的,就算真正看完了规范文档,也不可能记住每一条规范,并且在代码中正确实践。 其二,人是懒惰的,即便有着规范,但只要写代码的时候没有强制性,那总是不会在意的。 那么,使用自动化的工具是为首选,而前端恰好有了一些可用的工具来帮助我
使用 ESBuild 插件机制实现需要的功能 前言esbuild 是一个通用的代码编译器和构建工具,使用 golang 构建,它非常快,性能上比现有的 js 工具链高 1~2 个数量级。它目前还不是一个开箱即用的构建工具,但通过它的插件系统,我们已经可以做到许多事情。 自动排除所有依赖项在构建 lib 时,我们通常都不希望捆绑依赖的模块,希望能够默认排除掉所有的依赖项,这个插件就是用来实现这个功能的。它会将所有不是以 . 开头的导入模块设置
读书笔记-低智商社会 为什么我们的企业家都忌讳向亚洲国家学习,没有人质疑过为什么日本不能借鉴中国好的东西(比如说向民众转让更多的权利等) 【批注】本质上并非如此,目前更加封闭专制了 Q:日本股市有什么理由能保持上涨? 【批注】话虽如此,我也确实不了解股市。但我相信,经济危机会影响全球,不可能有人能独善装身。 Q:“引进外资有害,所以要维护日本本土企业的利益。”我想这就是现在大家公认的“日本的常识”,那么请从经济全球
VSCode 搭建 markdown 写作环境 场景Markdown 是一种轻量级的标记语言(Wiki),目前已经是很流行的写作语言了。因为 Markdown 真的非常简单,易读易写是 Markdown 的目标。然而,虽然 Markdown 已经足够简单了,但我们还是希望能有一个专门的写作环境,用于实现诸如 语法高亮,快捷键,即时预览,导出其他格式 等功能。而如果你和吾辈一样是个 Developer,那么 VSCode 应该是最好的选择,不仅能
Code Review 漫谈 02 场景继上次的 code review 之后,吾辈这两天在迁移 vpn ip => domain 的过程中,需要帮忙修改一些之前写死的 vpn ip 地址为动态从后端获取,所以有幸见到了一些有趣的代码,便于此继续分享一下。 在 vue3 项目中仍然写 vue2 的 options 组件 完全没有分层的概念,想到哪儿写到哪 神奇的获取 url 参数的方式及变量命名 错误处理仅仅只是打印在控制台
Windows 上 Maven 安装与使用 官网, GitHub 介绍Maven 已经是 Java 事实上的依赖管理标准工具了,所以学习使用 maven 有益无害。 前置要求 必须已经安装了 JDK 并设置了环境变量,如果还没有安装,请参考 Windows 上安装 JDK 并设置环境变量 进行安装 下载在官网 下载页面 找到 Binary zip archive 下载二进制数据。 这里不使用二进制安装包的原因是绿色版更容易迁移,
Code Review 漫谈 01 场景 某些言辞可能略微辛辣,请勿对号入座。 最近在帮同事做代码的 code review,发现了一些日常很难见到的奇妙代码,其中有些吾辈可能都不知道可以这样写。所以发布出来,便于其他刚入坑的萌新警戒。 先发一份快乐源泉 下面列一些吾辈发现的问题 目录结构和命名混乱这似乎是多人协作天生就会遇到的问题,但吾辈确实还是想吐槽一番。如果说按照业务分割顶级目录,然后在子目录分割类型,那么 asssets
VSCode 扩展 New Project 发布 0.2.0 前言在之前 VSCode 扩展 New Project 发布 0.1.0 一文中,吾辈实现了基本的扩展功能,也说明在过程中遇到的一些问题。现在,吾辈实现了自定义生成器的功能,然后发布了 0.2.0,这让使用公司内部的 cli 生成器变成了可能。 具体来说,有以下几步 公开生成器的 json schema 从 vscode 配置中获取 json configs 渲染为创建模板项目的表单 创建时与内
VSCode 扩展 New Project 发布 0.1.0 前言 vscode 扩展市场 这个 idea 起源于吾辈从 webstorm 切换到 vscode 的几周后,在上个周末,吾辈想到,为什么 Jetbrains IDE 都有 项目创建引导面板,而 vscode 却并不支持,而只能使用命令行工具呢?念及于此,吾辈便打算自行在 vscode 中实现对等插件。 吾辈之前也为 webstorm 开发了一个生成 vite 项目的插件 Vite Integ
在 ts 中使用 graphql 场景graphql 提供前后端一致的 api 架构元数据,同时通过请求合并、按需获取加快 web 与后端交互的性能。 结合 ts 使用基本思路 扫描 gql 文件中的查询文件 生成类型定义与 document 对象 使用这些类型定义 使用步骤 以下使用 github api@v4 进行演示 获取后端的元数据 12pnpm i -g get-graphql-schemaget-graphql-