[Share]构建成功web应用的十项黄金法则

简介:

此文译自Fred Wilson 2010年2月在迈阿密举行的Web未来应用的年会上的演讲

谢谢青云推荐了这篇这么好的演说

谢谢卓和百忙中抽空帮我review,修改,提出很好的建议

谢谢Lily,在我初稿完成后大半夜还帮我校对,修正,提出非常宝贵的意见

说明:  原文中的英文内容有些错误,和视频有出入, 所以按照视频为准.()中的内容均是我为了方便理解所加, 每个标题后的图片均来自原PPT

原文以及视频地址10 Golden Principles of Successful Web Apps

演讲PPT地址ppt: 10 Golden Principles of Successful Web Apps

以下是演讲内容:

 

开场白:
谢谢,大家好,很高兴能够来到迈阿密。昨晚我从纽约抵达的时候还很冷,地上都是积雪,但是现在这里却很温暖很舒服,非常高兴能够来到这里。

演说前,Carsonified有人提议希望我能够列出构建成功web应用的十项法则, 我想了想:“好吧,我都不知道是否能控制在是个”。不过,我现在已经列出来了并打算今天分享给大家。这些都是源自我十五年来对web应用投资实践所得的经验,包含了我所学到的,如哪些实践方式有效而哪些实践方式无效等等。

我用过很多的web应用,对于我们来说,我们的投资方式都是非常直接的。在投资前我们很清楚什么样的应用是我们感兴趣的,如果这产品我们不感兴趣,那我们就会直接告诉项目的负责人这不是我们想要的,相反,我们就会采纳这个产品。紧接着如果发现产品和我们产生共鸣,那么我们就会尝试去了解他。一旦这个产品,以及对应的服务和项目团队都非常吸引我们,那么我们就会去投资。

这十项是我一直在web应用中寻找的。我敢肯定在座的一定有人会不同意我的观点,但是这确确实实是对于优秀的web应用来说是不可或缺的。因此,今天的主题就是:“构建成功web应用的十项黄金法则”。

1. 速度

1.png

首先,我相信速度是最为重要的,对于一个web应用来说,速度快是所有特征中最重要的。如果你的应用很慢,人们是不会去用它的,这个在主流用户(一般用户)中要比高级用户更加来的显而易见。我认为对于高级用户来说,他们有的时候很能理解构建一个非常快速的应用背后的挑战和苦难,所以当他们面对速度缓慢的应用的时候,或许他们还能忍受。但就以我的妻子和孩子来说,他们是我认为的主流用户(一般用户),一旦某个应用速度慢了,他们不会耐心地等下去了,而是立马放弃使用。

我觉得web应用速度必须要快,如果慢了,后果是显而易见的。我们公司(风险投资公司)的每一个投资的项目在Pingdom(网站性能测试服务站点)上都有记录,我们每周都会去看。我们发现, 但凡有公司投资的应用陷入困境(出现性能问题,速度变慢了),这些应用通常也不会有快速的发展势头。这个真实有力的证据证实了“速度优于功能,速度是最重要的”这一事实,对于一个web应用来说,速度快不是一个优点,而是一项要求。

2.即时效用

2.png
“即时效用”的意思就是说服务(其实就是web应用,因为web应用多数就是提供服务)对你来说是实时有帮助的(简单实用,并且具有实时性)。如果你构建一个服务,然后用户要想使用他不得不花上一个小时的时间完成如下流程:配置服务,启动它,导入联系人,做许许多多和数据有关的事情。那我想绝大部分人会放弃使用。服务必须要对用户来说是即时可用的,而这一点被很多人所忽视.

利用许多技巧可以使得你能够快速让你的应用达到这种即时效用,举个比较适当的例子:当你构建一个信息服务的时候,一开始甚至长期你都可以在网络上的其他地方爬取比较受欢迎的信息作为你自己的服务。但是有一点,你一定要给用户即时的有帮助的信息。

