如何提升 “开发体验”

很多 web 前端开发者们 把自己定位成了 “用户体验工程师”,

这是因为前后端岗位的划分,使得软件架构分成了两个部分:界面 和 逻辑。


逻辑 关注的是,软件系统如何提供功能。

界面 关注的是,“人” 如何使用 “软件系统” 提供的功能。


前端开发的工作,大部分都是跟 “界面” 相关的,但并仅不限于 图形用户界面(GUI)。

命令行(CLI) 和 应用程序接口(API),等等,也是界面。


GUI 对于普通老百姓而言,使用成本更低,以后没准还会出现 AR/VR 界面。

但如果用户是 开发者 的话,CLI/API 也许是更好的选择。


本文就分析一下,面向开发者提供的软件服务,有哪些容易遗漏的体验优化点。

CLI/API

开发者 跟 普通老百姓 的 用户画像 是不一样的,

开发者会写代码,而老百姓则不一定。

所以,图形界面(GUI)的方式 也许 不是最优解。


开发者可以敲几行代码 调用 某个功能,而不必在界面上用鼠标操作。

这种 “调用” 天生具有可组合性,并且管理 “代码” 正是开发者们所擅长的。


很多优秀的开源 web 系统,除了 GUI 之外,还包含了不少 CLI,

比如,gitlab/gerrit/jenkins 等等。


我们在做一个软件系统的时候,优先从 CLI 入手,我觉得是一个好办法,

它可以避免我们把精力过早的聚焦在 图形界面 上。


A good system can't have a weak command language.

—— EPIGRAMS IN PROGRAMMING

IDE plugin

开发者们 日常打交道最多的工具就是 IDE 了,

要想提升 开发体验,应该抓住 IDE 这一常用的 “用户端”。


很多 IDE/编辑器 都具备扩展功能(plugin),

然而,编写常用编辑器的 扩展,却仍然不是主流的软件功能的提供方式。

常规的做法只是给软件系统包装一个 GUI 界面。


开发者们 要想使用软件功能,需要打开这个 GUI 界面才可以。

这就有了一种割裂感,

尤其是完成不同功能的时候,只能去各个系统 GUI 中跳来跳去。


IDE 插件可以很好的串联起这些功能,但前提是各个系统已具备了 CLI 调用方式。


GNU Emacs is a LISP operating system disguised as a text editor.

—— Emacs Stands For

浏览器插件

几年前我们做网络编程时候,经常区分 C/S 和 B/S 两种开发模式,

浏览器端开发 属于后者(B/S),但现在不怎么提及了。


大部分前端开发的工作,都受限于浏览器环境中,不会考虑对浏览器本身做点什么。


今年九月份,Browser Market Share Worldwide 有份报告指出,

Chrome 市场占有率已经达到了 64%。


不像 C 端浏览器那样发散,开发环境中的浏览器,是更可控的。

所以,我们可以假设 开发者们 使用了一致的 Chrome 与系统进行交互。

这样一来 Chrome 插件能起到的作用,就不容忽视了。


不像浏览器环境那样,Chrome 插件完全是 C/S 模式下对 Client 进行扩展。

它有多种多样的办法与本地进程通信,这就大大扩充了站点的能力范围。

结语

以上我们的分析思路 是挖掘所有针对 开发者 友好的 “端” 上场景。

开发者们日常接触到的 “端” 是与老百姓不同的,

甚至跟普通公司内部的 其他用户 也是不同的。


GUI(常规的图形界面端),CLI/API(terminal 端),

IDE plugin(开发工具端),浏览器插件(Chrome 端),

这些端共同形成了一个整体 —— 开发者界面。


因此,不同的 “端” 上应用,只是 “开发者界面” 的具体形态罢了。

合理的打通各端,可以极大的加强软件系统的可交互性。


未来 移动办公/物联网 也会兴起,这就意味着新 “端” 出现。

比如我们完全可以在 移动端 处理审批,用 手环/手表 接到系统的反馈。


随着开发者人数越来越多,开发体验 能带来的价值会越来越大。

按十小时工作制来算,每人每天节省一小时,就能省出 10% 的人力成本。


技亦灵怪矣哉。