跳到主要内容
你好! 我是愧怍

在这里我会分享各类技术栈所遇到问题与解决方案,带你了解最新的技术栈以及实际开发中如何应用,并希望我的开发经历对你有所启发。

你可以随处逛逛,查看技术笔记实战项目网址导航、以及我的想法感悟

自我介绍

推荐阅读

  • 记 Github 学生认证

    记 Github 学生认证

    记录本人 Github 学生认证艰辛过程与经验分享。

  • KZ-API接口服务

    KZ-API接口服务

    基于 Nuxt3 的 API 接口服务网站,易于封装,调用,部署。

  • 使用JSONPath解析json数据

    使用JSONPath解析json数据

    jsonpath 能够帮助我们快速的从json数据中提取想要的数据

  • 写一个VSCode扩展

    写一个VSCode扩展

    编写一个属于个人定制化的 VSCode 扩展,并将其发布到应用商店中

  • Vercel部署个人博客

    Vercel部署个人博客

    使用 Vercel 部署个人博客过程记录,简单方便、访问快、免费部署。

  • 深谈个人对新技术的看法

    目前技术圈的发展速度可谓是有目共睹,尤其是前端,每隔一段时间就出新的技术,可以说让很多初学者非常畏惧,没有一个明确的方向不知道从何学起。

最新博客

Deno 是一个安全的 JavaScript 和 TypeScript 运行时,作者是 Ryan Dahl(也是 Node.js 的原作者)。Deno 的诞生之初是为了解决 2009 年首次设计 Node.js 时的一些疏忽。我认为这种改造动机很有道理,因为我相信每个程序员都希望有机会能重写他们已有 10 年历史的代码。

deno 刚出的时候就听闻了,传言 deno 是下一代 node.js。不过如今看来,还革不了 node.js 的命。如果要说两者字面上的区别,Deno 的来源是 Node 的字母重新组合(Node = no + de),表示"拆除 Node.js"(de = destroy, no = Node.js)。

趁着假期学了一段时间的 deno(指文档刷了一遍),想分享本人作为 node 开发者在学习 deno 时认为的一些亮点,以及个人对 deno 与 node 见解。


愧怍denonodejavascripttypescript15 分钟阅读

我初识 WebAssembly 是当初想要分析某个网站的加密算法,最终定位到了一个 .wasm 文件,没错,这个就是 WebAssembly 的构建产物,能够直接运行在浏览器中。在我当时看来这门技术很先进,不过如今看来绝大多数的 web 应用貌似都没使用上,迄今为止我也只在这个网站中看到使用 WebAssembly 的(也许有很多,只是没实质分析过)。

恰好最近正在接触 Rust,而 Rust 开发 WebAssembly 也非常方便,因此本文算是我对 Rust + WebAssembly 的初探。


愧怍rustwasm5 分钟阅读

距离上一篇博文有一个月之久了,距离上次编写代码也有一周之久了,由于疫情的全面放开,加上福建省教育厅通知的提前返乡,反而让我感到有些不适。往常这个时间点我忙于期末考试,会把代码的事情放一边,等到彻底放假后,开始闭关潜心学习。然而剩余的半个月变成了线上形式,课还是要上,考试还是要考,虽说身在家乡,但心不在焉的 😂。

12 月已过半,也是时候该写年终总结了。迄今为止,我已学习了 3 年半的编程。(还好不是两年半),当下的技术不再是当初只会易语言的小伙了。只是当下已没有当初如此强烈的热情与精力了,我称之为老了。

现在回头回顾学习编程时间,用一个成语对自己做个评价——差强人意。在这些时间段,我其实荒废过一段时间,厌倦过,贪玩过,荒废过,从我的 Github 热力图 中其实就能看得出来。就导致欠下技术的,都需要后续花时间去弥补。

要让自己保持每天都处于学习状态真的太难了 😩,生活总有源源不断的琐事打扰着你。在忙碌的时候总是感觉时间不够用,哪怕有时一天花费了数十个小时,也总感觉做的事情太少了;哪怕每天计划都规划得好好的,但总是有一半还未完成。生活中大量的碎片化时间,而编程学习最不需要的就是这些碎片化时间。

回顾整个编程生涯有太多可感慨的,整个旅途几乎是一个人走完的,期间遇到的坎坷就只得依靠搜索引擎来解决,搜索引擎是我再生父母都不为过。没有人给我指引明确的道路,只依靠心中对技术的憧憬不断前行。走过低谷,登过山峰,而如今站稳身子就足矣。

感叹的话语也就是说到这。今年主要总结我为何从逆向转 Web 开发,并明确我未来所要走的方向,也是本文的主题。仅作为个人感悟,不作为建议参考。


愧怍年终总结summary26 分钟阅读

GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。

大概率你听说过 GraphQL,知道它是一种与 Rest API 架构属于 API 接口的查询语言。但大概率你也与我一样没有尝试过 GraphQL。

事实上从 2012 年 Facebook 首次将 GraphQL 应用于移动应用,到 GraphQL 规范于 2015 年实现开源。可如今现状是 GraphQL 不温不火,时不时又有新的文章介绍,不知道的还以为是什么新技术。

目标

本文将上手使用 GraphQL,并用 Nestjs 与 Strapi 这两个 Node 框架搭建 GraphQL 服务。


愧怍apigraphqlneststrapi13 分钟阅读

kz-admin 使用 NestJs + TypeScript + TypeORM + Redis + MySql + Vben Admin 等技术栈,并采用 monorepo 管理项目,希望这个项目在 ts 全栈的路上能够帮助到你。

详细介绍可以参见 kz-admin后台管理系统

为何重构

前段时间基于我的 kz-admin 模板写了一个link-admin的项目(可以访问 link.kuizuo.cn 在线体验,账号 admin,密码a123456),是一个“一次性”充值链接管理系统,具体自行体验即可(项目未开源)。

该项目有前端管理页面,后端服务,和一个链接使用页面,共三个项目。

每次启动时候,都需要进入到对应项目下,打开终端,输入命令。要么使用npm-run-all 来批量执行 dev 与 build 命令。

想到后续项目的应用场景大概率也可能是多项目的,于是就准备使用 turborepo 将项目重构为 monorepo 管理,将前后端项目都统一放到一个仓库中,并且将 nestjs 版本升级到 v9,顺便在完善一下api接口文档,并提供 ApiFox 文档。


愧怍projectadmin6 分钟阅读

rollup.js

近期准备写一个工具包 @kuizuo/utils,由于要将其发布到npm上,必然就要兼容不同模块(例如 CommonJS 和 ESModule),通过打包器可以很轻松的将代码分别编译成这不同模块格式。

恰好 rollup 3 正式发布,也算是来体验一下。


愧怍rollupwebpackutils4 分钟阅读

目前技术圈的发展速度可谓是有目共睹,尤其是前端,每隔一段时间就出新的技术,可以说让很多初学者非常畏惧,没有一个明确的方向不知道从何学起。

同时也有很多人,只局限于使用手头已掌握的技术,而不愿去尝试新技术。举个例子,如今 vue3 都已经正式发布,但仍还有停留在 vue2 不愿尝试 vue3 的开发者。而 java 都发布 18 版本了,可还有很多人都还使用着 java8,这种现象可以说是非常常见了。

这里说说我个人编码经验与看法,仅作为个人观点,没别的意思


愧怍随笔杂谈感悟16 分钟阅读

v2-45d641f2191559d4eff581d0607efd61_1440w

如果你的项目要长期使用并维护的话,那么代码自动测试就非常有必要使用。因为没人能保证在修改代码后,不会引发其他额外 bug(功能失效,渲染失败),而在修改完代码后,跑一遍测试就能很大程度让开发者发现自己所修改的代码是否存在问题,是否会导致原有功能失效。

尤其是在其他人接手这个项目时,诱发 bug 的概率自然也就更高(因为他有很大的可能不知道这部分代码的上下文的功能用途),所以这也就是为什么很多开源项目与大型企业的公司都会使用自动化测试,以及要求一定的代码覆盖率。

当然如果项目不是长期维护的,那么完全没必要编写测试代码,这么做无疑是在浪费开发者的时间。


愧怍frontendtest9 分钟阅读

之前搭建过 Gitlab,但是就只是搭建而已,并未实际使用,因为我大部分的代码还是存放在 Github 上。

并且大部分项目都是在 Vercel 上运行的(Vercel 是真好用),但是最近国内访问 vercel 情况不容乐观,貌似被墙了呜呜。然后 Gitlab 的资源占用非常严重,几乎占用了一半的服务器性能,可 点我 查看运行状态。与此同时,随着很多私有项目越来越多,使用 git 私有仓库以及 Vercel 部署,肯定不如自建私有 git 服务和自有服务器部署使用体验来好。

于是就想搭建一个轻量级仓库,同时支持 CI/CD。经过一番的调研,决定使用 Gitea 和 Drone 作为解决方案。


愧怍gitgiteadrone6 分钟阅读