另一个例子是:当Google大概4,5年前发布Google Video的时候,差不多同一时间YouTube也发布了同样的服务。如果你在上传一个视频到Google Video,之后你得到了一个消息说:“一个星期后你的视频将会被播放出来”。当然了,这样的方式显然不是很好。而相比,YouTube提供了在线实时的编码工作,你可以立马看到你上传的视频。这就是我想要说的关于即时效用的东西。

3.软件即是媒介

3.png
关于这点我有很多想说的. 我的观点是现在的软件即是媒介。特别是消费者软件,当人们使用你软件的时候就如同接触各种媒介一样。这里我所说的媒介是指诸如杂志,新闻,电视节目等传统媒介。比如”纽约时报”和“华尔街日报”;“浮华世界”(一本杂志)和“时尚”(时尚杂志);FOXNews和CNN,每一种媒介都有自己的特点,都有不同于其他媒介的独一无二的态度和坚持。

同传统的媒介一样, 我认为现在的软件也要有自己的个性特点,发出自己的声音,表达自己的态度。有些看上去诸如“Fail Whale(失败鲸)”(twitter宕机时候的提示图案)很“傻乎乎”的东西,其实也是一种个性化的东西。 虽然对于Twitter用户来说宕机这件事难免有些尴尬,但人们仍会穿着”Fail Whale”的衣服在街上行走, 这至少证明了一点: 这个服务背后有属于自己的特点,它提供了一种媒介,用同一种声音将人们联系在一起. 这就是我想要说的. 这一点对于web应用来说是非常重要的.

4.少即是多

4.png
“少即是多”,这一点我深信不疑,尤其在你构建应用初期. 而后你可以慢慢地增强你网站的功能. 以Facebook为例,  如今在他它的服务中提供了20到30种不同的核心功能.但是, 在它刚刚起步的时候他的应用却非常的简单好用.我想这就是一个好的应用所必须具备的.

公司对Delicious投资是我最满意的投资之一. 我喜欢它的简单,Delicious的功能很少,但是却很强大.人们一天要用五次甚至十次,而且天天都用. 这些服务虽然涉及面很窄, 但是对用户非常有用, 时刻都要用到它. 他们非常的强大并且对你有很大的帮助,与此同时我认为他们的快速,简单,易用做得非常的好,给你提供了一个很好的平台.

5. 可编程

5.png
对于web应用开发者而言, 我觉得这一点本身无需多说.  但是我认为非常的关键,非常的重要.能够让其他人通过某种方式在你的应用基础上构建其他的应用或者在你应用基础上添加其他的东西是非常重要的! 这就意味着开放(你应用的)API,并且在我看来是可读写的API. Delicious的创始人两三年前和我说如果API不是可读写的,那就不算是开放API. 这个已经在我们公司内部形成了一个信条了. 我们认为如果API只是可读的,那么它和RSS没什么区别.

不是所有我们投资的应用都开放了可读写API, 但我们始终尝试着鼓励并且说服他们这样做. 可编程性最为重要的一点是, 人们能够通过这个能够令你的应用更有价值, 给你的应用注入更大的能量, 为你的应用带来更多的用户, 更多的数据以及更多的财富.  或许2,3年前, 我们还会投资不具备高可编程性的web应用,但在今天我们肯定不会这么做了,因为如同速度一样, 可编程性对于成功的web应用也是必不可少的.

6. 个性化

6.png
个性化对于用户来说是非常有意义的,就好像我前面一张ppt提到的,你要让第三方的开发者乃至用户都为你的应用注入他们的“能量”,他们在你的应用中注入越多的他们个性化的东西,他们就会对你的应用更加有归属感和拥有感,这很有可能会成为你推动市场的重要力量。个性化你的应用是非常重要的,方式也有很多,比如可以让用户自定义背景,上传头像,添加自定义的内容等等等等,这些都能让用户就对你的应用产生归属感。

