Everything you care about in one place

Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.

Get Feeder

ramsayleung.github.io

自由庄园

Get the latest updates from 自由庄园 directly as they happen.

Follow now 24 followers

Latest posts

Last updated about 1 month ago

从在加拿大退货失败的一件小事思考系统设计

about 1 month ago

1 前言 前天刚写完《软件设计的哲学》,满脑子还萦绕着模块耦合和接口抽象, 结果昨天就撞上一个现实中的“设计陷阱”——一次耗时数小时却无解的「退货」噩梦。 今天趁着周末,决定把这场荒诞遭遇拆解出来,既当吐槽,也当案例分析 2 来龙去脉 前段时间搬了家,自然就需要重新办理宽带,一直用的是 Telus 家的家庭宽带服务,他们家的宽带服务也支持从一个住址迁移到另外一个住址, 就预约了 Telus...

软件设计的哲学

about 1 month ago

1 前言 知道这本书是因为在 Hacker News 上有人提问:你读过最好的技术书是什么 1 最高赞的书是 Design Data Intensive Application(DDIA,...

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

2 months ago

项目 GitHub 地址: Build Manager 1 前言 以 C 语言为例,一个程序通常由多个源文件 .c 组成...

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

3 months ago

项目 GitHub 地址: Page Template 1 前言 在现代网站开发里,内容与表现的分离已经成为基本准则(Separation of content and presentation)...

《过河卒》: 比特币雏形之父之父的故事

3 months ago

1 缘起 在《软件那些事儿》播客采访听众故事的系列里面,有一期名为《No.502 跟35岁的程序员聊聊比特币》1 长达三个多小时的播客,主人公分享自己与比特币的故事,还谈到其在2020年卖房买比特币的故事。 既钦佩这位仁兄知行合一的投资理念,也羡慕他卖房买比特币的财力,胆识与机遇。 这位同行在节目结束前分享了一本名为《过河卒》2的书籍,其作者戴习为是文革前就读于中国科技大学电子系的高材生。 为什么他会在聊比特币故事的播客节目中提及这位书呢? 因为比特币的作者中本聪的第一封已知公开的邮件3,即讨论比特币白皮书草稿的邮件,就是发给戴习为之子,戴维 4的 戴维的项目 b-money...

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

4 months ago

项目 GitHub 地址: Regex 1 前言 所谓的正则表达式,指的是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本。 最开始是一位叫 Stephen Cole Kleene 的数学家用被他称为...

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

4 months ago

项目 GitHub 地址: Selector 1 1 前言 以前写爬虫的时候,必不可少的一个工具就是 HTML selector, 就是用于匹配指定的 HTML...

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

4 months ago

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

软件工程师的软技能指北(六):谈薪篇

5 months ago

1 目录 软件工程师的软技能指北(一):总览篇 软件工程师的软技能指北(二):事业篇 软件工程师的软技能指北(三):高效交流篇 软件工程师的软技能指北(四):简历篇 软件工程师的软技能指北(五):面试篇(暂时跳过, 后面再填) 软件工程师的软技能指北(六):谈薪篇 2 前言 打了这么多年工,要说最后悔和最遗憾的是什么,「拿到...

重新造轮子系列(一):从0开发单元测试框架

5 months ago

1 前言 单元测试的重要性无须多言,它是保证项目质量的基石 如果没有单元测试,根本没有信心说自己开发的功能是符合要求的,更没法在没有测试的保证进行项目的重构。 既然单元测试如此重要,今天就用Typescript来写一个简单但五脏俱全的单元测试框架。 2 历史 Javascript 比较流行的测试框架是 Mocha 和 Jest...

ReInvent: 重新造轮子系列(序言)

5 months ago

1 起因与动机 最近在看 System Design By Example 这本书,主旨是通过设计和实现各种日常开发中常见的软件,以理解和提高系统设计(System Design)的能力。 每个章节都会实现一个软件,然后还会有大量的习题来完善这个软件,以练带学。 而我最推崇,并且认为最好的学习方法就是:费曼学习法(Feynman Technique)...

杂谈AI取代程序员

5 months ago

1 前言 最近国产的DeepSeek 模型的爆火,让「AI取代程序员」的说法又甚嚣尘上, 比如在国内著名的程序员社区 V2ex 搜索「AI取代程序员」1,可以搜索出 69627 条结果(截止2025-02-15) 以至于我的一位非程序员朋友都来关心我,问我是否有被取代的担忧。 在感谢朋友的关心之后,我也开始静下心来思考这个问题,以及形成这种想法背后可能的原因,然后就有了这篇文章。 2...