构建社交网络应用BuildingSocialWebApplications读书笔记Word格式文档下载.docx

上传人:b****7 文档编号:22295672 上传时间:2023-02-03 格式:DOCX 页数:23 大小:28.02KB
下载 相关 举报
构建社交网络应用BuildingSocialWebApplications读书笔记Word格式文档下载.docx_第1页
第1页 / 共23页
构建社交网络应用BuildingSocialWebApplications读书笔记Word格式文档下载.docx_第2页
第2页 / 共23页
构建社交网络应用BuildingSocialWebApplications读书笔记Word格式文档下载.docx_第3页
第3页 / 共23页
构建社交网络应用BuildingSocialWebApplications读书笔记Word格式文档下载.docx_第4页
第4页 / 共23页
构建社交网络应用BuildingSocialWebApplications读书笔记Word格式文档下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

构建社交网络应用BuildingSocialWebApplications读书笔记Word格式文档下载.docx

《构建社交网络应用BuildingSocialWebApplications读书笔记Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《构建社交网络应用BuildingSocialWebApplications读书笔记Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。

构建社交网络应用BuildingSocialWebApplications读书笔记Word格式文档下载.docx

微博11

3与谁分享,为什么11

同行竞争使得交互畸形11

谈论一些易于讨论的事情11

4他们如何共享11

适度保密11

生活串流和社会化聚集11

生活串流上的冗余服务11

一种快速发展的简单核心11

5社会化软件集12

6群组12

群组的形式12

群组会话12

群组共享工具12

群组协作工具12

以社交平台为基础12

Ning和白标社会化软件12

成长中的社会化网络12

7小结13

第十章13

第十一章13

第十二章13

第十三章13

第十四章13

第十五章13

第十六章社会化应用开发实战13

1小即是好:

一种重复循环13

2社会化应用与普通web应用的差异14

3敏捷方法14

4部署和版本控制14

测试运行中的版本是可能的,但应该有条件的运用14

测试驱动开发14

自动化Build使得管理更简单14

运用开发工具到社会化应用项目14

灵活的开发你的社区14

5基础设施和Web运营15

运营管理15

6设计社会化应用15

使用原型而不是图片15

使用用例支持开发15

采用好习惯进行设计15

7你的应用应该有自己的视角15

8代码审查如何减少问题15

命名的权利和责任16

Restful16

9请不要只考虑web界面16

i18n,l10n和utf-816

10bug跟踪和问题管理16

跟踪工具16

问题优先级16

从bug中识别功能需求16

处理安全性问题17

11快速用户界面17

快速原型17

扩展及消息架构17

Ajax协助扩展17

隐形的更新排队17

实时VS接近实时17

推VS拉17

XMPP消息17

外部处理:

急速扩展17

性能测试17

语言无法拓展18

缓存和碎片18

快速和轻量级的数据存储18

12完成搜索18

13用户数据的识别和管理18

用于身份认证的OpenID18

注册有什么要求18

当一个用户选择离开18

管理用户19

通过OAuth访问内容19

14联邦19

15使你的代码环保且快速19

16创建管理工具并收集集体智慧19

社会化网络分析20

机器学习和大数据集20

信用系统20

17小结20

第一章

第二章

第三章

第四章

第五章

第六章

第七章设计以人为本

站点设计与站点内容和活动密切相关,所以简单的复制其他站点的设计是不行的。

你可以借用其他站点的元素,而不是整个站点。

通过创新设计来理解如何发展这些风格。

1使得软件适应用户

计算机的周期并不重要,人、站点、社区间的社会和认知方面的关系创建了应用。

瀑布模型看起来很美

其中的一个局限性在于将工作的分割。

有可能增加工作量。

软件开发过程中有太多的交互。

另一个局限在于开发日程。

大多数软件项目与预期是有差异的,因此很难遵循这一计划。

简单的“先后台,再前台”的开发方式也是失败的。

有可能导致开发的功能与使用冲突。

完整的交互设计报告视觉设计和信息存储模型。

2交互设计

在开发过程过程中,单独的人员管理交互设计过程,能够使得整个团队在每个功能实现之前进行思考和讨论。

这能够帮助团队专注于解决界面问题而不是简单实现,从而得到更好的用户体验。

若单纯将任务写成一行行的文字,会阻碍团队对项目的理解,常导致问题。

3通过角色模型和以用户为中心的设计识别需求