当然了,个性化难免也会带来一些问题。之前我和一个原Last.fm的女员工聊天的时候,她告诉我他们社区用户都感觉他们就是网站的主人,是他们在负责这个网站,于是就导致了这样的问题:每次网站有了改动,就会在论坛上看到成千上百的留言。我认为这是一件好事情,因为这就意味着人们非常关注你的网站,你的应用。

这对于我们投资的一些公司来说的确也是一个头疼的问题。比如,当我们投资的一家公司:Meetup ( 需要FQ) 上个星期在它站点的页面上作了些改动之后,就有许许多多关于这件事情的评论,当然了,大部分都是骂声(持反对意见)。对于这些评论,积极回应也好,完全不予以理会也罢,完全由你自己确定。但是从某个层面上来看,这确实是件非常好的事情,因为这恰恰说明了人们在关注你的应用,他们花费了他们的时间和精力在你的应用上面。

7. RESTful(计算机领域专业名词)

7.png
我不确定我用这个词是否准确。我想在座的大部分都应该知道什么是REST(REpresentational State Transfer的简称)。它是一个软件架构中提出的一个观点即:任何事物都应该有详细的定义。但是我这里所指的REST则有些许不同,甚至有点使用不当,但是不管怎么样我仍然觉得还是讲得通的,还是挺有道理的。

软件架构中的REST指的是你的每资源都有一个可被访问的URL来表示,这个是在软件架构层面的。但是我对他的定义则有些古怪,我所谓的REST是指整个应用层面,其中所有的资源都有一个URL,而且是一个非常简洁,容易理解的URL。

好比Twitter在3,4个月前发布的Twitter list,如果你去某人的twitter页面,单击了“lists”这个链接,你就会看到类似于“twitter.com/fredwilson/list/….”这样的URL,这个URL就表示了我twitter上的所有的list。整个Twitter应用都是以这样的方式来构建的,它上面所有的资源都是以简单易懂的URL来直接表示的。你可以拿到这个URL,然后通过email或者其他方式发送到互联网上。

Google将会搜索到这个URL,它能够让别人发现你的应用并且直接访问到你应用中原本要从首页通过很多次交互才能访问到的内容。我认为那些不以这种方式构建web应用的人都犯了一个很大的错误。就好像现在非常流行的LinkedIn,它在这方面就做的非常的糟糕。

以上就是我想要说的关于RESTFUL的东西,尽管有些怪异,但是我认为对于成功的web应用来说的确是非常重要的。

8.  让你的应用更容易被人发现

8.png
这张ppt和上一张ppt有点像。当你刚刚构建好你的应用的时候,它就好像是一堆稻草上的一根针。世界上存在着说不上成千上万吧,至少也有成千上百的应用和你类似,那么怎么样才能让人们发现你的应用呢?基于这一点,我认为,你要做的就是搜索引擎优化。对于优化,你不仅仅要知道其规则更要清楚如何去优化。你的应用必须要让Google能够很容易的发现。

不仅如此,你的应用也应该很容易被社会媒体所发现。现如今,就传播能力而言,社会媒体如同搜索引擎一样重要。就好像病毒一样。First Round Capital的创始人,同时也是我的同事,Josh Kopelman发表了一遍很好的博文,那篇博文的标题大致是:“我们需要注入病毒”。大致意思是说,他们构建的web应用根本没人使用,于是他就和他的团队说:“我们注入些病毒进去”。当然了,你不能这么做。但是你的应用就应该自始至终都应该是很容易被人发现,可传播能力很强的。产品本身就应该是面向互联网,搜索引擎,社会媒体的。这就是我所说的如何让你的应用更容易被人发现。

9. 简洁

9.png
我认为,简洁意味着你应用的页面不要太拥挤。你的页面应该让人一目了然,任何页面都不要放置太多的功能点在上面,要让用户一看就能知道是干什么的,怎么用。

