Skip to content

Commit

Permalink
[common][docs]: 更新博文
Browse files Browse the repository at this point in the history
  • Loading branch information
jiaziling committed Feb 20, 2025
1 parent 33a0fb1 commit 9eee7e2
Show file tree
Hide file tree
Showing 3 changed files with 193 additions and 0 deletions.
64 changes: 64 additions & 0 deletions src/content/blog/fe/Code2Prompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
title: 代码秒变提示词,这款 CLI 工具太神奇!开发者必备神器
description: 代码秒变提示词,这款 CLI 工具太神奇!开发者必备神器
date: 2025-02-19
---

在软件开发的世界里,与大型语言模型(LLM)打交道已成为常态。无论是代码生成、代码审查还是代码优化,LLM 都能提供强大的支持。然而,将整个代码库转换成一个适合 LLM 处理的提示词,却并非易事。今天,就给大家介绍一款超实用的 CLI 工具——code2prompt,它能轻松将你的代码库转换成一个单一的 LLM 提示词,让你的开发效率瞬间提升!

## 一、code2prompt 是什么?

code2prompt 是一款命令行工具,它能够遍历你的代码库,生成一个包含源代码树结构和所有代码的格式化 Markdown 提示词。这个提示词可以直接用于 GPT 或 Claude 等模型,让你能够快速生成代码文档、发现潜在的安全漏洞、优化代码性能等。

## 二、功能亮点

1. **快速生成提示词**:无论你的代码库有多大,code2prompt 都能迅速生成提示词,节省你大量手动整理代码的时间。
2. **自定义模板**:支持使用 Handlebars 模板,你可以根据自己的需求定制提示词的生成方式。内置了多种模板,如代码文档生成、安全漏洞检测、代码优化等。
3. **尊重 `.gitignore`**:默认情况下,code2prompt 会遵循 `.gitignore` 文件中的规则,避免将不需要的文件包含在提示词中。当然,你也可以通过参数禁用这一功能。
4. **文件过滤与排除**:支持使用 glob 模式过滤和排除文件,还能根据文件名或路径排除特定文件和文件夹。
5. **显示 token 数量**:能够显示生成提示词的 token 数量,这对于控制 LLM 的输入长度非常有帮助。
6. **集成 Git 功能**:可以将 Git diff 输出(已暂存文件)包含在生成的提示词中,方便进行代码对比和审查。
7. **自动复制到剪贴板**:生成的提示词会自动复制到剪贴板,省去手动复制的麻烦。
8. **支持多种编码**:支持多种 token 编码方式,如 `cl100k``p50k` 等,适配不同的 LLM 模型。

## 三、安装与使用

### 安装