用户为中心的设计(UCD)是对瀑布模型的极大改进。

在软件项目中,理解并关注用户的需求是很重要的。

早期叫做“可用性工程”。

关注用户的需求是一个好的开端。

一个角色代表一个核心用户用例。

内部用户的角色常被忽略。

用户间的交互常被角色模型忽略。

与可能的使用者交谈

大多数人对软件能做什么事情不了解,所以直接提出有用的想法很难。

你休要间接交流,并合成一个你的潜在用户需要的东西。

如在汽车诞生前“更快的马”的需求。

命名影响视点

很多站点对人们的理解能力进行了过多的假设。

站点功能命名的正确用词。

4UCD常用技术

“情景调查”,主要包括:

任务分析:

高阶任务分解,以更好理解。

外部专家评估。

包括任务本身,以及任务是否有意义。

卡片分类测试:

将内容和活动分在不同卡片,由不同类型人群来进行分类。

用于确定某种人群是如何看待内容的,也用于确定活动路径。

关注人群:

这种关注小组人群的讨论有助于获取外部风投的买入和获得产品的发展方向。

需要有很好的准备和主持人。

可用性测试:

通过文字原型,能够发现用户与你设计的理解差异。

设计结果:

组织多个小组,短时间画好一个界面草图,并由旁边的人来画点击草图中的合适链接后的页面效果。

以上技术你可以在一个项目中多次使用。

5开始项目的交互设计

没有最终的用户界面和需求,进行的编码,对于社会化软件项目来说是一种灾难。

6使用UCD和敏捷

已有人探讨洗衣机模型,用于短时间的,在每个敏捷循环之前的,交互设计工作。

一个月一个版本发布,结合交互设计工作意味着能够更敏捷的响应社区。

两者的结合需要设计和开发人员在语言方面具有一定的灵活性和共享一般文档。

更多的交流。

需要在静态Photoshop草图和HTML原型间有一个平衡。

除主页外,也应注重内容页面。

开发多个原型有助于克服自身的设计偏见。

在设计原型没有出来前,不要开发。

行为驱动的设计方法支持这样的工作模型:

你应该确定应用对用户交互的相应,而不是开发功能。

7UCD之外

UCD起源于80年代的计算机驱动的认知心理模型。

HCI和信息架构

人机交互包括认知心理学。

人与人之间的交互在站点地图上是看不到的。

一个基于目标的信息架构方法很可能遗漏社会化的方面。

Craftsman方法

基本上不进行传统UCD研究的有经验的设计人员。

苹果公司很少使得他们的开发过程和迭代公开。

这需要天赋和纪律,很少公司能做到这样。

由于预算限制。

我们常开发一些用于自身使用的软件。

这时需求是很明显的。

使用这种方法,设计一个核心问题或体验,需要在沟通中清楚这一点,要注意不要添加有可能模糊你的产品核心价值的内容。

从前的设计经验有可能导致错误假设别人的行为。

Craftsman方法的灵感个话题是效率。

由于缺少规划,匆忙开发,由于缺乏了解构建错误的东西。

8尝试喜欢限制

你的产品无法尝试去为所有人做所有事情。

限制是有益的,虽然他们看起来会限制你的市场,但他帮助你介绍你的产品是什么,并保持一致性。

每增加一种选择,就增加了需要维护的代码量和用户体验的复杂性。

很多流行的web应用在一个复杂领域很好的专注于一件事和一种方法。

须在设计修改前,考虑会发生什么。

不要忽略限制,以至于制定详尽的解决方案。

带宽、隐私和权力管理都可以影响项目限制。

创建自己项目的限制,以避免代码的不成熟和过于复杂的界面。

最好保持项目的简单,以便于能够快速介绍给别人,以及别人能够快速理解。

保持快速实验

项目的初始阶段是实验阶段,需要尽可能快速实验各种想法,并不一定要一定能运行。

并把其中一些删除。

找出社会化方面

错误的实体或无法为对象提供足够的交互支持,会使站点非常空洞和无目的性。

内容大小,私有性,和细节是三个重要方面

主语、动词和对象

对于社会化网站,最重要的是个人,以及他的内容和朋友。

所以企业网站需要重新考虑与顾客的关系,不要像过去那样将个人简单当作用户来看待。

很多站点缺少非站点创建者创造的社区交互,因而失败。

社区通过自身内容能够达到更高的高度。

