Design Failures
分享一些設計失敗的例子
Created Jun 28, 2024 - Last updated: Oct 14, 2024
Seeding 🌱
Dexie.js
Dexie.js是一個IndexedDB的ORM,IndexedDB則是在瀏覽器上運行的一種NoSQL資料庫,支援離線存取,比LocalStorage提供更大的容量及更高的效率。
但Dexie.js有個奇怪的問題,就是資料庫版本會比實際的大上10倍,例如說你要建立version 1的版本,在瀏覽器上會見到10,作者承認這是一個設計,屬於失敗的那種。
https://github.com/dexie/Dexie.js/issues/59
Joplin Garden Worker
這是個失敗的項目,沒有用戶並非主因,開源計劃的開始並不要考慮這點,加上本來就是受眾少的類型,失敗在於 — 我本人也覺得難用。
這項目的功用是把Joplin的筆記匯出成一個Hugo的網站(本站),理論上也能夠生成其他類型的文件,例如Github的wiki。
設計困難:
- 匯出的檔案名字並不能直接用筆記標題,因為筆記標題會改變
- Hugo要用到的參數比Joplin能提供的多,例如summary、catalog這類
解決:
- 建立一個metadata.yaml來記錄每筆Joplin筆記的匯出檔案名稱,以及各種額外的參數
- 部份參數由Joplin筆記中提取,部份人手修改,反而客制不同頁面變得困難
- filename: Papeaso Video Capture Card.md
folder: garden
id: b46bbd6270ac9af7c9439e3bf0d32178
title: Papeaso Video Capture Card
使用流程
- Joplin -> metadata.yaml -> Hugo Source -> HTML Site
指令
# Edit note in Joplin , set slug and summary
jgw update # update metadata.yaml
# Edit metadata.yaml change parameters
jgw export # export to hugo
hugo # build html
cp * SOMEWHERE/benlau.github.io # copy html to github
cd SOMEWHERE/benlau.github.io
git add .
git commit -m "Log"
git push
這過程有夠麻煩的,其中有半年沒有更新,我就把整個流程都忘得一乾二淨。