1. **二进制发布版**:直接从 [Releases](https://github.com/mufeedvh/code2prompt/releases) 页面下载适用于你操作系统的最新二进制文件。
2. **源码构建**:如果你喜欢从源码构建,确保你安装了 Git、Rust 和 Cargo,然后克隆仓库并运行 `cargo build --release`
3. **cargo 安装**:通过 `cargo install code2prompt` 命令直接从 `crates.io` 注册表安装。
4. **AUR 安装**:如果你使用的是 Arch Linux,可以通过 AUR 安装。
5. **Nix 安装**:使用 Nix 的用户可以通过 `nix-env``profile` 安装。

### 使用

基本命令格式为 `code2prompt path/to/codebase`,以下是一些常用参数:

- `-t path/to/template.hbs`:指定自定义模板文件。
- `--include="*.rs,*.toml"`:使用 glob 模式包含特定文件。
- `--exclude="*.txt,*.md"`:使用 glob 模式排除特定文件。
- `--tokens`:显示生成提示词的 token 数量。
- `--output=output.txt`:将生成的提示词保存到指定文件。
- `--json`:以 JSON 格式输出结果。
- `--diff`:包含 Git diff 输出(已暂存文件)。
- `--line-number`:在源代码块中添加行号。
- `--hidden`:包含隐藏文件和目录。
- `--no-ignore`:禁用 `.gitignore` 规则。

## 四、内置模板介绍

code2prompt 内置了多种实用的模板,满足不同的开发需求:

- **document-the-code.hbs**:用于生成代码文档,为所有公共函数、方法、类和模块添加文档注释。
- **find-security-vulnerabilities.hbs**:用于检测代码库中的潜在安全漏洞,并提供修复建议。
- **clean-up-code.hbs**:用于清理和优化代码,提高代码质量。
- **fix-bugs.hbs**:用于诊断和修复代码中的错误。
- **write-github-pull-request.hbs**:用于生成 GitHub 拉取请求描述,通过比较两个分支的 Git diff 和 Git log 来创建。
- **write-github-readme.hbs**:用于生成项目的 README 文件,分析代码库的功能和用途,生成 Markdown 格式的内容。
- **write-git-commit.hbs**:用于生成 Git 提交信息,分析已暂存文件的代码库,生成 Markdown 格式的提交信息。
- **improve-performance.hbs**:用于优化代码性能,寻找优化机会并提供具体建议。

## 五、总结

code2prompt 无疑是一款开发者必备的神器,它极大地简化了将代码库转换为 LLM 提示词的过程,让你能够更高效地利用 LLM 进行代码相关的工作。无论是代码文档生成、安全漏洞检测还是代码优化,code2prompt 都能轻松胜任。赶紧试试这款工具,让你的开发工作更上一层楼!
102 changes: 102 additions & 0 deletions src/content/blog/fe/simple-mind-map.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
---
title: 探索简单而强大的 Web 思维导图库 —— simple-mind-map
description: 探索简单而强大的 Web 思维导图库 —— simple-mind-map
date: 2025-02-20
---


# 探索简单而强大的 Web 思维导图库 —— simple-mind-map

在信息爆炸的时代,如何高效地整理思绪、规划项目、管理知识?思维导图作为一种强大的工具,能帮助我们以可视化的方式梳理复杂的信息。今天,给大家介绍一个简单而强大的 Web 思维导图库 —— [simple-mind-map](https://github.com/wanglin2/mind-map)

## 项目简介

[simple-mind-map](https://github.com/wanglin2/mind-map) 是由 wanglin2 开发的一个 Web 思维导图库,它不依赖任何框架,可以快速完成 Web 思维导图产品的开发。该项目不仅提供了一个思维导图库,还基于该库开发了一个 Web 思维导图应用,可以操作电脑本地文件,也可以自部署和二次开发。

## 项目特点

### 插件化架构

simple-mind-map 采用插件化架构,除了核心功能外,其他功能都以插件的形式提供。开发者可以根据需求按需引入插件,这样可以有效减小打包体积,提高应用的性能。

### 多种结构支持

该库支持多种结构,包括逻辑结构图(向左、向右逻辑结构图)、思维导图、组织结构图、目录组织图、时间轴(横向、竖向)、鱼骨图等。无论是项目规划、知识管理还是问题分析,都能满足你的需求。

### 高度自定义

simple-mind-map 内置多种主题,并允许高度自定义样式,支持注册新主题。节点内容支持文本(普通文本、富文本)、图片、图标、超链接、备注、标签、概要、数学公式等,满足不同场景下的多样化需求。

### 丰富的交互功能

- 节点支持拖拽(拖拽移动、自由调整),多种节点形状,支持扩展节点内容,支持使用 DDM 完全自定义节点内容。
- 支持画布拖动、缩放,支持鼠标按键拖动选择和 Ctrl+左键两种多选节点方式。
- 支持导出为 json、png、svg、pdf、markdown、xmind、txt,支持从 json、xmind、markdown 导入。

### 协同编辑与演示模式

- 支持协同编辑,团队成员可以实时协作,共同完成思维导图的绘制。
- 支持演示模式,方便将思维导图用于会议、教学等场景。

## 使用方法

### 安装

使用 npm 安装 simple-mind-map:

```bash
npm i simple-mind-map
```

### 使用

提供一个宽高不为 0 的容器元素:

```html
<div id="mindMapContainer"></div>
```

设置 CSS 样式:

```css
#mindMapContainer * {
margin: 0;
padding: 0;
}
```

创建一个实例:

```javascript
import MindMap from "simple-mind-map";

const mindMap = new MindMap({
el: document.getElementById("mindMapContainer"),
data: {
data: {
text: "根节点",
},
children: [],
},
});
```

通过以上简单的代码,你就可以在网页上展示一个思维导图了。如果需要更多功能,可以查看 [开发文档](https://wanglin2.github.io/mind-map-docs/)

## 项目亮点

### 云存储版本

如果你需要带后端的云存储版本,可以尝试开发者提供的另一个项目 —— 理想文档。

### 客户端支持

simple-mind-map 也支持以客户端的方式使用,现已上架 uTools 插件应用市场。你可以通过 uTools 插件应用市场搜索 `思绪` 进行安装,也可以直接访问 [主页](https://github.com/wanglin2/mind-map) 点击右侧的【启动】按钮进行安装。

### 赞助与定制

如果你觉得这个项目对你有帮助,可以通过请作者喝杯咖啡的方式来支持项目的发展。此外,如果你有个性化的商用定制需求,可以联系开发者,他们提供付费开发服务。

## 结语

[simple-mind-map](https://github.com/wanglin2/mind-map) 是一个简单而强大的 Web 思维导图库,无论是个人用户还是企业团队,都能从中受益。它丰富的功能、灵活的插件化架构以及高度的自定义能力,使其成为 Web 思维导图开发的首选工具之一。如果你正在寻找一个可靠的思维导图库,不妨试试 simple-mind-map,相信它会给你带来惊喜。
27 changes: 27 additions & 0 deletions src/content/blog/fe/从洗衣机看软件工作量估量.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
title: 从洗衣机安装看软件工作量估算的门道
description: 从洗衣机安装看软件工作量估算的门道
date: 2025-02-18
---

在软件开发领域,工作量估算一直是个让人头疼的难题。开发者们常常被问及 “完成这个功能需要多长时间?” 这个问题,而回答起来却并不容易。今天,就和大家分享一个有趣的故事,它生动地诠释了软件工作量估算的复杂性。

## 搬家与洗衣机安装的 “小插曲”

作者最近搬家,住进了一套新建的房子,这可是他人生中第九次搬家了。按以往经验,安装洗衣机不过是 10 分钟以内的事儿。然而,这次却足足花了 4 个小时!

一开始,作者看到洗衣房的布局,发现电源插座在另一个隔间,而建筑商忘了在搁板上钻孔以便穿过电线。没办法,他只能去五金店买了一个 60 毫米的孔锯。回家后,又发现自己的家用钻头装不下孔锯,只能返回五金店,租借了一个更专业的钻头。好不容易把孔打好,却发现洗衣机的进出水管在新布局下长度不够。本想通过拉伸现有水管解决问题,结果发现水管并不具备这种功能,只能再回五金店买新水管。

安装水管时,又遇到新问题:冷水龙头被一个钢制盖子紧紧封住,手头没有足够大的扳手能拧开。于是,又是一趟五金店之旅,买回合适的扳手。终于把水管都接好,洗衣机却出现了 E39 排水障碍错误。经过一番检查,原来是排水管连接的 U 形弯头处有个 PVC 墙需要钻开,而作者此前对此一无所知。

## 软件工作量估算的 “坑”

这次洗衣机安装经历,让作者联想到了软件工作量估算的种种困境。很多时候,我们基于过往经验对一个看似熟悉的项目进行估算,却忽略了新环境下可能出现的各种意外情况,也就是所谓的 “未知的未知”。

在软件开发中,这种情况屡见不鲜。比如,我们打算使用一个之前用过的任务运行框架,却发现它已经很久没有维护了,需要重新分叉并修改才能适配新项目;或者,我们熟悉的开发工具生态系统已经更新换代,我们不得不从头学习新的工具链;再或者,操作系统版本的更新导致现有依赖的关键要求不再被支持,需要重新思考甚至从零开发。

## 如何应对这些 “未知”

面对这些 “未知的未知”,我们并非无计可施。虽然无法完全避免,但可以通过一些方法来降低风险。首先,尽可能全面地收集需求,与客户、用户以及相关利益方进行深入沟通,确保对项目目标和功能有清晰的理解。其次,建立风险管理机制,在项目计划中预留一定的缓冲时间,以应对可能出现的意外情况。最后,采用敏捷开发方法,通过迭代和反馈及时调整项目方向和进度,确保项目能够灵活应对变化。

总之,无论是安装洗衣机还是进行软件开发,我们都需要对可能出现的意外情况保持警惕,并通过合理的方法来应对,才能更好地完成任务。

0 comments on commit 9eee7e2

Please sign in to comment.