活动理论(ActivityTheory)

对于角色的详细描述需求已经过时,我们应该专注于基于个体行为的更为通用的设计。

这一方法与敏捷方法一致。

不要考虑过多的个体差异。

9包括所有的人

应该在设计早期考虑不同权限人员访问个人主页的差异

10快速实现想法

好的应用来源于通过多种方法解决同一问题,并且这些方法需要是可视化的和可交互的。

长时间的计划阶段,使得在版本一还没有来得及测试,产品经理或设计人员就已经设计好了版本二,开始版本二的开发。

这导致项目停止下来的代价过大。

向别人解释你在做什么

创建服务功能文档

计算内容大小

11不要使你的用户接受过多的活动信息

12执行搜索

使用不同的内容类型能够完善搜索工具,分别为人、出版物、论坛、时间创建索引,创建不同的索引页面。

Solr等搜索服务器的搜索结果类似与Google,结果都是一条条的,并且很难式样修改。

会员搜索

高级搜索

13理解活动和观点

盈利是重要的,但是搭建更为长久的关系,带来更多的销售更为可观。

提供双向的交互服务,这样人们愿意来到你的网站,分享他的学习乐趣。

烹饪书籍

通过搭建原型,理解将菜谱放置在网上的工作流。

在原型阶段思考互联网上的食谱怎么样?

怎么处理复制品?

等问题,将帮助你理解这是不是一个产品或者仅仅昙花一现。

记住乐趣

创建一些令人感到愉快和满意的东西,使人们更愿意留下。

应用应该使人们首先感觉到好,而不是首先认为这个产品好

14可以借鉴的十二个观点

15小结

创建一个小且受关注的,包含清晰的社会化交互的产品,是一个好的起点。

他是否包含核心社交化对象?

和与之相关的交互方法?

第八章

第九章社区结构、软件及行为

1社区结构

出版者主导类型

兴趣主导类型

产品主导类型

2支持社会化交互

基于非文本的社会化交互

轻量级社区中,成员间基于共享内容对象的社会化交互主要有匿名和实名两种。

匿名模型主要用于内容比关联的人更重要的情况。

实名交互常用于一个人与人之间相互认识的小组,或标识内容的所有权。

使得游戏社会化

游戏是另一种发展社区的好方法。

内容创作和聚集

微博

由于微博消息限制字数,使得它能够在各种终端上发送和接受,每个人都能找到一个适合他的生活方式的媒体。

另一方面,微博使得你能几乎实时参与到你朋友在做什么和在想什么。

处于博客和电话/IM之间。

适用于闲聊和有宽阔交际圈的人。

3与谁分享,为什么

同行竞争使得交互畸形

社会性交互一般都存在于低投入的活动中,因为它们更没有价值。

很有价值的,未发表的内容是不会被分享的,即使分享也至少需要使用论文引用标识。

谈论一些易于讨论的事情

如果已经有很好的教材或者需要实际行动实践,在站点中,它将很难成为核心的社会化对象来讨论。

4他们如何共享

使用正确的缺省设置非常重要

适度保密

生活串流和社会化聚集

生活串流上的冗余服务

一种快速发展的简单核心

成功的社交网站在于他们对各自的核心用户的合理评估和站点发展计划。

并且他们能够提供满足他们社区需求的特征功能。

他们都是从一个相对小,但有用的想法,关注某一具体人群开始的。

关注于支持的人群和活动非常重要。

因为这使得站点具有一致性和目的性。

联邦VS集中

另一类软件类似于联邦制的微博服务。

它允许你在你自己的服务器上创建自己的软件实例。

这类软件基于OpenID实现,能够方便实现个人数据的迁移

5社会化软件集

6群组

群组的形式

群组应该有其成员的列表,用以支持人们查找。

Messageboard在这方面做的不好。

若允许社区自由创建群组,只有10%~20%的群组能够存活下来。

群组为你的社区提供了一个重要的聚集焦点,并帮助形成从“这些人是谁”到“这是一些和我类似的人”的过程。

群组会话

Messageboard上的会话

需要尽量减少询问一个已经被提问很多遍的问题。

应使得人们很容易查找到答案。

标签、文本分析。

使得一个新问题与一个已有问题匹配,比找到问题的答案容易。

高亮FAQ页面

一个非常人性化的元素是个人信息页面。

其中显示他对社区的贡献比其他的更有价值。

