Skip to content

冰雪之道

本文仿照 Zen of Python 一文,用简洁精炼的语言概括冰雪拼音系列方案设计中的指导原则。


音码优于形码。

语言是第一性存在,文字是第二性存在。语言和文字都能用于表达,但文字的冗余比语言多。因此在同等元素数量和复杂度的情况下,字音元素的离散力通常优于字形元素。因此,输入方案应该尽可能充分地利用音码,尽可能少用形码。

变长优于定长。

在语言中,常用的词占少数,不常用的词占多数。与传统的定长方案相比,变长方案(包括顶功方案和非定长前缀码方案)能在给高频词安排短编码的情况下,低频词使用更长的编码来增加空间,在码长-重码率的权衡中占得先机。

有序优于乱序。

安排字音和字形元素时,尽可能找到一定的规律,来减少记忆难度、避免遗忘。为了性能考虑而无法做到全盘有序时,应该考虑怎样乱序最有性价比。根据二八定律,少数元素贡献了多数频率,因此少量乱序相比全盘乱序的性价比更高。

一种规则优于多种规则,

全码应该是唯一的,不要加很多容错。简码的设置最好是单一路径,不要搞多种不同的规则简码。这同样适用于元素的安排,能用一种规则来安排键位就不要用多种。

多种规则优于没有规则。

如果实在要搞多种规则简码,那也比无理码好。这同样适用于元素的安排,能用多种规则来安排键位就不要全乱序。

首先要有目标,

输入方案已经汗牛充栋,我的方案超越前人的地方在哪里?没有想好目标,就不要动手做。

然后多个目标之间要有轻重缓急。

多个目标里面,哪个权重高,哪个权重低?两个目标之间的边际替代率是多少(你愿意用多少 x 来换多少 y)?

易学性也应该是目标之一,

简化、简化、再简化。在重要目标的实现之外就不要增加其他导致难度上升的设计。因为每增加一点难度,就会损失一批潜在的用户。

但是易学性不能以折损更重要的目标为代价。

脱离目标来谈易学就没有意义了,因为全拼最易学。

永远追求帕累托改进。

一个方案能不能既易学又高性能?能不能既码长低又重码少?改变我的设计,挑战我的极限,在两个或多个维度同时提升。

永远保持开放,永远探索输入方案的边界。

敢于质疑现有方案的合理性,不断尝试新的结构、规则、取码、布局方式。不在小数点后几位卷性能,而是创造全新的输入体验。

采用 VitePress 构建