从零搭建MCP服务:基于Stdio的实践指南
最近 MCP 的概念很火,还有 A2A。但是发现很多文章都停留在了概念层面,没有深入去说如何构建一个 MCP 的服务,以及我觉得很多文章对 MCP 的理解其实也是有问题的,所以这篇文章算是站在工程师的角度,如何去构建一个 MCP 的服务。
会大概写三个系列,当前为第一系列 主要介绍 Stdio...
2024年终总结
按照惯例总结一下 2024 年的一些感悟,打了很多字但是又给删除了。下面从一个工作蛮久的二线程序员视角来聊聊今年的一些感悟。
工作
整体经济的萧条,就是我对今年的感悟。
很多岗位的缩减以及投递简历数量都可以验证这一点。不想从太宏观的角度来分析,作为个人能做的就是尽量提升竞争力(软、硬方面),以...
现代 CSS 切换主题方式探索
最近重构了博客系统,其中涉及到主题切换的方案,于是就有了这次的分享。
UnoCSS 方案
使用 CSS 变量配合 UnoCSS 插件注入的方式完成主题切换功能。
具体来说,我们的主题有三种模式:
跟随系统;
浅色;
深色。
其中,用户手动选择的模式会覆盖系统跟随模式。
一个比较容易想到的...
如何为 Typora 添加图床?
其实自己一直不是 Typora 的重度用户,虽然可以实时预览编辑,但是我期待的格式化功能目前还是缺失。
但是得益于颜值自己还是会偶尔使用它,但是本地的 md 文件和发布到掘金和 Github 等平台还需要对本地链接一个个转换,实在是非常不友好。所以就有了这篇文章,介绍一下在 Typora 中如...
优雅传递 postMessage
在最近开发的过程中遇到了一个问题,在集成 Vue SFC Playground 的时候同时也使用了 monaco-editor,而 Vue SFC Playground 使用的默认编辑器就是 monaco-editor-core。
这就导致了一个问题,存在两个编辑器,但是它们都定义了全局变量...
从 VueCLI 迁移到 Rsbuild
公司有许多项目仍然停留在 Vue 2 上,每次通过 VueCLI 启动都需要等待大约 30 秒(在 M1 芯片上),每次热重载的速度也让人难以忍受,构建速度同样缓慢。虽然可以通过 esbuild 等工具改善,但在某天多次修改需求后,我决定忍无可忍,于是有了这篇文章。
决定迁移的原因主要有两点:...
花了一天我写了这样一个 Prettier 插件
Prettier 在日常经常使用,除了格式化代码之外在编写文档的时候也会选择使用,但是最近安装 Prettier 到项目依赖之后发现 md 文件的格式化文档竟然失效了。
排查了一番原因,最终在 GitHub 上找到了相关讨论 Markdown: Add an option to re-enab...
从 Vue 构建模块你可以学到什么?
最近在给公司内部低代码平台进行升级,原本是单一仓库,里面有各种模块,例如:
utils
view-render
form-render
fetch
form-design
...
它们最终给其他产品线使用的时候是通过 Vue Cli 打包成一个 umd 的 js 文件,但是这样会带来一系列...
前端面试回顾
趁现在有时间稍微总结一下面试的一些问题
one
Promise 为什么可以链式调用
如果在.then 返回一个值,这个新的 Promise 状态是什么
如果想要阻止链式调用,让后续的.then 一直暂停状态有哪些方法
all 和 allSettled 区别
设计一个调度程序,可以让 Prom...
React RSC
最近 React 19 已经属于测试版本了,里面更新了很多功能,其中就包含今天要说的 RSC。你可能在某个框架(如 Next.js 或 Remix)中已经使用过了对它有了一定的理解,但不确定它的使用方式,或者你很想知道它到底是什么。
在本文中,主要是分享 React 服务器组件(RSC)的出现...