创建messageboards

基于主题的标签内容自动完成能够帮助控制标签数目的增加。

群组共享工具

通过共享促进进一步的交流。

群组协作工具

以社交平台为基础

Ning和白标社会化软件

成长中的社会化网络

一个良好定义的活动是许多成功的社会化网络的核心。

社会化网络包括两个相关方面:

一群朋友和同事,一些共享的兴趣或活动或内容。

前者是当然的,建立一个网络化地址簿是微不足道的。

真正困难的是确定支持社区希望参与活动的正确方法。

7小结

你需要你创建这一社会化应用的动机,以及如何使社区中的成员能够交互起来。

第一十章社会化网络模式

1共享社会对象

2关系和社会对象

第一十一章

第一十二章

第一十三章

第一十四章

第一十五章

第一十六章社会化应用开发实战

一个复杂的系统总是由一个简单的系统演变而来的。

一个从零做起的复杂系统是无法工作的。

1小即是好:

一种重复循环

简单系统比复杂系统更容易协调和运作。

但系统发展过程中,新添加到功能很可能掩盖了当初的想法。

初始阶段,一般只需要一个主要内容类型和两至三种活动。

其中的一种活动处于主体地位,其他的处于支持角色。

需要限定软件平台的范围,不应该追求每一个有趣的主意。

Flickr在这方面做的很好,仍然专注于人和照片。

2社会化应用与普通web应用的差异

最大区别:

社会化应用上的内容属于网站使用者,而不是网站拥有者。

社会化应用中人与自己发表的内容是密切相连的。

内容是属于他们自己的。

社区能够影响站点的建设,但无法详细描述该怎么做。

站点在完成前,不应该建设成的庞大而复杂。

相关的协议、API和框架发展很快,固定的开发计划是很脆弱的。

3敏捷方法

原型和用户界面设计间的平衡非常重要。

原型并不需要精确的最终实现界面。

最终的实现是用户体验和技术实现的叠加。

4部署和版本控制

测试运行中的版本是可能的,但应该有条件的运用

一种部署管理的改进版本,允许站点同时存在两套代码。

通过过滤机制,实现不同用户访问不同的代码。

这能够带来更为快速的开发。

需要整个团队的协调,以及成员知道整个项目的意图。

测试驱动开发

自动化Build使得管理更简单

运用开发工具到社会化应用项目

大多数人喜欢被关注的感觉,因此快速更新应用很重要。

社区的管理比bug的修改更重要。

灵活的开发你的社区

可以通过随机抽取各种用户或创建单独的小组的来在功能正式发布前评估新的功能。

5基础设施和Web运营

运营管理

6设计社会化应用

设计不仅包括界面,而且包括它是如何工作的。

使用原型而不是图片

使用用例支持开发

采用好习惯进行设计

站点在CSS无法载入的情况下,基础的html页面也应该能够运行。

没有图片,也应该没有问题。

通过javascript方法在页面添加一层完成内容编辑比跳到一个新页面好。

另一个好习惯是提供有用的出错页面。

404错误页面提供基本的网络地图和功能搜索。

500错误页面描述错误是怎么发生的。

在站点早期开发阶段,一个能够返回给开发团队的反馈表单是很有用的。

7你的应用应该有自己的视角

需要认真考虑每一个引入应用的特点。

应该专注于某一点。

Flickr将90秒内的微视频引入应用,而不是普通长度的视频,这样原有的图片快速浏览的特征并没有被打乱。

8代码审查如何减少问题

软件开发需严格遵循软件开发规划。

在比较强的社会化应用软件组中,通过带领开发组或QA组来找bug更不常见,各个开发人员修改自己的开发模块

需要在创建新功能前,修改好bug.

命名的权利和责任

Restful

9请不要只考虑web界面

i18n,l10n和utf-8

10bug跟踪和问题管理

bug常与开发环境和运行环境有关。

跟踪工具

将跟踪工具与项目管理工具以及代码版本管理相关联。

使得问题与版本相关,开发过程更加透明。

只要从工具页面就可以查看到问题在某个版本,某个分支是否解决,而不需要去分析代码。

问题优先级

Urgent:

crashingbugs;

allotherworkstopsuntiltheproblemisfixed.

Importantisreservedformainnewfeaturesandbugsthatyouneedtodealwith.

EverythingelseisRoutine.

从bug中识别功能需求

识别能力是开发人员的关键技能。

防止新需求扰乱开发。

社区一方面能在鉴别bug方面有很大帮助,另一方面提出一些新想法,使得你的应用和服务成为最为有用的产品。

这些想法主要包括你没有提供的新功能,希望从前开发以及停止开发的功能以及可用性问题。

一个开放的路线图和缺陷跟踪工具非常重要,尤其是在拥有大量社区开发者的时候。

处理安全性问题

11快速用户界面

快速原型

通过编程语言控制台,使用脚本语言,快速开发代码级原型。

扩展及消息架构

一种简单的方法:

通过最小的代价,使得更新后的页面返回到发送请求的用户客户端,其他的更新通过队列的方式异步完成。

Ajax协助扩展

隐形的更新排队

实时VS接近实时

推VS拉

当一个服务需要从上百个feeds源中查找更新,这对于双方来说都是低效的。

使用消息队列来推送内容更为合适。

消息队列对大规模的公共API使用并不合适。

XMPP消息

IM工具支持的协议

急速扩展

通过独立的云服务,如EC2,来处理统计数据以及增加运营峰值状态下的负载是非常好的。

性能测试

测试数据质量非常重要。

任何一个“吃”内存的进程都是问题。

语言无法拓展

开发语言选择很重要。

应用的基础架构,如缓存设置等,比开发语言更重要。

缓存和碎片

一些关于应用扩展到内容,如横向,纵向

快速和轻量级的数据存储

NoSql相关内容

12完成搜索

13用户数据的识别和管理

创建账户的三种常用模型:

1.邮箱注册;

2.通过其他站点来提供身份认证;

3.使用OpenID

邮箱注册缺点:

需要同时记忆密码;

若在多个网站使用相同的密码,安全性将削弱。

避免密码攻击的几种方法。

用于身份认证的OpenID

使用OpenID本身对用户注册没有什么意义。

但通过和Google,yahoo!

等帐号统一帐号登录对站点是非常有帮助的。

注册有什么要求

一步骤即可完成。

需要在应用中提供提示或在其他部分允许用户提供更多的个人信息。

对于大部分网站来说,这并不是必须的,但是对于社会化软件更专业的领域,这一财富意味着这一站点能够持续发展。

例如LinkIn通过显示个人资料完成百分比,来鼓励完成,并避免恼人的提示。

当一个用户选择离开

删除帐号的工作需要非常谨慎。

注意点:

用户能够方便的删除帐号

用户能够方便的获得一个文档,包含他在系统中发布的主要内容和联系人。

在系统里保留他对别人内容的评论

系统里标注他的帐号已经被删除

考虑在系统里是否真正删除帐号

确定这一失效帐号新人能否使用

管理用户

将员工帐号和用户帐号分离,是一种更为安全的方法。

这种方法更容易处理:

员工的入职与离职,标识内容是由员工发布的(对于论坛尤其重要,比标志位方式更清晰)。

更容易避免外部攻击。

通过OAuth访问内容

用于应用API的安全访问

14联邦

未来的社交网络将由大量的应用实例组成。

实现联系人添加和信息更新跨越多个服务间实现。

通过一个帐号管理多个服务。

还没有一个具体的解决方案。

15使你的代码环保且快速

在HTML页面生成过程中,专注于仅仅优化后台应用代码是不够的。

客户端单纯HTML页面的下载时间是整个页面下载完成时间的一小部分。

解决这个问题主要需考虑:

缓存的合适,以及最小化每个页面需要下载的文件数量

创建尽可能多的异步队列能够更快的响应请求。

更新操作需要立刻执行。

统计和无用户的聚合过程不需要实时执行。

可以租用EC2

16创建管理工具并收集集体智慧

通过一些统计工具,管理和监控系统中进行的核心活动。

确定新报名率,对象创建,成员状态。

禁止和阻止一些事情。

在站点的发展过程中,逐步开放管理界面部分。

一个能够给出详细用户行为数据的工具非常有用。

显示一个用户使用站点的典型案例非常有帮助。

并且能够轻易的获得

社会化网络分析

行为的时间戳非常重要。

这些工具用于分析有时间记录的朋友信息。

对你现在站点上的朋友关系建模。

例如若你所在的社区10%的活动已经处于一个不活跃的状态,你可以开发新的功能,鼓励他们参加进来。

机器学习和大数据集

信用系统

17小结

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1