Design
說實话,我早期的 beta 看起來像 DJ 控臺。到處都是旋钮。每條 route、每種模型變體、每個 debug 參數都有开關。那時候這很合理,因為我需要測試几百種組合才能找到可行方案。
但當我开始每天自己用它時,連我都會被這些开關打斷。
真正的目標
我做的所有事——model route、延迟設置、打磨選項——只有一個目的:給使用者 最順手的那個版本。不該让人手動調參,甚至不需要让人知道這些排列組合存在。
當你看到输出時心裡想“對,就是我要的那個意思”,這才是目標,也是唯一目標。
意識到這點後,我的設计原則變得很簡單:能藏就藏,能封裝就別打扰使用者。
構造者和使用者的認知落差
我不斷撞上的,是“構造者模式”和“使用者模式”之間的認知差。
構造者本能:給出完整遥控器。所有選項、所有設置,靈活性拉滿。
使用者現實:更順的體驗是內容直接出現在 feed 裡,不需要先換频道再搜索。
這让我重想了很多东西。你現在看到的版本?我刪了非常多。很多我曾经很骄傲的功能,後來都砍掉了。
真正有效的測試
我开始問自己两個問题,但不會立刻問。我會先等几天,让興奋感过去,然後再看:
- 它講得通吗?
- 我自己真的會長期用吗?
當答案變化時——而且经常變化——我會毫不犹豫地刪除。
關鍵在于:你沉浸在構建狀態時,几乎一切都看起來合理。但“做一個东西”和“用一個东西”是完全不同的视角,很難同時扮演两種人。你不可能上一秒還在 debug,下一秒就真诚地當一個不關心實現细節的使用者。
所以我給自己留了缓衝時間。這也是為什麼我们的开發周期比预期長。原型很早就有了,朋友也在測試,但我们一直在打磨、一直在問:它真的有用吗?我自己會長期用吗?
吃自己做的菜
开發期間,我把 Reso 當作自己工作的脚手架來用。只要連我這個作者都觉得哪裡別扭,那就是红旗。
我為什麼要把我自己都不想用的东西給別人?這就像給出你自己都不相信的建議。別人問你“你真的信這個吗?”,你說不信,那後面說再多都只是噪音。
你做完一個產品後,必須問一句:我真的相信它吗?
如果你相信,你會带著笃定去表達它;如果心裡其實別扭,你自己知道。
UI 也是表達
這種在“技術上可行”和“人性上自然”之間的拉扯,在我们做 Skills、Tones 這類功能時反复出現。我们一直在問:我们是在取悦自己,還是使用者真的需要它?
但好的一面是,UI 本身就是一種表達。我非常感激這個世界上的好作品,我也觉得 UI 是开發者表達“自己認為什麼是美”的窗口。
UI 沒有唯一“正確答案”。只有適不適合、順不順手、能不能給使用者安全感。
而這個標准會持續變化。我期待更多靈感、反饋和迭代。因為那個你几乎注意不到的 UI,往往才是被反复思考最多的 UI。
這不是行銷,是我們自己踩過的坑。