阿里巴巴资深技术专家无相:我们能从 InteliJ IDEA 中学到什么?

简介: 最近因为工作的关系,要将 Eclipse 的插件升级为 IDEA 插件。升级过程中,对 IDEA 插件做了些学习和研究,希望通过本文,对“为什么收费的 InteliJ IDEA 会比免费的 Eclipse有着更好的用户口碑“这一现象,提供些个人的思考。

本文来源于阿里巴巴资深技术专家无相在内网的分享,阿里巴巴中间件受权发布。

最近因为工作的关系,要将 Eclipse 的插件升级为 IDEA 插件。升级过程中,对 IDEA 插件做了些学习和研究,希望通过本文,对“为什么收费的 InteliJ IDEA 会比免费的 Eclipse有着更好的用户口碑“这一现象,提供些个人的思考。

通过这篇文章,您将了解到心流与人体工效的重要性,并使自己变得更强大,文章将从以下几点展开:

  • InteliJ IDEA 当前的市场情况与表现;
  • IntelliJ IDEA 成功的原因;
  • IntelliJ IDEA 在 IDE 设计器领域胜出的两个关键点;
  • IntelliJ IDEA 对现实工作的启示;
  • 充分利用 IntelliJ IDEA 插件,使自己变得更强大;

InteliJ IDEA 的市场情况与表现是如何?

2012年开始,IntelliJ IDEA 便迅速崛起,到了2016年,就占领了开发者市场的 46% 分额。直至2018的最新结果:IntelliJ IDEA 的市场份额增长到了 55.4%,显然赢得了18年 Java 领域的 IDE 王者之战,甚至还有重构的大师 Martin Fowler 在他著名的blog上,对 IntelliJ IDEA 赞誉有加。而且根据 IDEA 的产品满意度调查,其满意度竟高达 98%。

1

从外国学者角度,分析 IntelliJ IDEA 为何成功

很多国外学者也研究了 IDEA,它的成功之处归结起来有以下两点:

1. 产品功能上的成功:

  • 代码的智能提示: IDEA 自主开发语言解释器,做了深度的静态分析,让编程更加智能与高效,这是一项杀手级的特色功能;
  • 没有保存按钮:每一个你想使用功能,都有快捷键;
  • 性能非常好,用户的体验及其流畅;
  • IDEA 不仅对核心插件进行维护, 还提供了优秀的工具集,给予用户一致的UX范式体验;

2. 营销策略上的成功:

  • 以产品为核心和根本,以 "更好用" 的设计理念和原则打败了很多竞争者;
  • IDEA 没有销售团队,但是霸气的营销口号体现了其内容营销的核心逻辑:”Try it. Test it. If you feel its better, use it“ ,没有多余的营销,真正做到用产品说话;

相信大部分程序员,对 IDEA 的特性已经非常熟悉了。 接下来,我们将分析其真正强大的原因。

在 IDE 设计器领域里,IntelliJ IDEA 为何能胜出?

IDEA 的风靡与崛起,在于它遵从了两个关键的设计哲学:

1. 不打断心流

Every aspect of IntelliJ IDEA is designed with ergonomics in mind. IntelliJ IDEA is built around the idea that every minute a developer spends in the flow) is a good minute, and things that break developers out of flow are bad things. Every design and implementation decision considers the possibility of interrupting developer’s flow and seeks to eliminate or minimize it.

(这句话美得我不想翻译。)

“Creative Flow” or just “Flow” is a state of mind where you feel evenly attuned, and focused on the task at hand.

创造心流是一种思考状态,是你感觉平和或专注于手头的任务的时刻,通俗的理解就是当你沉浸一件事时,有一种忘记时间与空间的感觉。心流会让你处于你最佳的意识状态,McKinsey 在2010年的研究表明,当你处于心流状态,你的工作效率比非心流状态下的工作效率提高 500%。

通过这种设计理念的学习,不禁畅想:如果越来越多的阿里产品,像IntelliJ IDEA的的产品体验一样,让人处于心流,高效完成任务,整体的生产效率将会成倍提升。

2. 人体工效学

IntelliJ IDEA 宣称用人体工效学来设计IDEA, 即 ”The capable and ergonomic IDE for JVM“。

我们简要地科普一下人体工效学:这是一门专注研究人体舒适,通过产品设计减少疲劳、不舒适的科学。在家居设计和人体工程学上,都会重点考虑这种设计理念,让人们在使用时感受到更舒适、更高效率与更少的压力。

接下来例举两个人体工效学的经典例子:

1. 客服耳机

2

如果没有佩戴式耳机的出现,客服同学估计会疯掉。

1. 一撕得的包装箱

4

一撕得的包装纸质量、胶水质量、人体工效学的拉链式设计,这三种要素在纸箱界都是业界第一。

