1、在你开始之前,先定一个简朴的方针。无论你是一个Web 2.0应用的建设者照旧用户,请清晰的构想你的方针。就像“我需要生存一个书签”可能“我筹备辅佐人们建设可编辑的、共享的页面”这样的方针,让你保持最基本的需求。许多Web 2.0应用的最初吸引之处就是它的简朴,制止并埋没了那些多余的巨大性。站在建设者的态度,可以想象Google的险些没有内容的主页,尚有del.icio.us的简朴的线条。从最终用户的角度来看,与之齐名的就是Diggdot.us所提供的初始化页面。你可以或许而且但愿插手更多成果,可是先做好最开始的。在一个时候只做一个特性,完成一个方针。这听起来很过分于纯真化了,但它将使你越发专注,并且你也会大白我的意思。
2、链接是最基本的思想。这就是我们称之为Web的一个来由。链接是把Web中各类实体毗连起来的最根基的元素。你的信息、你的干系、你的导航,甚至是可以或许被写成URL的任何内容。这里有一个链策应该遵循的法则(其实你也不必严格的遵守):
1. Web上的任何对象都是可以被URI可能是URL所毗连的。
2. 把所有的链接都生存为他的原始出处,这样可以让你与任何人、在任那里所、任何时候都能分享它。
3. 第二条中任何时候的前提是链接必需是耐久的,它不会在没有任何缘由的环境下被改变可能是消失。
4. 链策应该是人类可读的、不变的、而且可以或许自我诠释的。
3、数据应该属于建设它的人。是的,你听我的。任何用户建设的、孝敬的或分享的都是他们本身的,除非他们很明明的放弃这个权力来让你自由处理。他们孝敬到Web上的任何信息都应该是可编辑的、能被删除的、而且可以或许打消共享,无论在任何时候,只要用户愿意。这也包括了那些间接的数据,像他们所体贴的记录、日志、欣赏汗青、网站会见信息,可能是任何可以被跟踪的信息。所有的网站必需清晰简朴的陈述那些信息是用户建设的,而且提供他们遏制建设的要领,甚至是排除的要领。
4、数据优先,体验与成果其次。无鬯俏谋尽⑼计⒁羝祷故鞘悠担琖eb最终照旧把这些理会为数据。换句话说,你无法离开数据去泛起内容。所有这些数据都通过那些易于发明的URL来定位(拜见第2条)。通过另一种形式来对待这些,Web最终是名词优先,动词其次,固然最近正在向动词偏移。来看看名词的例子:日历的条目、家庭照片、股票价值。尚有一些动词的例子:定一个约会、共享一张图片、买一份股票。
5、做好努力分享一切的筹备。尽大概的分享一切,你所拥有的所有数据,你所提供的所有处事。勉励不遵循原有意图的利用,倡导孝敬,不要那些需要分享的内容僵持配置为私有的。在分享与发明之后,提供易于利用的欣赏方法是显而易见的需求。为什么呢:话说返来,你会从别人的共享之中受益匪浅。留意:这里没有许可让你去加害版权掩护的法令,你不可以或许去分享你刻录的DVD可能是拥有贸易版权音乐,因为你已经同意不会去分享这些对象。可是你可以发明并分享那些完全开放的媒体内容。一个小小的发起,你可以进修一下Creative Commons license(共创协议).
6、Web是一个平台;要让它生长。虽然,我们尚有许多其他的平台(Windows、Linux、Mac),可是那些已经不是重点了。换句话说,Web是无法离开的平台,不会间断的平台,你可以通过各类方法去扩展的平台。你在Web上提供的数据与处事将会成为Web一部门,最终你会在Web平台的某一处饰演你的脚色。饰演好你的脚色并照顾好厥后者。
7、领略与信奉“路线性”。此刻的Web越来越大,险些伸张到了全世界的所有国度,而且已经拥有了10亿用户。我的概念是Web的各个构成部门存在着细微的区别和差异,就像差异处所的用户那样。譬喻Web的设计部门:易用性永远优先于速度、靠得住性、重用性与可集成性。你也应该提供同样的体验给你的用户。它已经被一次又一次的被人们在文档中强调,忠诚的用户很快会成为专业的用户,他们等候更快的速度尚有更多。退一步支持他们。同样,也有许多许多的用户会进入这个路线的底端,如你所等候的那样。他们大概不会说你的语言,不熟悉你的文化,甚至不知道是如何到这里的。所以你需要向他们表达清楚。
8、任何对象都是可编辑的。可能是它应该被编织的更好。要确定的是,只有很少的对象是不能被编辑的,剩下的都可以,这是一个可写的Web。这并不料味着原始内容的丢失,而凡是被领略为用户可以或许很容易的对内容加以评论,可能评注内容是在哪里发明的。假如你对此应用的好,他们可以或许比你所想象的做的更多(把内容串起来而且给以原始内容来建设本身的,等等)。
9、Web上的身份是神圣的。不幸的是,这并不料味着你可以或许获得更多的隐私(这完全是上个世纪的想法)。但对身份的验证是须要的,你应该感激那些只需一个邮件地点就能确定你身份的处事。这意味只要你对你的用户理睬了,你就必需担保他们的隐私安详。须要的时候,在这个世界的某处你还得为你的用户挺身而出,向内地的权威挑战。假如你没有规划那样做,你就得把实际环境汇报你的用户。另一方面,假如身份是必需的,不要试图伪装它,否则在某一天我们将会在Web上放弃我们的最后一点点隐私的权利。
10、相识风行的尺度而且利用他们。从一个消费者可能是创作者的态度来看,数据将会以差异的名目与任何一小我私家互换。同时这样的数据也会反过来促进尺度的完善与采用。这凡是意味像RSS、 OPML、XHTML、Simple XML、JSON等简朴尺度的风行,而制止SOAP、XSD,尚有RDF、ATOM也一样,利用它们会给我的心田带来疾苦。请你也为你所钟爱的尺度投上一票来支持它们。
11、遵循无意利用的纪律。假如你把很是有趣的数据和处事用遍及利用的名目开放和共享出去,你将会获得你所应得的,其他人也将会基于你的那一块Web平台来构建。或者还会从别人哪里获得更多,所觉得这个做一下筹备较量好。我已记不清有几多次我看到一个播客(podcasting)处事因为风行过渡而导致处事垮掉,就是因为他们被 Slashdot和del.icio.us给收录了。这一点要知道:网络上的大量化意味着假如一个内容很是有趣,纵然是一个很小的角落也会获得惊人的会见量。勉励利用这种方法,它还长短常有代价的,前提是你要有所筹备。
12、粒化你的数据与处事。我们应该在很早以前就大白这些,大局限集成的数据仅仅合用于无需打点的下载与批量操纵。解析你的数据,让他们独立成可描写的URL地点,对你的处事也一样。反过来说,你不要建设一些庞大的、巨大的、像圣诞树那样的数据布局和处事。保持简朴,要很是的简朴。让这些疏散的片段可以或许容易的被重组和发明。
13、提供用户可以或许单独受益的数据和处事。徐徐依赖于这种社会化参加是存在风险的,你需要让你的用户有一点点念头来孝敬时间、热情和信息,除非他们可以或许直接管益。社会化分享比个别行为的好处大许多,除非你可以或许引发用户的小我私家念头,否这你将无法享受这份厚礼。
14、让用户组织并过滤信息。不必然是必需的,但却长短常重要的。让用户以他们本身的方法来标注和组织数据,因为你本身是永远无法实时的处理惩罚他们的。用户会凭据他们本身领略的最佳方法来处理惩罚并构建。要担保你的Web处事可以或许凭据用户所需所想的方法来事情。这也是标签(tagging)和通俗分类(folksonomies )的方法如此乐成的主要因素。
15、提供富厚的用户体验。Web一直都在和当地的应用措施举办着剧烈的竞争。为什么?因为当地措施照旧感受上好一些,速度也快一些。可是这不会持久的(确信在5年可能15年后,这种竞争就不存在了)。是的,我在谈论Rich Internet Applications, Ajax, 尚有那些不行思议的交互应用。他们让Web成为了一个真正的“无平台”的平台,假如你知道我是怎么想的。
16、信奉并支持快速改造和反馈。这个凡是意味着加速步骤,但也意味着利用轻量级的东西、技能和不要做出那些适得其反的疾苦抉择(譬喻利用一个被层层环抱的Ajax框架来取代可以通过殽杂来实现的,可能用C++来构建所有的对象,其实利用Ruby会更好一些)。这同时也意味着需要一个很是快速的方法来处理惩罚错误陈诉,修复Bug,释放新版本。从一个用户的角度来看,陈诉你所发明的任何问题,尚有那些你常常诉苦的处所,甚至那些都不是一个Bug。
虽然,Web 2.0是一个极其遍及和深奥的话题,没有一小我私家可以或许罗列出它的所有重点和特征。假如你对此布满了乐趣,请花一点时间来增补我没有提到的处所。我想这就是Web 2.0的参加性吧!
原作者的这个标题警惕了Bruce Eckel的两本脱销书的名字:《Thinking in C++》和《Thinking in Java》,《C++编程思想》与《Java编程思想》,在此说明一下为什么要这样翻译这个题目:)