程序员副业可用的四大原则

ops/2024/10/21 9:46:34/

界面设计对于许多尝试独立开发完整产品的程序员来说,可能是一个令人头疼的问题。很多时候,如果我们向设计师询问,很多人虽然擅长设计,但可能无法解释背后的原理。他们只会说,“这样做感觉更好一些”,“这就是经验/灵感”。

我以前也是这样认为的,直到我读了一本书,才明白原来界面设计背后是有规则可循的。

界面的表层结构正是其内部逻辑的反映。

一个界面上应该放置哪些控件,哪些应该放得近,哪些应该远离,哪些应该采用相同的风格,哪些又应该有区别,这些都源自于它们背后的严谨的逻辑关系,而不是设计师一时的心血来潮。

那本书就是《写给大家看的设计书》。在书中,作者提出了界面布局的四个基本原则,通过灵活运用这四个原则,我们就能将界面设计得既美观又大方。

这四个原则分别是「重复」,「对比」,「对齐」和「亲密性」。

「重复」原则强调的是「一致性」,它告诉我们「在逻辑上一致的元素,在视觉上也应该保持一致」。

「对比」原则强调的是「层次感」,它告诉我们「在逻辑上不同的元素,在视觉上也应该有所区分」。因此,我们需要设法突出这种差异。

「对齐」原则强调的是「稳定感」。均匀的留白能够营造出一种稳定的感觉。这正是产品质感的一种潜意识传递。虽然对齐看似是微小的细节,但如果处理不当,很容易破坏产品的整体质感,而且会给那些有强迫症的朋友带来巨大的压力。

「亲密性」原则,强调的是元素间的关系,它告诉我们「如果元素在逻辑上有着紧密的联系,那么这种关系也应该在视觉上得到体现」。相关的项应该彼此靠近,不相关的项应该远离。

书中有非常详细的介绍和让人恍然大悟的例子,我建议大家阅读原书。

四大原则回答了许多常见的界面设计问题。例如,在上面的图中,白色方块之间的间距为什么不能比第一个方块与页面边界的距离大呢?

如果我们仅从感性的角度来解释,可能会说“这样放置看起来不好看”。但是,如果我们通过“亲密性”原则来分析,我们会发现在逻辑上,相对于页面边框,白色方块应该被视为一个整体。

一个白色方块与其他方块的关系,显然比它与页面边框的关系更近。因此,这种深层的逻辑关系在视觉上的表现,就是它们之间边距的差异。

如果视觉表现和逻辑关系不一致,我们就会感到“不协调”、“不直观”。这些原则为我们理解设计的逻辑打开了一扇门,使得那些曾经只依赖于“感觉”和“经验”的设计技巧变得有规则可循。

熟悉这些原则后,只需多加练习,再加上一些简洁、清新风格的设计细节,我们就能在大多数情况下制作出七到八十分的界面。


http://www.ppmy.cn/ops/28731.html

相关文章

发电厂智能巡检机器人:让发电厂更安全、更高效

在发电厂的众多应用场景中,升压站、化学车间、空冷塔、输煤皮带、综合管廊等,一直以来都是人工巡检的主战场。然而,这些场所环境极为复杂,人工巡检面临着诸多难题,强度大、频率低、间隔长等问题突出。这使得设备在运行…

【网络原理】UDP协议 | UDP报文格式 | 校验和 | UDP的特点 | 应用层的自定义格式

文章目录 一、UDP协议1.UDP的传输流程发送方接收方 2.UDP协议报文格式:长度受限校验和如何校验:CRC算法:循环冗余算法md5算法: 2.UDP的特点 二、开发中常见的自定义格式1.xml(古老)2.json(最流行…

State.initState() must be a void method without an `async` keyword错误解析

文章目录 报错问题报错的代码 错误原因解决方法解析 另外的方法 报错问题 State.initState() must be a void method without an async keyword如下图: 报错的代码 报错的代码如下: overridevoid initState() async{super.initState();await getConf…

【计算机毕业设计】基于SSM++jsp的社区管理与服务系统【源码+lw+部署文档+讲解】

目录 摘 要 Abstract 第一章 绪论 第二章 系统关键技术 第三章 系统分析 3.1.1技术可行性 3.1.2经济可行性 3.1.3运行可行性 3.1.4法律可行性 3.4.1注册流程 3.4.2登录流程 3.4.3活动报名流程 第四章 系统设计 4.3.1登录模块顺序图 4.3.2添加信息模块顺序图 4.4.1 数据库E-…

【经典算法】LeetCode 108. 将有序数组转换为二叉搜索树(Java/C/Python3/Go实现含注释说明,Easy)

目录 题目描述思路及实现方式一:递归中值法思路代码实现Java版本C语言版本Python3版本Golang版本 复杂度分析 方式二:迭代法思路代码实现Java实现Python实现C实现Go版本 复杂度分析总结 总结相似题目 标签(题目类型):树,二叉搜索树…

蓝桥杯练习系统(算法训练)ALGO-953 混合积

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 众所周知,人人都在学习线性代数,既然都学过,那么解决本题应该很方便。   宇宙大战中&…

十大排序算法之——冒泡排序算法(Java实现)及思路讲解

冒泡排序是一种简单的排序算法,通过重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的…

机器学习之K-medians聚类

K-medians聚类是一种聚类算法,类似于K-means,但是它使用中位数来确定簇的中心,而不是平均值。这种方法在处理数据中存在离群值或异常值时比较有用,因为中位数对离群值不敏感。K-medians的步骤与K-means类似,但在每次迭代中,它使用中位数来更新簇的中心。 K-medians的算法…