人体工效学对软件设计的提示:

  • 统一的UX风格设计;
  • 将复杂任务变成简单任务;
  • 将长任务分解成短任务;
  • 因为人类的有记忆力的限制,所以要适当提供提醒,提供关键的辅助给用户,让他们完全沉浸在核心工作中,不被打断。

(更多提示,可以看参加文献的第5篇文章。)

如果想体验一下人体工程学的设计,IDEA的快捷键与无保存按钮,你立刻就会明白。

对我们现实工作有哪些启示?

5

经过团队的讨论,我们认为 IDEA 的增长飞轮在于:优秀的设计理念,卓越的产品体验,InteliJ IDEA 开放的社区,免费与专业收费并行的商业模式。IDEA 不断更新迭代的路径就是用更好的产品体验,吸引到更多的用户,用户贡献了更多的利润,用来吸收更多的优秀人才,一起开发更好的产品。这给予我们现实工作的指导意义,产品要回归至以人为中心的设计理念:

  • 心流的提示:罗列出用户的任务,让用户尽可能处于心流状态,消灭导致任务低效的因素;
  • 人体工效学提示:我们在设计产品时,要充分考虑用户使用产品的场景,这是一个一体化的设计,就像星环产品设计。写代码只是软件研发的一环,需求创意提出、需求研发上线、业务商业分析这些整体环节都要考虑,让用户舒适地完成任务;
  • 智能提示:采用人工智能来提升任务的完成效率。IntelliJ IDEA的智能代码提示,是一个经典的案例;

最后:我个人会将心流与人体工效学的设计思想,融入至技术产品设计过程中,期待我们团队的实践篇。

小编推荐两款创造心流的 IDE 插件:

1. 热替换利器:JRebel

一款热部署插件,帮助开发者在项目处于运行状态下任意修改 Java 文件并动态反馈到运行的项目中。点击了解更多

2. 开发测试必备部署神器:Cloud Toolkit

帮助开发者更高效地开发、测试、诊断并部署应用,利用此插件,能够方便地将本地应用一键部署到任意机器(了解更多:体验链接)。

参考文献

  1. https://www.youtube.com/watch?v=Eyy9ddRgMX8
  2. http://catalyticcolor.com/scientific-research-about-flow/
  3. https://en.wikipedia.org/wiki/Flow_(psychology)
  4. http://ergo.human.cornell.edu/ahtutorials/interface.html

本文作者:

无相,阿里巴巴资深技术专家,多年担任汇金平台的架构师,是阿里tbbpm工作流引擎的作者。曾在阿里云负责过云产品 0 至 1 的商业化,最近几年在负责阿里的店铺&详情等系统的中台建设。目前,新零售业务平台正在招聘优质架构师,欢迎投简历到 wuxiang#alibaba-inc.com 邮箱。


©每周一推

第一时间获得下期分享


6

相关文章
|
4月前
Intelij IDEA 隐藏 .idea
Intelij IDEA 隐藏 .idea
39 4
|
Android开发
IntelIj IDEA运行JUnit Test OutOfMemoryError
好久没看到OutOfMemoryError这种错误了,今天跑测试的时候发现总是报错。针对IDEA需要修改几个配置。 JUnit Test在运行前,IDEA会build整个项目,这个是喜欢eclipse的人最讨厌的地方,因为即便是别的不相干的类没配置好,我的Test也不能跑。
1806 0
InteliJ IDEA15 安装jrebel破解文件
使用InteliJ IDEA这个工具感觉比eclipse好用,例如它在没有源码的情况下自动反编译源码等,但是在使用的时,有个很不爽的地方就是不能实时编译,导致java代码更改了一点代码就需要重启项目,针对我使用的版本是IDEA15 通过搜索得知有两个解决方案: 1、录制宏,更改代码后按ctrl+s...
1074 0
|
Java Maven 网络安全
intelij idea+springMVC+spring+mybatis 初探(持续更新)
intelij idea+springMVC+spring+mybatis 初探(持续更新) intellij 创建java web项目(maven管理的SSH) http://blog.csdn.net/dream_an/article/details/49796297
1419 0
|
Java 开发工具 Android开发
Android开发学习---使用Intelij idea 13.1 进行android 开发
原文:Android开发学习---使用Intelij idea 13.1 进行android 开发 1.为什么放弃eclipse?太卡!! 实在受不了eclipse的卡了,运行WEB项目还好,但android开发实在太慢,太慢!经常卡死,CPU经常被占满! 看网上很多人都说比Intelij i...
1667 0
|
6月前
|
Java 编译器 Maven
使用intellij idea搭建SSM架构的maven项目 详细
使用intellij idea搭建SSM架构的maven项目 详细
101 4
|
5月前
|
IDE Oracle Java
day4:JDK、IntelliJ IDEA的安装和环境变量配置
【7月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
234 0
|
5月前
|
网络协议 安全 Linux
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
119 2
下一篇
DataWorks