在我刚开始做这张ppt的时候,想把一些应用的截图放上去,感觉这样会比较好。但是后来想想这并不好,于是我就放了这些肥皂上去了。但是之前在这个位置我放的是Tumblr需要FQ)的登陆界面的截图,截图如下:

当你进入Tumblr的登陆界面的时候,它整个页面上就只有两个巨大的输入框,用来输入用户名和密码,非常简洁直白,我非常喜欢。用户非常清楚这个页面是干嘛的以及如何使用。这点非常重要,很多人都低估了这种简洁性的价值,总觉得页面上的功能越多越好。

10. 趣味性

10.png
最后一点,同样重要的是娱乐化。我们合广投资公司(Union Square Ventures)有6个关键词(类似学校的校训之类的),有一个碰巧和我说的这一点吻合。这六个关键词是:移动化、社会化、全球化、娱乐化、智能化,第六个我忘记了。不管怎么样,这些都是和我们的web应用有关的东西,而其中娱乐化就是我想要说的。

之前有人说我放一个空的场地只有积水的图片作为背景不好,但是我这么做是有原因的。 这张ppt上的图片是旧金山的南方公园。在这个滑梯的上面只有一小块地方,但是就在这一小块地方上诞生了Twitter:那是一个春天,有天中午4,5个来自一家名叫Odeo的公司的员工来到这个公园讨论他们要构建的新的项目,最后就在这个滑梯上方的那一小块平台上,想到了Twitter。这就是为什么我要放这张图的原因。

总之,对于web应用来说,娱乐化是非常重要的. 游戏互动性是指你可以用他来引导用户做一些事情. 举个不是web apps的例子吧,一款具有良好互动性的名叫Weight Watchers的游戏, 它的良好互动性体现在。你可以在这个游戏中建立一个目标,然后去努力完成这个目标,同时,你可以将你的目标公布出来,当你达到目标之后会获得一些奖励。就是这一游戏互动性得Weight Watchers非常的成功。

不同的应用可以提供不同的游戏互动性,比如linkedIn,我有些朋友在这上面就喜欢在上面结识更多的朋友,就好像人们在Twitter上就想让更多人来follow自己,或者自己去follow更多的人一样。这是所说的就是另外一种游戏互动性了。

Foursquare则有很多的游戏元素:诸如状态,徽章之类的来衡量作为为对本地信息的挖掘的能力强弱。你的应用没有必要和Foursquare一样做的这么明显,但是我想说的是你的应用需要娱乐化。因为这样,它会让用户觉得你的应用很有趣。

Greg,能把屏幕切换到我的blog吗?我周日的时候把这篇演讲ppt发布到了我的blog上面,地址是:www.avc.com, 这就是这篇文章“构建成功web应用的十项法则”。你往下翻就会发现有许许多多的留言,一共有171条。之前有一些内容大家争论了3,4天关于是否除了这十条还有别的更重要的十条,是否你对这真的感兴趣;是否拟对你刚刚构建的应用仔细考量过,是否你这十条包含了全部的关键点。当然了,在留言中至少还提到了5,6点非常关键的,比如:隐私性,易用性,品牌性等应该被列入其中,但是我被要求只能列出10个,于是就只能压缩成了10个了。


本文转自Justin博客园博客,原文链接:http://www.cnblogs.com/justinw/archive/2010/07/29/1788243.html,如需转载请自行联系原作者

