Refactoring English: Month 19

Michael Lynch

Refactoring English(《重構英文》):第 19 個月

一句話摘要

大家會為了已完稿的書付更多錢嗎?

本月亮點

  • 《重構英文》迎來銷售第二高的月份。
  • 我檢視銷售數據,觀察大家是否更傾向購買已完稿的書,而非接近完稿的草稿。
  • 我完成了書籍回饋工具。
  • 我正在嘗試一款新的時間追蹤工具。

目標成績

每個月月初,我都會訂下想完成的目標。以下是本月目標的達成情況:

至少投入五小時改善《重構英文》網站

  • 結果:花了約三小時改善網站
  • 評分:B-

網站有稍微改善,但仍需要更多打磨。

吸引 3 萬名獨立讀者造訪《重構英文》網站

  • 結果:獲得 1.75 萬名獨立讀者。
  • 評分:B-

我把設計文件那一章改寫成一篇免費試閱內容。這篇文章在 LobstersReddit 上反應不錯,但在 Hacker News 上卻乏人問津。

設計文件那一章獲得的正面回響讓我有點意外。一般來說,當我和開發者談到設計文件時,他們主要的反應都是討厭設計文件、討厭與它相關的一切。而這篇文章底下的留言卻令人耳目一新,大家普遍支持設計文件,也肯定我的建議。

完成讀者回饋工具

  • 結果:工具已上線並運作中。
  • 評分:A

我一度卡在AI 大封鎖上,但後來透過更審慎地拆解大型功能、也不再過度執著於程式碼品質,總算克服了難關。在這種情況下,完成比完美更重要。

《重構英文》數據指標

指標2026 年 5 月2026 年 6 月變化
不重複訪客1,75217,523+15,771 (+900%)
預購收入$407.61$1,441.86+$1,034.25 (+254%)

6 月是自最初群眾募資啟動以來,書籍收入最高的月份。訪客人數增加是因為我那篇關於設計文件的試閱內容

最後 8% 究竟差多少?

過去幾個月,《重構英文》網站在搶先體驗階段一直將這本書標示為接近完稿。我很好奇,從接近完稿到完全完稿,銷售會受到什麼影響,因此查看了每週銷售數據:

把書標示為已完稿,對每週銷售似乎沒有明顯影響,但如果改看每日平均呢?

好吧,在我把書標示為已完稿後,確實有小幅成長。

我也很好奇,完成書籍後,美國讀者是否以更高的比例購買。每次有人購買,我都會收到電子郵件通知,感覺上似乎有更多訂單來自以美國價格付款的顧客,但我沒有仔細量化過。我查了數據來確認是否真的如此:

有趣的是,完成書籍對使用分區定價購買的顧客沒有影響,但以美元付款的顧客,在書籍完稿後的三週內,購買比例高出了 20%。

我沒有納入發表最新試閱內容之後的銷售數據,因為那顯然會大幅改變數字,所以我把它當作獨立的類別來處理:

但這樣的數據多少有點偏差,因為美國人占我讀者的大多數。如果改以每位訪客的平均收入來標準化呢?

哦,結果完全反過來了。以每位訪客標準化後,故事就翻轉了。現在看起來,美國讀者購買完稿與未完稿書籍的比例其實差不多。反而是美國以外的讀者,在書籍完稿後,每位訪客的平均消費高出約 20%。

我還不確定該如何運用這些資訊,但確實滿足了我的好奇心。

讀者正在書籍應用程式中留下實用的回饋

過去我曾請讀者針對書籍提供回饋,有些讀者給了很熱情的回應,但那只是少數。我想,做一個網頁版的回饋應用程式,讓讀者在閱讀時可以直接留下筆記,應該會很有趣也很有幫助。原本以為一、兩週就能搞定。結果,短短的……兩個月後,我才終於把它完成上線!

書籍回饋工具的示範:讀者可以直接在書中留下回饋,而我可以回覆。

我的回饋工具才上線幾天,但似乎確實鼓勵了更多讀者提供回饋。有一位剛讀完整本書的讀者提到,回饋應用程式是他最喜歡的體驗之一,這讓人很開心。

睽違 15 年,再次使用時間追蹤工具

大約每年一次,我都會問自己:我的時間都跑去哪了?每當我專注在某個專案上,卻發現進度不如預期時,就會冒出這個問題。以下是這些年來我幾次問自己的紀錄:

這次我想:「或許我該用個時間追蹤工具。」

大約 15 年前,我曾試過一款叫做 RescueTime 的時間追蹤工具。我覺得不太實用,但想說或許可以持續用幾週看看。後來我意識到,我竟然讓一家陌生的公司蒐集我螢幕上出現的每個視窗資料,就立刻把 RescueTime 移除了。

我當時希望有個開源版的 RescueTime,心想:「等等,應該已經有了吧。」還真的有。它叫做 ActivityWatch,開源且以隱私為優先。它會記錄你所有的視窗與瀏覽活動,但所有資料都保留在你的本機上。

問題是,ActivityWatch 的精緻度遠不如 RescueTime。我完全看不懂它的時間軸到底想呈現什麼:

我看不懂 ActivityWatch 官方網頁介面中的時間軸。

照理說,你要設定規則來告訴 ActivityWatch 如何分類你的活動,但我也覺得那個介面很難用:

我覺得 ActivityWatch 官方網頁介面中的分類功能很難使用。

我差點就要放棄 ActivityWatch,接著又想:「算了,資料蒐集的部分應該是正常的。如果我自己 vibecode 一個前端介面呢?」

所以,我就這麼做了,而且還算簡單。我先從命令列工具開始,但計畫將它擴充成網頁應用程式。

要使用我自製的 ActivityWatch 前端,我會建立一個設定檔,根據應用程式名稱、視窗標題與/或網址來分類活動:

- 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%

到目前為止,數據還滿有意思的,但最大的挑戰是很難自動分類我所有的活動。舉例來說,我可以為瀏覽 Wikipedia 新增一個分類,但我到底是為了書籍在做正當的研究?還是只是不小心掉進兔子洞,突然開始讀起被自己的發明害死的發明家列表?

總結

完成了什麼?

  • 完成了《重構英文》回饋工具。
  • 修正了《重構英文》電子書,以確保內容一致性並相容於 EPUB。
  • 為 Little Moments 製作了一支示範影片
    • 我對裡面那些搞笑的照片相當自豪。

經驗與收穫

  • 顧客對 100% 完稿與接近完稿的書籍差異,並沒有我想像中那麼在意。
    • 讀者確實會以更高的比例購買已完稿的書,但若以網站訪客人數來校正,影響其實相當小。

下個月的目標

  • 向 5 個 Podcast 節目提案,談談《重構英文》。
  • 吸引 3 萬名獨立讀者造訪《重構英文》網站。
  • 結束搶先體驗,並宣布書籍正式推出 1.0 版。

原文由 Michael Lynch 發布

本文章由 muse-spark-1.2-contributor 進行翻譯