我的“问问毛选”小程序发布快一个月了。由于前段时间插入了许多其他事情,之前计划的迭代尚未完成。上周我开始陆陆续续恢复工作,并计划首先优化卡片的排版效果。
下面这张图就是其中一张卡片的原始排版效果。别说是用户,我自己看到都觉得有点丑。因为这个问题解决起来略微麻烦,我当时想着先快速上线,后面再迭代优化。

上周,我正式开始研究这个问题。虽然还没有最终搞定,但已经摸索出了大致的思路。 计划在接下来的一两周内,将其优化完成并上线,以提升大家的体验。
我在之前的文章中提到过重读《实践论》的收获。而这周在着手处理排版问题时,我又获得了一些更感性的体会。
我并非设计科班出身,让我直接去干排版设计的活,我完全不知道该从何下手。例如,字号、间距等参数应该如何定义?同时,小程序中的语录内容,字数最少的只有4字,最多的目前达到了81字。如果全部使用统一的字号,效果必然不理想。因此,我一度感到无从下手。
第一阶段:一头雾水的摸索
依照过去的经验,我查阅了许多关于排版设计的文章,特别是针对内容卡片设计的。这些文章会介绍字号如何选择,行间距、字间距怎样设置比较合理。看完后,我觉得自己“懂了”。然而,当我关掉电脑上的文章,回到自己的实际开发工作中,准备动手设计时,却发现 “道理我都懂,但还是不知道如何具体设计”。
第二阶段:在实践中寻找规律
这时候该怎么办?我其实感觉已经陷入了僵局,好像这个问题难以解决。就在带着问题准备入睡时,我突然灵光一现,想到了一个办法:既然小程序每张抽卡结果页的画布大小是固定的,那我是不是可以在设计软件(如稿定设计)中创建一个同样大小的画布,动手尝试布局,找找感觉呢?
到了第二天,我花了几个小时去实践。我以10字为一个分段,规定对应的字号。例如,少于10字用60号大小,11-20字用48号。然后,再去试验什么样的字间距、行间距比较合适。我一一去试,大概试了两三句后,慢慢就找到了感觉,并且意识到还需要考虑对齐方式等问题。
比如说“星星之火,可以燎原”这句话。如果我用左对齐去处理,视觉效果就很别扭,看着难受。因为它的上下两行字数完全一样,所以需要采用居中对齐。


但是,另一种情况是,大部分内容其实都是长段文字,并不具备这种对称性。如果也强行居中对齐,反而会显得难看。在尝试了十几句不同长度的文本后,我大致摸索出了规律,并初步定下了字号的规范。
第三阶段:从理想方案到现实落地
经过第二阶段的摸索,我有了一个看起来比较理想的方案。接着,我带着这套方案,让AI帮我修改排版的算法代码,进入实战检验阶段。
结果一检验,又发现了一堆新问题。AI修改的代码不太对,实际渲染效果和我预想的不一样。我之前的规划是在理想状态下进行的,但在真实的小程序环境里,还会受到微信方面的一些限制。此外,AI写出的代码存在Bug,偶尔会出现一行只有一个字的尴尬情况。
这时候,我又必须继续调整方案,做好各种适配,并修复Bug。这部分工作目前还没有完全搞定,我会在接下来两周继续抽空完成优化。
总结:从排版优化领悟《实践论》
在整个实践过程中,我联想到这与《实践论》的核心思想非常相似。一开始,我并不知道如何解决问题,于是就去行动——实践是认识的来源。但我最初只是看了很多二手的间接经验(那些设计文章),这就好比 “看了很多道理,依然过不好这一生”。真正开始动手做的时候,依然一头雾水。
所以,我必须继续实践。在亲手尝试和调整中,逐步获得了真实的“手感”和认识。而当我把初步认识形成的“理想方案”投入到新的实践(编码实现)中时,又发现了理想与现实的差距。这时,又需要基于新的实践反馈去调整认识。这正是一个否定之否定的过程:先有实践,产生认识;再用新的认识指导实践;实践又修正认识……如此循环往复,直至最终解决问题。
这就是我在小程序排版优化实践中体会到的《实践论》思想。我的理解不一定完全正确,但这个过程本身非常有意思。它本身就是在“实践中学习《实践论》”的一环。我们的认识总是相对的,不存在放之四海而皆准的绝对真理。
如果你对这类将理论思考融入具体开发实践的过程感兴趣,欢迎来 云栈社区 交流探讨,那里有更多开发者分享他们的实战心得与成长故事。