重新造轮子系列(六):构建工具

项目 GitHub 地址: Build Manager 1 前言 以 C 语言为例,一个程序通常由多个源文件 .c 组成, 每个源文件需要先编译成目标文件 .o, 再链接成最终的可执行文件。 如果只改动了其中一个源文件的内容,理想情况只需要重新编译并重新链接改动文件,而非从头构建整个项目(所谓的增量编译)。 ...

四月 20, 2025 · 7 分钟 · 3186 字

重新造轮子系列(五):模板引擎

项目 GitHub 地址: Page Template 1 前言 在现代网站开发里,内容与表现的分离已经成为基本准则(Separation of content and presentation), 比如 HTML 就是负责内容展现,而 CSS 就是负责页面的样式。 ...

四月 14, 2025 · 9 分钟 · 4316 字

重新造轮子系列(四):正则表达式引擎

项目 GitHub 地址: Regex 1 前言 所谓的正则表达式,指的是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本。 最开始是一位叫 Stephen Cole Kleene 的数学家用被他称为 Regular Events 的数学表达式来描述这一模型,在 1968 年,由C语言之父 Ken Tompson 将这个表达式引入到行编辑器 QED, 随后是 Unix 上的编辑器 ed (vi 的前身) ,并最终引入到 grep. ...

三月 15, 2025 · 13 分钟 · 6263 字

重新造轮子系列(三): HTML Selector

项目 GitHub 地址: Selector 1 1 前言 以前写爬虫的时候,必不可少的一个工具就是 HTML selector, 就是用于匹配指定的 HTML 标签。 毕竟爬虫的本质就是找出需要的标签里面的内容,然后解析出来。 ...

三月 15, 2025 · 5 分钟 · 2033 字

重新造轮子系列(二):文件备份

项目 GitHub 地址: File Backup 1 前言 既然我们已经有单元测试框架来测试软件了,我们肯定不想已经写好的代码丢失掉。 对于重要的文件,一个必不可少的功能肯定是备份, 这样在丢失文件之后可以重新恢复。 今天我们就来写个简单的文件备份软件,类似 Git 这样的版本系统可以当作是高级版本的文件系统,因为它还支持切换到不同版本,对比版本间的差异等等功能,而我们不打算实现一个版本管理系统,只实现基础的文件备份功能。 ...

三月 2, 2025 · 5 分钟 · 2087 字