相关文章
|
5天前
|
Web App开发 JavaScript 前端开发
构建高效Web应用:Node.js与Express框架的深度整合
【9月更文挑战第28天】在现代Web开发领域,Node.js和Express框架的结合已成为打造高性能、易扩展应用的黄金组合。本文将深入探讨如何利用这一技术栈优化Web应用架构,提供具体实践指导,并分析其性能提升的内在机制。通过代码示例,我们将展示从基础搭建到高级功能的实现过程,旨在为开发者提供一条清晰的学习路径,以实现技术升级和项目效率的双重提升。
16 3
ly~
|
7天前
|
存储 监控 小程序
除了 Web 开发,PHP 还可以应用于哪些领域?
PHP 在 Web 开发之外还有多个应用场景:1)命令行脚本,如批量处理文件、数据库管理及系统监控;2)利用 PHP-GTK 等工具开发桌面应用,满足特定业务需求;3)结合微信云开发功能支持微信小程序后端,处理数据存储与用户认证;4)为小型游戏或特定类型游戏开发游戏服务器逻辑;5)在物联网领域作为后端语言处理设备数据交互与分析。
ly~
20 4
|
8天前
|
JavaScript 前端开发 UED
WebSocket在Python Web开发中的革新应用:解锁实时通信的新可能
在快速发展的Web应用领域中,实时通信已成为许多现代应用不可或缺的功能。传统的HTTP请求/响应模式在处理实时数据时显得力不从心,而WebSocket技术的出现,为Python Web开发带来了革命性的变化,它允许服务器与客户端之间建立持久的连接,从而实现了数据的即时传输与交换。本文将通过问题解答的形式,深入探讨WebSocket在Python Web开发中的革新应用及其实现方法。
21 3
|
7天前
|
数据库 开发者 Python
实战指南:用Python协程与异步函数优化高性能Web应用
在快速发展的Web开发领域,高性能与高效响应是衡量应用质量的重要标准。随着Python在Web开发中的广泛应用,如何利用Python的协程(Coroutine)与异步函数(Async Functions)特性来优化Web应用的性能,成为了许多开发者关注的焦点。本文将从实战角度出发,通过具体案例展示如何运用这些技术来提升Web应用的响应速度和吞吐量。
12 1
|
11天前
|
中间件 API 开发者
深入理解Python Web框架:中间件的工作原理与应用策略
在Python Web开发中,中间件位于请求处理的关键位置,提供强大的扩展能力。本文通过问答形式,探讨中间件的工作原理、应用场景及实践策略,并以Flask和Django为例展示具体实现。中间件可以在请求到达视图前或响应返回后执行代码,实现日志记录、权限验证等功能。Flask通过装饰器模拟中间件行为,而Django则提供官方中间件系统,允许在不同阶段扩展功能。合理制定中间件策略能显著提升应用的灵活性和可扩展性。
15 4
|
12天前
|
SQL 缓存 数据库
构建高效Web应用:掌握Python中的ORM映射技术
在Web开发中,数据库操作至关重要,但直接编写SQL语句会增加代码复杂度并降低效率。对象关系映射(ORM)技术通过将对象模型映射为数据库表,使开发者能以面向对象的方式处理数据,提升开发效率和代码可维护性。本文以Python和SQLAlchemy为例,介绍ORM的基本概念、安装方法及使用技巧,并展示其在提升Web应用性能方面的优势。通过ORM,开发者可以简化数据库操作,专注于业务逻辑实现,提高开发效率和代码质量。
35 1
|
5天前
|
JSON JavaScript 前端开发
构建高效Web应用:Node.js与Express框架的完美结合
【9月更文挑战第28天】在现代Web开发中,Node.js和Express框架的结合为创建高性能、易扩展的应用提供了强有力的支持。本文将深入探讨如何利用这两种技术构建一个简单但功能强大的Web服务,同时提供代码示例以加深理解。
|
9天前
|
Web App开发 编解码 前端开发
构建响应式Web应用的最佳实践
构建响应式Web应用的最佳实践
18 0
|
Web App开发 JavaScript 前端开发
《单页Web应用:JavaScript从前端到后端》——1.3 精心编写的单页应用的用户效益
所有这些好处意味着,你可能会想把下个应用做成单页应用。每次点击后都会重新渲染整张页面的笨拙网站,容易日益疏远富有经验的用户。精心编写的单页应用具有互动和快速响应的界面,还伴有访问网络的功能,这将帮助我们把客户留在属于他们的地方:使用我们的产品。
1179 0
下一篇
无影云桌面