用户体验
作为互联网从业人员,经常会接触到“用户体验”这个词!
我们可能为了一个菜单该放在哪里而争论,或一边苦逼的编码一边骂着SB产品经理!
我们为别人考虑着“用户体验”,但是对自己一直在用的软件,为什么却这么将就呢?
软件=工具
作为软件开发人员,使用的软件不在少数,我们都称为工具。即为工具,我们好像就不那么纠结难不难用了!好像工具就应该比较难用才对!而实际上,我们为别人做的软件,对别人来说也是工具。我们为什么要为用户考虑这么多,为什么不为自己考虑考虑?
现在,我们从用户体验的角度重新审视下我们常用的工具!
简单
在做软件的时候,我们知道要把用户当作“白痴”来看待!要尽可能的把功能做简单,能一步完成的绝对不能分成两步。所以软件要做得足够的简单。但是简单并不代表功能上的简单,比如说Windows下的记事本,那叫简陋!对于工具型软件来说,“简单”有三个层面上的意思:
功能够用
软件功能应该也适用28原则,即在使用软件的大部分(80%,甚至更多)情况下,只会使用很少(20%,甚至更少)的功能。所以软件没必要太多的功能。只要有足够的核心功能即可。过多的功能只会增加软件的复杂度和学习成本。
一个很典型的例子就是Office。Office功能很强大,但是大家大部分情况下会用到它多少功能?有5%吗?而且,你会发现,你需要的功能消失在了它的菜单列表里了!
现在再看Word的工具栏,是什么感觉?
操作简单
在功能的基础上,软件还需要操作简单。工具是为了提高效率的,太复杂的操作会间接的降低效率。比如:你本来就是为了编辑点文本,但是得花半年甚至更多时间去学习编辑工具。等你学完了,黄花菜都凉了。(无意黑谁,只是提醒注意任务的主次!)
符合直觉
符合直觉就是说,当你刚接触一个软件的时候,可以靠猜或者随便点点就能掌握基本的功能!
典型的反面例子就是Vim!当一个完全没接触过Vim的人,打开Vim,三秒钟就懵逼了!怎么输入?怎么保存?怎么退出?目前我使用Vi的原因是Vi是Linux默认安装的文本编辑器!
有人会说,Vim的编辑效率很高,各种奇技淫巧!这点我承认,但是对我来说,然并卵,这个下面再提!
符合“简单”的工具,先推荐两个,Markdown和Pandoc!
Markdown三分钟入门
Markdown就是一个很简单的工具!
文件名以md结尾
语法 | 说明 |
---|---|
# title | 标题,一个#号代表一个级别 |
- text | 列表 |
1. text | 还是列表 |
[text](url) | 链接 |
![](img-url) | 图片 |
> text | 引用 |
*斜体* | 斜体 |
**粗体** | 粗体 |
``` | 代码 |
演示请见下面的gif!
Pandoc三十秒入门
Markdown负责内容,Pandoc则负责展示!Pandoc是个牛逼的格式转换工具!请至官网查看Pandoc支持的转换类型!(很多,这里不贴了~)
比如你想把Markdown转换成Word
pandoc source.md -o target.docx
那如果你想把Markdown转换成epub,html,你猜你该输什么命令呢?
跨平台/全平台
做前端的同学深有体会,各种浏览器兼容性问题!但是为了用户能在各个浏览器上看到一样的效果,还是忍了!
我们用的工具也一样。一般我们会在Windows或者Mac上开发,而部署都是在Linux上!所以我们当然希望能有工具既能在Windows上运行,也能在Mac和Linux上运行。当然功能和使用感受要完全相同。
比如,Notepad++,ULtraEdit,EditPlus,Office是在Windows上接受度比较高的编辑类软件,TextMate是Mac上很知名的编辑器。但是一出这个系统,你就用不了了,就得花时间再去学另一个软件,也是一种浪费!
颜值
好看这个东西,见仁见智!自己觉得好看就行了!比起意淫用户喜欢什么样的配色、布局、字体!自己喜欢什么样的配色、布局、字体,应该很简单吧?比如,我就比较偏爱暗色系的主题!当初NetBeans就是因为颜值太差,被我抛弃了~
现在来看Vim和Emacs,颜值也是比较差的。不过两者的定制化比较高,可以按自己的需求来配置。不过由于历史遗留问题,有些功能靠配置是没法解决的。比如说,现在编辑器里都默认自带的目录树和页签。Vim和Emacs都是模拟出来的,看起来很不协调!
有人可能觉得颜值不重要!你可以把下面的图片设为背景,干一天活试试~
速度
做网站另一个重点要考虑的问题就是速度。一般首页都是要优化到秒开的!对于工具来说,其实也有这个问题。比如说,你灵感突现,需要赶紧记下来,然后打开Word,Word刚打开,你忘了~
不限制/打断思考
不知道大家是如何定义自己的工作性质的?我很赞同《人件》里所说的,我们实际上是“非高科技脑力劳动者”!
既然是脑力劳动者,我们的主要工作是思考,手快没用,脑子快才是王道!(所以Vim输入再快都没用,你得脑子转得够快才行,手快只是辅助,帮助记录所想!)所以我们需要有工具能帮助我们思考!至少不能限制和打断我们的思考!
这也是我选择工具时很看重的一点!从这一点来看的话,其实很多软件都不合格!
集中吐槽
上面列出了几点需求,同时小吐槽了一下。这里集中吐槽几款工具!
Office
- 简单:
- 跨平台/全平台:
- 颜值:
- 速度:
- 不限制/打断思考:
从简单性来说,Office入门容易,精通难!Windows独有,其他平台都是第三方软件!颜值一般,速度一般!
最大的问题是很容易打断思考!大家可以回忆下,我们用Office写文档或者写PPT的时候,是怎么写的?这个地方字体是不是要加粗?该用几号字体?这个图片该放哪里?有多少是涉及到内容本身的?分分钟就跑偏的节奏!
eclipse
- 简单:
- 跨平台/全平台:
- 颜值:
- 速度:
- 不限制/打断思考:
eclipse在Java界是默认的IDE,我很早之前就抛弃了。现在看来,它的各种毛病都还在!
首先说简单,作为一个专业IDE,就已经和简单不挂钩了!全平台支持,这个值得表扬!没给五星,是因为在各个平台下的体验还是有些许的差异的!颜值在默认主题下还好,但是自定义主题就露馅了!
看工具栏的按钮,锯齿明显!
速度只能说,我等得花都谢了~
eclipse的主要问题也在打断思维上!
- Crash: 我最初使用eclipse的时候是3.0左右,时不时就crash!我想好思路想实现了,eclipse不见了~你说郁闷不郁闷?
- 快捷键:eclipse流行的一个原因就是它的插件机制。可能是太开放的原因,插件功能快捷键根本不统一!比如说:我编写Java,Ctrl-Shift-F是格式化!我编写JSP或者其他语言的时候,格式化快捷键就不是这个了!一个软件,我要学几套快捷键吗?
- 保存时编译:双刃剑,机器差一点,立马卡顿~
- 恶心的进度条:eclipse的很多操作都会出现进度条。有些进度条还好,在后台。有些进度条就直接弹出,还不让后台执行。每个进度条后面都有个终止按钮,但是没鸟用~你按了,按钮置灰,滚动条还在欢快的滚~
Java
- 简单:
- 跨平台/全平台:
- 颜值:
- 速度:
- 不限制/打断思考:
吐槽完工具,来吐槽语言!Java是门不错的工程语言。
网上吐槽比较多的是Java的启动速度和语法不灵活!我觉得最大的问题也是限制思考!
- Java只支持面向对象编程!所有的东西都是对象!这就像你手里拿着锤子,看什么都是钉子!面向对象比较善于建模,但是不擅长计算!这也是为什么目前新语言大部分都支持多种编程范式:Clojure,Kotlin,Scala,Golang
- Java对面向对象编程,支持得并不彻底!例如:面向对象推荐与对象相关的行为最好和该对象关联,像people.walk(),computer.start()这样的代码形式!但是对已有的对象,除了继承,Java没有其他的方法可以添加行为!这也就是为什么Java里有那么多Util类的一个原因!
推荐工具
Markdown+Pandoc
- 简单:
- 跨平台/全平台:
- 颜值:
- 速度:
- 不限制/打断思考:
Markdown和Pandoc在上面都做过了介绍。这里总结下,使用Markdown专注内容,而使用Pandoc来进行展示。
Intellij IDEA
- 简单:
- 跨平台/全平台:
- 颜值:
- 速度:
- 不限制/打断思考:
IDEA启动速度很慢,不过每天就启动一次,启动完后基本就是指哪打哪的神器!贴几张网上的gif图!
PlantUML
- 简单:
- 跨平台/全平台:
- 颜值:
- 速度:
- 不限制/打断思考:
PlantUML是基于Graphviz的所想即所得的绘图工具,相关内容请见官网,不做过多介绍!
PlantUML的一个显著缺点是,当元素多了以后,并不好维护!
所以我主要使用PlantUML做局部的建模!