2

设计模式 | 宏 Macros:如何让用户快捷完成自定义操作?

 2 years ago
source link: https://zhuanlan.zhihu.com/p/455406158
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

本文是《设计模式周周看·Ant Design 为你讲透设计模式》周刊的第二十三期内容,上期为你介绍了交互操作的一种设计模式历史记录,本期介绍另一种交互操作的模式:宏。

What 是什么

简介 :「宏」是一种创建指令集来减少用户交互操作的设计模式。用户可以通过记录或把一系列操作放在一起来创建一个宏以供复用。指令集在集合里包含了其他一些小的操作,往往可以节省大量时间,提高工作流程效率。

例子: macOS 的快捷指令,就运用了宏这种模式。用户可以录制自己的快捷指令,高效地完成复杂任务流程。

v2-3ddfaae876b3a6587d3caf3db83aabbf_720w.jpg

Why 为什么

没有人想要一次又一次地重复执行同样一组交互式的任务。这正是计算机应该擅长的。用户的行为模式其中有一个叫做简化重复工作(Streamlined Repetition),宏就是可以为它提供很好的支持机制。

显然,使用宏命令可以帮助用户加快工作。而且,通过减少命令个数和需要进行的动作来完成某项任务,他们也减少了可能的手指滑动、疏忽和遗漏,以及类似的错误。

当用户可以把一长串操作压缩到一个命令或一个快捷键的时候,也会增强心流体验 —— 用户可以在更短的时间内,花更少的精力来完成更多的工作,而且可以一直保持更高层的目标而不会陷入各种细节中。

When 什么时候使用

用户想重复一长串操作或命令。他们可能想要把这些操作或命令重复作用在文件列表,数据库记录或其他对象上,例如对每个对象进行相同的操作。

How 如何使用

任何时候,为用户提供某种方式来“记录”一系列操作,并且可以随时很容易地 “回放” 它们,而且在操作上需要像一个简单命令、一个按钮或一次拖拽一样简单。

用户应该能够按自己的需求命名宏,这样用户就可以用按自己的认知理解这个操作序列。用户可以检查自己所做的工作,或者重新查看一个已经忘记的操作列表来看它到底做了些什么(和命令历史模式里一样)。让一个宏可以引用另一个宏,这样的话,它们可以建立在其他宏的基础之上。

用户肯定会想保存这些宏,以备下次使用,因此确认它们是持久的被保存到文件或数据库中。把它们显示在一个可以搜索、排序甚至分类的列表里,具体呈现方式按用户的需要而定。

宏本身可以回放,来让操作更简单;或者如果它作用在某个对象上,而这个对象可以从一种调用方式转换到另一种调用方式,那么你可以允许这些操作带参数(例如,使用一个占位符或者变量而不只是一个对象本身)。宏也应该能一次作用在多个对象上。

这些宏的名字(或者调用它们的控件)如何展示基本上取决于该应用程序的本质,考虑以“内建”的操作来显示它们而不是使其处于次要地位。

记录这些操作顺序的能力,再加上宏与宏彼此引用的能力,可以让用户有机会发明一些全新的语言化或可视化的语法 —— 一种很好地协调他们自己工作环境和工作习惯的语法。这是一种非常强大的能力。事实上,这就是编程,但是,如果你的用户并不认为他们自己是程序员,那么不要把它叫做编程,否则你会把他们吓走(“我根本就不会编程,我没法完成这样的工作”)。

Example 案例

Photoshop CC

Adobe Photoshop CC 中具有广泛的宏功能应用。主要功能是创建或记录复杂的多步图像编辑和转换命令。这在 Photoshop 中叫做“动作”。通过自动化和复用,使用“动作”显著加速了图像工作流。以下示例中,在左侧,选中了一个名为“综合色调(Sepia Toning)”的动作来显示该动作中依次发生的多个嵌套步骤。在右侧,动作菜单显示了录制、编辑和微调复杂的多步骤动作的选项。

Photoshop中的批处理菜单和对话框。这是另一个宏生成器。这些是用户创建的工作流脚本,用于指导Photoshop从一个位置打开图像,应用保存的操作,并将具有指定命名的图像保存在另一个位置。这甚至节省了更多的时间,因为用户不需要手动打开每个图像来应用动作宏。通过这种方式,用户可以快速、自动地处理大量文件,节省大量的人工劳动。

IFTTT

现在,可以将不同的Web应用程序,服务和平台集成在一起并编写脚本,就像它们是一个应用程序一样。 IFTTT是用于实现此操作的Web应用程序。拥有API访问权限并与IFTTT平台集成的第三方软件公司可供使用。给定的客户可以提供他们对IFTTT的第三方登录,并开始用宏连接他们不同的网络应用程序,(在IFTTT中称为“recipes”),以完成工作。

以下是IFTTT recipes可以执行的一些示例:

  • 在所有社交媒体帐户中同步个人资料照片
  • 自动将图像文件从社交媒体备份到云存储帐户
  • 根据您的手机打开/关闭家庭自动化设备
  • 将社交媒体帖子保存到云电子表格
  • 将健身数据从设备保存到云电子表格

IFTTT recipes 是通过向在线帐户提供登录凭据,然后使用 IFTTT 网络应用程序构建简单的宏来构建的。

屏幕中短语 “ 如果[ Twitter ] 那么 [ + ]”是一个正在被创造的宏。第一部分准备就绪。此帐户已与其 Twitter 帐户集成。选择 Twitter 图标将打开另一个屏幕,用于为宏配置Twitter驱动的触发器。下一步是配置 “那么” 步骤。例如,将每条推文记录到 Google 电子表格中。这些是 IFTTT 或其他集成 Internet 服务应执行的操作。这些宏允许集成未连接的网络应用和服务的定制自动化业务流程。

Microsoft Excel

Microsoft Excel 允许对宏进行记录,命名,与文档一起存储,甚至配有快捷键。 在本例中,用户可以录制一个宏,然后在编程环境中进行编辑 (Excel中包含一个轻量级的Visual Basic编辑器)。用户记录宏来处理数据和操作电子表格。可以对其进行编辑和保存以供重复使用。

如果你正在开发一个真正可编写脚本的应用程序,那么从 Excel 中得到的教训就是要考虑这样的宏是如何被滥用的。考虑对通过宏可以完成的操作施加约束。

你可以在下方查看「 」更多的案例:

注:本模式来源《Designing Interfaces》,案例由 Ant Design 团队收集整理,如有侵权请联系删除。


2021 年期 Ant Design 设计周刊《设计模式周周看——Ant Design 为你讲透设计模式》,是由 Ant Design 的设计师编写的设计方法内容。欢迎大家关注@AnT Designer及 Ant Design 专栏,获取第一时间更新:

我们怀着满腔热情,希望可以将这份周刊作为交互体验教案级别的内容呈现给大家,也欢迎大家向我们提出宝贵意见。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK