我多年从事软件开发和运营工作,从未跟“设计”间断过。现在在设计一个全新saas产品:超级表格(www.domypp.com)。最近买了台苹果最新款的笔记本电脑MacBook Air,从该产品功能设计和用户体验得到很深的体会。我想,软件设计不应该这样吗?

先说说第一印象。
刚刚打开MacBook Air的包装,打开精致的包装盒,取出了小巧玲珑的MacBook Air。我开始想从现在起我需要花多长时间琢磨才能“开始”使用这台电脑。打开翻盖,一眼看到右上角的电源按钮,按下(会不会需要先充电?我想如果需要先充电,就扣分)。没有失望,一按,即刻启动Mac了。几秒后要求给本机器配置一个机器名称,我输入了姓名。OK。
几秒后,屏幕提示找到了屋里的无线网络(这是我熟悉的家里无线路由器的名称,熟悉!),提示输入网络密钥。输入。
几秒后,MacBook Air桌面出现了。可以正常使用了。我接着一眼看到底部的浏览器safari,打开,输入一个网址。成功!
好!对于我这样一个以网络为生的人来说,能上网就意味着可以正常工作了。
这样算来,我没有遭遇任何障碍,第一次使用花了几十秒时间就如此顺利使用该产品,打10分。

什么启发呢?如果我设计软件让用户第一次使用就能顺利完成,用户的感受会非常好。让用户产生挫折感的软件就是让设计失败的软件。曾经,我们公司的同事开玩笑说,要是软件安装太简单了,会让用户觉得软件太低档了而不值钱。也许在某些情况下,这是必要的营销措施。但从用户体验上说,在这个用户体验至上的网络时代,要时刻记着“用户体验”!

下面是我感受比较深的其它的设计点。

立即有效的功能键设计。
键盘上第一排键是功能键。功能键除了标上F1-F12,还有形象图形,让人一看就知道是做什么的。
F1是减少屏幕亮度的
F2是增加屏幕亮度的
F9是开启/关闭声音的
F10是减少音量的
F11是增加音量的
这些按钮一按就生效。好!
什么?这有啥好说的?
再回头看看我们熟悉的Windows的功能键:
F1是用来打开帮助系统的:有多少人真真需要这个功能键?还经常不小心了按了这个键打开了帮助系统。
开启/关闭声音功能键:你按下会生效吗?不会!为什么?因为你还需要同时按下左下方的“Fn”功能键才行。

看看一点区别:
Mac Air:无需同时按“Fn”键;
Windows:需要同时按“Fn”键。
就这点区别,让我这个用了十几年Windows的人都觉得Mac设计的更人性化,体验更好。

待机时间30天,使用时间5小时。
这点是我最看重的一点。对于笔记本,电池续航能力实在重要。只不过大多数笔记本续航时间都不好,只好习惯了。现在能享受这么长的续航时间,才知道什么是好。夸张地说,100个新功能都不比续航时间长重要。

暂时用完电脑直接合上翻盖即瞬间进入休眠状态,打开翻盖又瞬间恢复原来的桌面。什么是瞬间?1-2秒!再看看Windows的休眠和恢复时间吧,至少30秒吧?

什么启发呢?
设计软件时,有时很难平衡功能、性能、用户体验之间的关系。想想刚才提到的Mac Air的设计,就知道应该这样:
1 抓住用户体验最重要的功能或者性能的一、二点,做到极致,比多做很多功能都重要;
2 不要习惯于过去的、大众的作法。没用过Mac还以为Windows有多好。用了Mac Air才知道原来还有更好的。

继续说。
第一次准备给Mac插上电源。找出电源线,一边插到电源插座上(常规,没什么),另一头是要插到Mac上。我拿着接头找到Mac的电源插口,刚接近,“咔嚓”一小声!
怎么啦,插头对上了!原来是电源插口有磁性把电源线的插头吸进去了。
这是我最崩溃的体验了。哈哈,设计得太给力了。平时习惯了在众多插口中寻找电源插口并且小心对准插入的情景,突然被这么人性化地“服务”了一把,心中喜悦无与伦比啊。

又是“用户体验”!

下面也是一些MacBook Air带来的惊喜:
体重2斤多吧,是我见过的最轻的笔记本。
最薄,超乎想象的薄!

应该像设计MacBook Air一样设计超级表格。

从软件工程师的角度看MacBook Air的几个设计亮点的更多相关文章

  1. 苹果MacBook Air安装win7

    同事的一台mba,说iOS不习惯,希望装一个win7系统.机器看上去很小巧精致,运行iOS速度飞快.试着点了下鼠标,没反应,翻过来看了下,有个电源开关.拨了一下,细小的指示灯闪了闪,应该加上电了.唉, ...

  2. 在MacBook Air 上装Win10的,反反复复的失败过程。

    这个月初,一个女性朋友托我帮她装电脑,往MacBook Air上面装Windows 系统,原因是windows用的习惯,用起来顺手.然后用脚趾头考虑了一下,就一口答应下来了.难道这就是一个标准程序员的 ...

  3. 2014款Macbook Air安装单独X64 Win7系统

    之所以写出来,是因为网上大多是用BootCamp安装双系统的,安装单独Win7的教程少之又少,然后大多数还写得不清不楚,所以折腾了一阵子.其实装好之后,还是觉得挺简单的. 我主要参考了两篇文章,链接如 ...

  4. 另一个角度看元宇宙与RPA:人工世界、平行员工与RPA

    另一个角度看元宇宙与RPA:人工世界.平行员工与RPA 从元宇宙到平行员工,人工世界推动的虚实分工利好RPA 机器人是铁打营盘人类是流水兵,未来元宇宙的虚实分工RPA机会巨大 文/王吉伟 元宇宙是平行 ...

  5. 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业

    相关文章:随笔<一个程序猿的生命周期>- 逆潮流而动的“叛逆者”        15年前,依稀记得走出大山,进城求学的场景.尽管一路有父亲的陪伴,但是内心仍然畏惧.当父亲转身离去.准备回到 ...

  6. 1、软件工程师要阅读的书籍 - IT软件人员书籍系列文章

    软件工程师要阅读的书籍估计是项目组内最多的.软件工程师处于项目组中最基础的人员储备阶层,与项目的关系最密切.当然,现在是大数据时代,我们无法全部看完所有相关的书籍,只能够先学习工作需要的知识,然后在项 ...

  7. [No00004D]深度思考好文:软件工程师的困境

    昨天是我一同学结婚的好日子,同学们大家聊各自的工作,有个同学突然问了我一句:我们同学中好像做软件的不多?如果再细分,好像做网络相关的更少? 回想起当时为何读计算机信息管理的专业,是因为那时听说读电脑未 ...

  8. 纯CSS打造银色MacBook Air(完整版)

    上一篇:<selection伪元素小解> ::selection{ background:blue; color:red; }p{font-size:14px;} 作者主页:myvin 博 ...

  9. transition、animation在macbook air上图片动画边缘抖动

    示例: BUG描述: 最近同事一项目中,产品提出在macbook air上,列表图片放大效果边缘出现抖动现象.在retina屏上没有此问题. 调试过程: 1.单独把结构分离.确定是否由其他元素引起. ...

随机推荐

  1. C#实现WebSocket协议客户端和服务器websocket sharp组件实例解析

    看到这篇文章的题目,估计很多人都会问,这个组件是不是有些显的无聊了,说到web通信,很多人都会想到ASP.NET SignalR,或者Nodejs等等,实现web的网络实时通讯.有关于web实时通信的 ...

  2. 校园网络安全CTF 第一题 和 你真了解我吗?

    第一题: 需要先找到相应头(REsponse header中的tips) <?php$flag = "***";if (isset($_GET['repo']))//检测变量 ...

  3. 服务端 安装配置 svn

    检查是否安装svn svn --version 看看,既能确定是否安装,又能确定版本多少 安装 svn yum -y install subversion 创建仓库存放目录 mkdir -p /opt ...

  4. C++_异常7-exception类

    C++异常的主要目的是为了设计容错程序提供语言级支持. 即异常使得在程序设计中包含错误处理功能更加容易,以免事后采取一些严格的错误处理方式. 异常的灵活性和相对方便性激励着程序员在条件允许的情况下在程 ...

  5. QDU_CEF(补)

    C - Arthur and Table Arthur has bought a beautiful big table into his new flat. When he came home, A ...

  6. CodeForces 1043D Mysterious Crime 区间合并

    题目传送门 题目大意: 给出m个1-n的全排列,问这m个全排列中有几个公共子串. 思路: 首先单个的数字先计算到答案中,有n个. 然后考虑多个数字,如果有两个数字相邻,那么在m个串中必定都能找到这两个 ...

  7. [转] 一个简单的零配置命令行HTTP服务器 - http-server (nodeJs)

    [From] http://www.cnblogs.com/lucker/p/4108838.html http-server 是一个简单的零配置命令行HTTP服务器, 基于 nodeJs. 如果你不 ...

  8. 学习python-跨平台获取键盘事件

    class _Getch: """Gets a single character from standard input. Does not echo to the sc ...

  9. Python爬虫常用之HtmlParser

    HtmlParser,顾名思义,是解析Html的一个工具.python自带的. 一.常用属性和方法介绍 HtmlParser是一个类,在使用时一般继承它然后重载它的方法,来达到解析出需要的数据的目的. ...

  10. git 填坑之 git 暂存区忽略文件

    今天修改公司项目文件的时候,发现被修改的文件的始终不显示已经被修改. 本来是想要把 KWh 改成 kWh,然后执行 git status 后,没有文件修改记录: 开始分析究竟是因为什么导致的这样诡异的 ...