开发者体验:易用性设计
定义:易用性是一种以使用者为中心的设计概念,易用性设计的重点在于让产品的设计能够符合使用者的习惯与需求。以互联网网站的设计为例,希望让使用者在浏览的过程中不会产生压力或感到挫折,并能让使用者在使用网站功能时,能用最少的努力发挥最大的效能。
目录
PS:请注意,这里的易用性设计是在开发者体验背景下,因此与用户体验中的易用性设计存在一定的差异。
我们可以关注于,最少的努力发挥最大的效能。 对于开发者体验而言,它是围绕于开发人员使用技术产品的各个阶段(生命周期),来提升相关的体验,诸如于:一键安装、自服务搭建、版本自动迁移等。
易用性专家 Jakob Nielsen 与计算机科学教授 Ben Shneiderman 曾经分别讨论系统可接受度(acceptability)的框架,其中指出易用性是“有用”(usefulness)的一部分,而且包含下列元素:
- 可学习性 (Learnability)
- 效率 (Efficiency)
- 可记忆性(Memorability)
- 很少出现严重错误 (Errors)
- 满意度 (Satisfaction)
评估时,可以简化为:目标使用者感受到该操作界面的有效性(有达到目的)以及效率(使用时所需的工夫或时间)
易用性设计原则
在构建易用性时,它依赖于技术产品本身是满足功能性需求的。从模式上来说,它应该:
- 从开发者旅程出发。从生命周期进行考量,以
- 满足最小努力原则。
- 引导开发者学习。
从开发者旅程出发
全生命周期考量,诸如于:
- 评估。诸如于提供一个简单的同类产品分析
- 安装与应用。
- 文档与配置。
- 失败恢复。如何去处理失败场景
- 错误支持。
- 卸载软件体验。
采用一致性的设计
- 使用工业标准。如 API 能使用 OpenAPI 、RAML 来描述 API,并提供诸如于 Swagger 的交互式在线 API 文档。
- 不同接口/API 的对齐。
满足最少努力原则
最小努力原则(Principle of Least Effort)最小努力原则是指人们在解决任何一个问题时,总是力图把所有可能付出的平均工作最小化。
对于开发者来说,当他们想尝试一个东西时,如果能用最少的步骤完成对应的工作时。针对于不同需求的开发者、 不同知识水平的开发者们, 能设计一个度量模型,以用于:
- 度量开发者所需要的流程。
- 度量开发者在每一个流程上的时间。
基于这两个维度,来构建相关的模型。
引导开发者学习
如在开源项目中的 README 中,一般都会分为多个部分:
- 使用该项目的 Usage
- 搭建该项目的开发指南 Setup
- 为该项目贡献的 Contribute
而在文档中,则会包含更多的内容。
示例
Just
GitHub: https://github.com/casey/just
针对于操作系统、包管理工具、包名、安装命令。 从构建的层面来考虑,这是一个非常复杂的工作,它需要通过自动化来解决。 除此,对应的还有 Sublime Text 相关的语法支持。
安装命令:
curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to DEST
OpenSuSE
易用性设计模式
- 谁是使用者,他们知道什么,以及他们能够学习什么?
- 使用者想要/需要什么?
- 使用者一般具备什么背景?
- 使用者作业的环境
- 机器应该负责做什么?
使用 CLI,
模式:1-Click 安装
示例:OpenSuSE
Vim 示例:https://software.opensuse.org/package/vim
示例:Jetbrains IDE
Rust 插件:https://plugins.jetbrains.com/plugin/8182-rust
示例:VSCode
Rust 插件:https://marketplace.visualstudio.com/items?itemName=rust-lang.rust
模式:一行命令安装
示例:macOS 开发者与 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install wget
示例:应用安装 - 根据不同环境选择
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
不幸的是 Windows 用户暂时只能通过 rustup-init.exe
安装。
模式:自助式搭建
Spring Initializr 是 Pivotal Web 服务提供的基于 Web 的工具。借助 Spring Initializr, 我们可以轻松生成 Spring Boot Project 的结构。
试用地址:Spring Initializr,如下图所示:
模式:自动化版本迁移工具
示例:Angular 版本更新,只要执行:
ng update @angular/cli -- migrate-only production-by-default
相应的机制比较简单,参见:前端的自动化重构
模式:一键卸载
Homebrew 示例:
$ brew uninstall pandoc
Uninstalling /usr/local/Cellar/pandoc/2.14.2... (10 files, 130.5MB)
自动清理:
==> `brew cleanup` has not been run in the last 30 days, running now...
Removing: /usr/local/Cellar/bdw-gc/8.0.4_2... (69 files, 1.6MB)
Removing: /Users/phodal/Library/Caches/Homebrew/ca-certificates--2021-09-30... (114.6KB)
Removing: /Users/phodal/Library/Caches/Homebrew/dart--2.14.2.zip... (196.2MB)
Removing: /usr/local/Cellar/fribidi/1.0.10... (67 files, 669.2KB)
Removing: /usr/local/Cellar/gd/2.3.2... (35 files, 1.4MB)
Removing: /usr/local/Cellar/gd/2.3.3... (33 files, 1.4MB)
Removing: /usr/local/Cellar/gdbm/1.20... (24 files, 825.0KB)
Removing: /usr/local/Cellar/gdbm/1.21... (24 files, 903.2KB)
Removing: /usr/local/Cellar/gmp/6.2.1... (21 files, 3.3MB)
还可以手动清理:
$ brew autoremove
相关资料
相关文章: