Refactoring English: Month 19

Michael Lynch

《Refactoring English》:第19个月

原文由 Michael Lynch 发布,订阅该博客

一句话总结

人们会为一本已经完稿的书付更多钱吗?

亮点

  • Refactoring English 迎来了销量第二高的月份。
  • 我分析了销售数据,想看看人们是否更愿意购买一本已完稿的书,而不是接近完稿的草稿。
  • 我完成了图书反馈工具。
  • 我在尝试一款新的时间追踪工具。

目标完成情况

每个月初,我都会定下当月想完成的目标。以下是本月的完成情况:

投入至少五小时改进 Refactoring English 网站

  • 结果:花了约三小时改进网站
  • 评分:B-

网站有了一点改进,但仍需进一步打磨。

Refactoring English 网站吸引3万名独立访客

  • 结果:获得了1.75万名独立访客。
  • 评分:B-

我把关于设计文档的一章改编成了一篇免费节选。它在 LobstersReddit 上表现不错,但在 Hacker News 上反响平平。

设计文档这一章获得的积极反响让我有些意外。一般来说,当我和开发者聊起设计文档时,他们的主要反应都是讨厌设计文档、讨厌与之相关的一切。而我这篇文章下的评论却让人耳目一新,大家普遍支持设计文档,也认可我的建议。

完成读者反馈工具

  • 结果:工具已上线运行。
  • 评分:A

我曾一度卡在那场大规模的 AI 封锁上,但后来通过更认真地拆分大功能、不过度纠结代码质量,最终推进了下来。在这种情况下,完成比完美更重要。

Refactoring English 数据一览

指标2026年5月2026年6月变化
独立访客1,75217,523+15,771 (+900%)
预售收入$407.61$1,441.86+$1,034.25 (+254%)

6月是自最初众筹上线以来图书收入最高的一个月。访客量的增长得益于我那篇关于设计文档的节选

最后的8%有多大差别?

过去几个月里,Refactoring English 网站在抢先体验阶段一直将我的书标注为接近完稿。我很好奇,从一本接近完稿的书变成完全完稿的书,会对销量产生什么影响,于是查看了每周的销售数据:

把书标记为完稿对周销量似乎没有明显影响,但如果看看日均数据呢?

好吧,标记完稿之后确实有小幅增长。

我还好奇,美国读者在书完稿后是否购买得更积极。每次有人购书我都会收到邮件通知,感觉按美国定价付款的销量变多了,但我没有仔细统计过。我查了数据来验证这一点:

有意思!完稿对使用区域定价的顾客的销量没有影响,但在书完稿后的三周里,按美元定价购买的顾客购买率高出了20%。

我没有计入发布最新节选之后的销量,因为那显然会大幅改变数据,所以我把它单独作为一类来看:

不过这总有点偏差,因为美国人在我的读者中占比最大。如果按每位访客的收入来标准化呢?

哦,结果反转了。按访客标准化后,故事就变了。现在是美国读者对完稿与未完稿的书购买率基本相同,而美国以外的读者在完稿后人均消费高出了约20%。

我还不确定该怎么利用这些信息,不过确实满足了我的好奇心。

读者正在书的应用里留下有用的反馈

过去我也曾请读者对书提供反馈,有些读者反馈非常热情,但只是极少数。我想做一个基于网页的反馈应用,让读者在阅读时就能直接留下笔记,这既有趣又有帮助。本以为一两周就能搞定。结果,短短……两个月后,我才把它真正做出来并上线!

我的图书反馈工具演示,读者可以直接在书中给我留言,我也可以回复。

我的反馈工具才上线几天,但似乎确实能鼓励读者提供更多反馈。有一位读者刚读完整本书,还提到反馈应用是他体验中最喜欢的部分之一,这让我很欣喜。

时隔15年,再次使用时间追踪工具

大约每年我都会问自己一次:我的时间都去哪儿了?每当我专注于一个项目,却发现进展不如预期时,这个问题就会冒出来。以下是我这些年几次问自己的记录:

这一次我想:“也许我该用个时间追踪工具。”

大约15年前,我试过一款叫 RescueTime 的时间追踪工具。我觉得它没什么用,但还是想着坚持几周看看效果。后来我意识到,自己竟然让一家陌生的公司收集屏幕上每个窗口的数据,于是立刻卸载了 RescueTime。

我当时希望能有一个开源版的 RescueTime,接着想到:“等等,应该已经有了吧。”还真有,它叫 ActivityWatch。它是开源且注重隐私的,会记录你所有的窗口和浏览活动,但所有数据都保留在本地机器上。

问题在于 ActivityWatch 远不如 RescueTime 精致。我完全看不懂时间线到底想展示什么:

我在官方 ActivityWatch 网页界面中完全看不懂时间线。

你需要通过设置规则来告诉 ActivityWatch 如何对活动进行分类,但我觉得那个界面也很难用:

我觉得官方 ActivityWatch 网页界面中的分类功能很难用。

我正准备放弃 ActivityWatch,转念一想:“好吧,数据收集部分应该还是能用的。要不我自己 vibe coding 一个前端?”

于是,我真的做了,而且相当简单。我先从一个命令行工具做起,计划之后再扩展成网页应用。

要使用我定制的前端,我会创建一个配置文件,根据应用名称、窗口标题和/或网址来对活动进行分类:

- name: Book/Feedback Site
  rules:
    - url: "*refactoring-english-feedback*"
    - window_title: "*refactoring-english-feedback*"

- name: Book/Website
  rules:
    - url: "*refactoring-english-landing*"
    - window_title: "*refactoring-english-landing*"

- name: Book/Writing
  rules:
    - app: Zathura
    - app: Code
      window_title: "*refactoring-english*"
    - app: firefox
      window_title: "mtlynch/refactoring-english *"

然后输出结果是这样的:

$ go run ./cmd/app --config data/config.yaml
...
Book               1h34m   19.7%
  Feedback Site      48m   10.0%
  Writing            46m    9.7%

到目前为止,数据挺有意思,但最大的挑战是很难自动归类我所有的活动。例如,我可以为浏览维基百科添加一个分类,但我是在为写书做正经研究呢,还是不小心掉进了兔子洞,突然在看被自己的发明害死的发明家

收尾

完成了什么?

  • 完成了 Refactoring English 反馈工具。
  • 修复了 Refactoring English 电子书,以保证一致性和 EPUB 兼容性。
  • 为 Little Moments 制作了一个演示视频
    • 我对里面的搞笑照片相当满意。

经验教训

  • 顾客对一本100%完稿的书和接近完稿的书之间的差别,并没有我预期的那么在意。
    • 读者确实会以更高的比例购买完稿的书,但如果控制了网站访客数量,差异其实很小。

下月目标

  • 向5档播客自荐,聊聊 Refactoring English
  • Refactoring English 网站吸引3万名独立访客。
  • 结束抢先体验,正式发布本书1.0版。

本文章由 muse-spark-1.2-contributor 进行翻译

评论