在做设计语言和组件库时,有一个基本原则是,少即是多(less is more),用尽可能少的样式来实现设计目标,例如按钮提供三种尺寸即可,在适应不同场景需求的同时保证体验的一致性;另一方面,保持克制的设计规范可以进一步减少设计师的决策时间,提高设计效率。
1软件危机。
在介绍设计规范之前,我想先讲一下因特网历史上的一个真实事件——软件危机。
在19世纪80年代,软件的复杂性进一步提高,大型软件甚至可以由几百万行代码组成,涉及到数百个程序员,抽象语言解放了程序员的生产力和想象力,人们可以像写文学小说那样随意地编写代码。我们需要解决的问题是如何有效和可靠地维护如此庞大的软件。后来,我们熟悉的面向对象编程语言,如C++,Java诞生了。
这种模式的一个重要特点就是面向对象的封装。正如你在编写王者荣耀代码时,小兵是出现频率较高的模块,你可以将王者荣耀中的一小兵预先封装成一段代码,当你需要它时,不必重新写一行,只需将其全部调用即可。
综观软件业的发展历史,1960年代的第一次软件危机创造了“模块”的概念;20世纪80年代第二次软件危机引发了“面向对象编程”,创造了“对象”的概念;模块和对象本质上都是对软件进行拆分和封装,而对象的粒度更大,维度更高。它和原子设计的原则一致,从颜色文字等基本元素,到按钮、选择器等基本组件,再到典型模块,也是对大型软件设计元素进行不同粒度的分割和封装。
2.设计规格的好处。
在设计层次上:解决用户体验的一致性,降低设计成本,提高设计效率,使设计者能够迅速接受新的需求。为设计积累经验,使设计能够更持续地输出价值,减少一次设计,同时解放设计者的风格,站在更高的层次考虑商业和经验。
发展层次:按照设计规范,形成研发资产,避免重复制造轮子,保证代码质量,降低维护和扩展成本。
测验层次:避免无意义的重复走查。在此之前曾遇到对深色模式的要求,虽然只是更换了颜色,但测试还是将所有部件都测试了一遍,再加上重复的设计,开发量,导致原本很简单的需求,竟然要12个人天的工作量。
生产层次:提高产品迭代和优化效率,减少试错成本。
合作层次:减少不同设计师之间以及设计师和开发工程师之间的沟通成本。
为什麽要设计说明书?
这时会有小伙伴问,现在市场上已经有很多的第三方设计规范了,比如antdesign、element,有必要自己重复做一次吗?这个问题的回答是必须的。理由如下:
B端本身的业务性决定了市场上没有通用的设计规范,而那些设计规范的部件也不能完全满足我们的产品需求。另一方面采用了封装好的第三方规范,在此基础上进行修改,效率很低,适配复杂度与开发有一定差距。
每个人都在使用第三方设计规范,产品同质化就不可避免。要避免这种情况,我们必须从设计语言开始,设计自己的规范。
对于大型工厂来说,成熟的组件库有什么用处?这本书应该作为一本词典,有不能的地方,可以去参考人家成熟的解决方案。