我认识的大多数硬核C++程序员,都讨厌写用户界面。这让我很意外,因为我一直觉得,UI编程这件事,本质上是容易、直接,而且充满乐趣的。
说它容易,是因为这里通常用不到什么高深的算法,顶多也就是把一个矩形居中放在另一个矩形里。说它直接,是因为一旦写错了,你马上就能看到,立刻就能改。说它有乐趣,是因为工作的成果是即时可见的。那种感觉,就像是你直接在雕塑一个程序。
我觉得,多数程序员对UI编程的恐惧,其实源于他们对UI设计的恐惧。在他们看来,UI设计就像图形设计一样,是一个神秘的过程。那是由一群喝着拿铁、穿一身黑、身上打着各种酷炫穿孔的创意人士,才能搞出来的艺术玩意儿。而程序员呢,自认为是分析型的逻辑思考者:强于推理,弱于艺术判断。于是,他们就认定自己做不了UI设计。
但事实上,我发现UI设计这件事,相当简单,也相当理性。它不是什么神秘莫测的东西,不需要你有艺术学院的文凭,也不需要你对霓虹紫色的头发有特殊偏好。思考用户界面,是有一套理性方法的。只要能遵循一些简单、合乎逻辑的规则,你就能在任何地方,改善你手上那个程序的界面。
我接下来要讲的,不是什么“禅与UI设计艺术”。它不是艺术,也不是佛学,它就是一套规则,一种理性而有条理的思考方式。这本书是写给程序员看的。我想,你不需要我来教你怎么做一个菜单栏。你真正需要想的,是菜单栏里到底该放点什么——或者,到底要不要有菜单栏。我会教你一条首要的原则,它指引着所有优秀的UI设计,而且,它一点都不难理解。
我的第一份正式工作,是在一家大型工业化面包厂里。按照设计,这个面包厂要有六条面包生产线。每两条生产线,配备一台和面机。和面机能做出180公斤重的面团,然后可以倒向左边或者右边的生产线。
只不过,这是纸面上的设计。在现实中,C号搅拌机还没造好呢,3号线和5号线也压根不存在。所以实际的布局是这样的:
警惕的读者肯定会问了:那面团是怎么从B号搅拌机跑到6号生产线上去的呢?这正是“小乔”我闪亮登场的地方。我的工作——不知你信不信——就是站在B号搅拌机的左边,当那180公斤重的巨型面团从搅拌机里飞出来,掉进一个带轮子的大澡盆时,我得接住它。然后,我推着这个大澡盆,一路滚到6号生产线。接着,用一种类似绞盘的东西,把这坨面团硬生生抬上6号线。每十分钟我就要这么干一次,从晚上10点一直干到凌晨4点。
麻烦事还不少。6号线根本没法一次性吞下180公斤的面团,所以我得拿一把巨大的刀,把它切成大概10份。我甚至都不想说,那活儿有多荒唐,有多难。
在刚开始那几天里,我反复思考着另一个问题:为什么我的工作这么费劲?答案很简单,就是设计本身一团糟。一个好的设计,面团从搅拌机出来,应该靠重力直接掉进生产线。但现状是,一个不存在的规划,逼着我这个活人,去充当了那个缺失的链条。
这恰恰就是UI设计的底层逻辑。如果软件的界面逼着用户去干一些笨拙、多余的事,就像我推着澡盆满车间跑一样,那么这个设计就是糟糕的。而好设计的规矩很简单:别让用户去当那个搬运工。让机器去适应机器,让人去干人该干的。这是一个彻头彻尾的、可以用逻辑推导出来的结论,跟艺术品味完全没有关系。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.