齐齐哈尔信息港

当前位置:

互联网产品架构设计Gamificatio

2019/05/14 来源:齐齐哈尔信息港

导读

1 : Gamification:互联产品的游戏化设计思路概念在2011年的GDC大会上,Gamification(游戏化)作为1个

1 : Gamification:互联产品的游戏化设计思路

概念

在2011年的GDC大会上,Gamification(游戏化)作为1个热门新词被提出来。简单来说就是将游戏的思惟和游戏的机制应用到其他的领域,来引导用户互动和使用的方法。

它能在互联、医疗/健康、教育、金融等领域中影响到用户使用时的心理偏向,进而增进用户的参与与分享。 简单的说,它可以用来鼓励人们做1些通常认为无聊的事, 例如完成调查、购物或浏览页等。

Wiki:Gamification

为何要关注它

我们设计完产品,做完用户测试确保它好用, 由运营方来加入运营方案,然后祈祷用户来使用。事实上,在用户使用时我们缺少有效的引导、鼓励手段。

我们先来看两个例子,第1个来自1个叫DevHub的自助建站服务:

DevHub 初发起是09年2月。很多用户都是看客(僵尸用户),用户建立了自己的主页,但不会花时间(或不知道该如何)为这个站点添加栏目、内容和做优化,更不会为增值服务的功能花钱。7月9日,他们推出了Gamification优化后重新设计的版本,通过任务、嘉奖、成长等机制来引导、鼓励用户。

在Gamification优化之前,大约只有10%的用户建立好了自己的站,但是现在,大约有80%能完成。原来,用户注册后只做1⑵个操作就不再继续了,现在增长了9倍。单个用户平均收入也增加了4倍。现在他们每周增加40000名用户,新增4800个站。

另外一个例子,来自美国电视台的数字科技副主管 Jesse Redniss:

新节目Psych Show站上加入了游戏化设计的元素以后,该站的浏览人数增加了130%。另外,回访的阅读者人数也增加了40%。大部份阅读者在该站的停留时间也相对增加,从本来的4分钟增加到了28分钟。

现在,我们回头看1看设计的目标,简单的理解,包括了:

产品数据表现提升(UV、参与度、活跃度、回头率)

用户体验提升(满意、享受、乐趣)

商业ROI 提升(支付成功率、 Return on Investment )

从上面的例子可以看出,游戏化可以在这些方面有很好的表现,也就是:可以用游戏化设计的方法来帮助我们达成设计目标。

注:相干站建设技能浏览请移步到建站教程频道。

是甚么让人着迷

虽然Gamification作为1个新词刚刚被提出,但其实在生活中,1些商业活动早已在利用1些类似的方法了,例如:信誉卡积分兑换、航空公司里程积累、各种商家的会员卡计划,等等。只是,它们的设计常常看起来其实不那末有趣,所以并没有体现出应有的价值。

但是我们知道,游戏是确切会改变人们的行动和习惯的。有些游戏(例如魔兽)中的职业玩家,每天有10个小时以上在玩游戏。而我们身旁许多人到今天还在为之着迷的农场(偷菜)游戏、植物大战僵尸,都有大量的铁杆粉丝。在偷菜风头盛的时候,乃至有玩家半夜设置闹钟来偷菜。还有的使用EXCEL表格来记录好友的果实成熟时间。事实上,民 玩游戏比例高达 70%,并且乐此不疲,游戏已影响了人们的行动和生活。

是甚么吸引了人们做出这样疯狂的举动呢?这里罗列了部份的因素,它们在上述让人入迷的游戏中发挥了重要作用。包括但不限于:

约定机制

例如商场在某个特定时间点打折

嘉奖机制

做某事,得到1些嘉奖,这个很常见

成绩机制(身份、搜集)

例如有人喜欢搜集麦当劳玩具,有人喜欢集邮

进度机制(完成、升级)

1个做的不那末有趣的例子:学校的年级和升学

自我表现

喜欢打扮自己的工作间/小窝,打扮自己

社区(助人/合作、竞争)

包括与他人合作完成某事,或在某件事情中与他人竞争

方法:1些可以利用的元素和规则

在了解了游戏中让人入迷的机制以后,如何把它们利用在互联产品设计中呢?这里有1些你可以参考的设计元素和规则:

新手引导

升级/进度条

搜集

角色

排行榜

礼物

虚拟货币

竞争

积分

注:相干站建设技能阅读请移步到建站教程频道。

下面是两种多见的方法,结合游戏中和站产品中的例子体会1下具体用法。

注:相干站建设技能阅读请移步到建站教程频道。

例子:自助建站服务 DevHub

,我们来看1看本文开头提到的DevHub,如何用游戏化设计来帮助引导用户,并且把枯燥的建站行动变成有趣的事情。

新注册用户的介绍页:由机器人角色介绍站点的特点和功能。

建站主界面:由于较高级的络用户基本不会使用这类产品,所以该产品的定位主要面向低级用户,但是点开下面的大图可以看到,即便是优化以后,操作还是比较复杂的。但是站利用左下角的浮层提示用户现在应当去做的任务并且用经验值、金币来鼓励。这是1个亮点。

市场界面:当用户提升了级别并有足够的金币以后,他们可以在市场购买更高级的设备来让他们的站点更强大、更漂亮。

用户的控制面板:有趣的图形化管理,包括各种醒目的鼓励元素。

排行榜界面:1个人玩终究会没意思的,排行榜让用户可以不断的挑战极限。通过排行榜,用户还可以去那些做得好的人站上去看看有什么可以学习的。这很赞。

嘉奖的摆设柜:系统会给用户设定1系列的发展线路,当用户在某方面(例如SEO)到达了1定的要求以后,就会取得1个嘉奖并展现在这里。它很有趣,它告知用户该向哪一个方向努力,并且及时的嘉奖他们。

1些需要注意的地方

有明确的业务目标。游戏机制用来驱动。

游戏机制直接融入产品实际使用进程中,而不是1个附加的东西。

这方法仅是催化剂,不是灵丹妙药。产品本身的质量必须有保证。

文章来源:UCD大社区

注:相干站建设技能浏览请移步到建站教程频道。

2 : 互联产品不要被技术绑架的10大注意事项

不可能的;有难度的;你懂不懂技术的;这个功能要放在2期才能做;要做可以但需要时间;把那个项目停掉我就给你做如果常常听到技术这样说,那你的产品很有可能已被技术绑架了,接下来你想再多的功能,只要技术说不可以那就没戏。

1、正确选人

做站的技术开发,必须是个技术牛人,要像科学怪人那样的人,为实现1个功能可以两天不睡觉的主。千万不要找1个所谓的高级架构师之类的高人,其实这类人连简单的功能也不会开发了。

2、严禁不可能

如果1个程序员说不可能的,那他应当去屎。做技术的就是把不可能变成可能, 如果连技术都说不可能,那1定是登火星。技术团队内1定要建立把疑问杂症解决为荣的文化。

3、打破帮派

程序员的性情大多比较内向,有抱怨不太会表达,通常几个人比较容易构成帮派,通过手中的技术权利反过来控制站,随意手抖1下就能够让站挂几分钟。不要太不尊重程序员,也不要太尊重程序员。

4、考核目标

传统软件的程序员应当先考核稳定性再考核开发速度,互联的程序员应当先考核开发速度再考核稳定性。道理很简单,互联是抢时间的游戏,谁快谁就赢,而出现1些小故障可以修复,发布到友感受只是5分钟之内的事。

5、选择语言

用PHP还是用JAVA还是用XXX,从技术上讲其实都各有所常,但是从战略层面,要从人力资源的角度去选,那种人好招就用那种。如果选了1门很新的语言,结果程序员很难招或很贵,成心义吗?

6、服务器

这是站的命根子,由独立的部门管理。和财务部门1样,很多部门可以用钱,但终究钱是财务部统1管理的。如果让程序员去管服务器,意味着程序员做不好没法换人,换人就有可能数据丢失。

7、拖工期

理清开发流程、做好计划是程序开发时间控制的基本工作,但是也有可能被滥用。明明1个月可以完成的,程序员可以说出1百得理由,把项目拆成3期,时间拖到1年。等到了1年又可以说由于你修改了功能又要半年。

8、高压高薪

愿意做程序员的很少有富2代,他们是站建设的工人,但不要想通过便宜的薪水控制本钱,那怕他今天要的工资很低,技术1但成熟1定会有更高的薪水挖他。很多程序员晚上还接私活赚钱,他们知道这是吃青春饭。还不如给他们3个人的活两个人的薪水。

9、QA测试

传统软件是必须要用QA测试,由于软件打包后给用户,如果出现问题是很难升级回收的。互联程序的好处就是友人人都是QA测试,办公室摹拟不出上百万不同电脑的阅读效果。修1个BUG几秒钟就能够发布,修错了几秒种就可以恢复。

10、技术创新

在中国现阶段几大语言都是老外发明的,技术上的创新不过是如果把程序写的更短,效果更高,更省服务器。如果1个程序员总是在想如何做出1个可以取代运营的人工智能程序,那1定是白天梦或是大忽悠。如果有这类技术,美国人第1个挖你去FBI了。

作者:董释德

文章来源:董释德-非IT评论员 转载请注明出处链接。

3 : 平台站架构设计之我所见

从架构设计师的角度来看,架构就是1套构建系统的准则。通过这套准则,我们可以把1个复杂的系统划分为1套更简单的子系统的集合,这些子系统之间应当保持相互独立,并与全部系统保持1致。而且每个子系统还可以继续细分下去,从而构成1个复杂的企业级架构。

1 选择技术方案和物理架构

如何选择技术方案和物理架构,对很多刚接触平台站研发的人来说这多是个头疼的问题。这些问题的源头很简单就是能否提高开发效力,使平台具有高性能高负载性。就我遇到的常见的有这么几个问题:

a) 开发语言和数据库

1说到开发语言和数据库,很多人便开始做语言的比较,多见的辩论有:和java哪一个好,解释性语言和编译性语言哪一个好等。我个人觉的关键是你和你的团队善于的开发语言和数据库是哪一个,古语有云:工欲善其事,必先利其器!,趁手的开发语言和数据库有助于事半功倍。试想如果你选择了1个其实不很熟习的语言,也许这个语言和数据库在基础性能上的确比你掌握的语言好,但是在研发进程中学习曲线肯定长。而且遇到问题的时候由于不熟习的缘由,浪费更多的时间去寻觅解决方法,而且找到的方法不1定是的,说不定还不如你自己用熟习的语言解决来的快。

也许有朋友会说:这几种开发语言和数据库我都熟习,那末就要看你对这几种开发语言和数据库的熟习程度了,对各种开发语言和数据库的特性了解的越深入,越有助于提高开发效力。而且目前主流的开发语言和数据库都提供性能调优,只有深入了解了开发语言和数据库的特性和原理,那末性能调优就很容易。

个人觉的重要的就这两点,开发效力和性能。

b) 成熟框架还是自己实现

目前主流的开发语言的使用者中有很多先辈都提供了他们自己总结实现的框架,比如JAVA中的S-S-H组合,PYTHON的DJANGOO等。我个人的1些经验是,尽量使用开源的成熟框架,由于平台研发初期使用成熟的开源框架,能提高开发效力,并且在质量上有保证。我曾接手过1个平台的改版,框架是前面开发人员自己写的,里面的1些设计思想不是很成熟,致使平台在负载增高后性能很差,整改起来很麻烦,只能1点1点的分离出来,耗费时间和经历。

有的朋友可能会问甚么才是成熟的框架,个人总结的几点:

1 能提供使用指南,比如 COOKBOOK, USE GUIDE等。有这些提供,那末入门使用变的容易,也方便保护,而且有助于深入了解其特性和原理。

2 有官方支持,比如官方讨论社区,邮件列表等,并且有BUG搜集处理机制。有句话叫大树底下好乘凉,有了官方支持,当使用进程中遇到问题的时候,直接就能够通过查找前人的使用心得和问题来解决问题,遇到BUG的时候,提交上去,也能找到解决之法。

3 官方在不断的更新发布稳定版本。这1点很重要,官方如果及时帮你解决目前已知的或未知的BUG,那末对使用者来讲,就没甚么后顾之忧了,如果官方停止更新了,那么我建议还是早点换下家吧,由于如果这个框架好,那么肯定会愈来愈好,官方也会不断的更新它。还有就是稳定是第1位,可以在不影响生产环境的情况下进行无缝升级更新。

4 身边使用者很多,常常能看到相干的讨论或总结。目前很多成熟框架都是国外开发者发布的,如果使用者E文不好也是个讨厌的事情,那末如果身旁有很多一样的使用者和很多讨论,那末对使用者来说是种福音,共同探讨和学习。

那么除此以外是开源的框架,平台初期访问量不大,因此对性能的要求不高,成熟的框架的使用都不会出现甚么问题。当访问量急剧增高以后,那末性能要求也变高,1些框架中隐藏的问题也因此出现。这时候候如果是开源的框架,使用者可以深入了解它的源代码,洞悉其实现机制,根据自己的实际情况进行调优。如果不是那末使用者也只能改变方向去解决问题,条条大路通罗马。

c) web server/db server/cache server 相干

在架构设计中web server/db server/cache server是很重要的1点,我个人觉的这1块必须是使用具有前瞻性,易配置,能监控和保护的产品,总结的几点:

1 丰富和深入的配置选项。如果能提供丰富和深入的配置选项,那么在安全和性能调剂上可以很方便的进行操作,并且不中断实际的生产环境。

2 基于高并发模型。比如这几年热门的基于epoll的nginx,可以有效的减少连接处理时间,增大同时并发数。

3 支持负载均衡和要求分发。当平台的访问量增高以后,单台服务器肯定是很难支持,这时候候就需要增加服务器来分担压力,这时候候server的负载均衡和要求分发就很重要了。

4 高效的缓存机制。高效的缓存机制可以帮助平台提高负载能力,减少重复资源的读取和处理时间。比如用于小文件缓存的SQUID,VARNISH,用于数据库缓存的memcached等。

5 实时的状态监控机制。实时的监控状态报告,可以有助于平台保护人员迅速了解平台性能运行状态,根据状态进行调剂。

如果是开源的那就更好了,可以深入了解其源代码,并根据自己的实际需要进行配置和定制。

d) 操作系统

选择适合的操作系统,个人觉的主要是稳定安全,易管理和保护,易监控。稳定安全的操作系统1般官方会延续的发布补钉和新版本,解决BUG和漏洞等。并且官方或第3方会不断的提供新的管理保护监控工具,并且能让管理保护人员通过编写脚本来保护管理。而且适合的操作系统能让研发人员充分利用其特性,发挥平台的性能。

f) 物理架构

这里的物理架构是指服务器的搭建方式。有的朋友可能资源有限只有1台服务器,有的朋友资源充分有10几台服务器或更多,我个人觉的这都不是问题。平台早期的话,我想大部份访问量都不高,web server/db server/cache server放在1台服务器上都没问题。但是自己心里能预估1下这个平台会发展到什么样的范围,在做架构设计的时候,依照事前预估的来决定怎样做物理架构,并为以后的架构升级做准备。说到这里,想到前百度架构师雷鸣说过的1句话,当你的会员数到达目前的5倍或10倍的时候,架构就要升级。

2 平台研发

前期做好了技术方案,就进入到实质研发进程中来了,个人感觉平台站的研发有别于传统的IT项目研发,由于之前就是客户/需求分析人员/美工之间进行交涉,而现在平台站研发会多接触1个角色叫产品,产品决定了的平台站是甚么样的,有甚么功能,每个功能的流程和用例是甚么样子的,也就是原型设计。并且在研发人员实现以后,还要由测试人员进行测试。关于原型设计,请看我的另外1篇文章《项目需求原型设计》。

在上述进程中,产品会常常要求研发人员:某某功能是这样的,你赶快给我实现并解决。这个功能不对,要改。那个功能出现问题,要改,而研发人员可能正在忙着其他功能的实现,因此很容易产生冲突。在此我推荐使用敏捷开发方式,设立短的发布周期进行迭代开发,产品提出来的问题统1在1个周期内解决,到下1个周期1起发布,到下1个周期再进行下1周期的功能改进和BUG修正。并使用JIRA这类成熟的项目管理系统进行管理,为之前的更改留下历史,总结经验。

那么在正常的研发进程中,特别是团队研发,我个人觉的需要注意的几点:

1 适合的开发工具。还是那句话工欲善其事,必先利其器!,使用适合的开发工具和插件,能提高开发效力,节省开发本钱。团队使用统1的开发工具,可以减少出错的几率,避免版本冲突等。

2 如何控制代码质量。由于团队里大家的水平有高有低,所以团队研发的时候,需要去建立固定的开发规范,比如:命名规范,代码包援引规范等。当某个人解决某个功能的时候,为了确保代码质量和减少出错概率,能画出流程图和配上设计意图说明,来进行讨论肯定,同时也能够帮助新人快速成长。

3 需要引入新框架。有时候,某个成员会觉的某某框架的新特性非常好用或非常合适手头的问题,那么就想引入这个新框架,我的建议,在充分了解的基础上来决定,不能由于某个特性而引入1堆用不到的特性,那样会让项目代码显的冗余。

4 知识总结和培训。当某个成员遇到问题,并解决后或学习到新东西的时候,无妨拿出来大家1起探讨1下,说不定就有助于提高平台的性能,为大家提供更好的设计思路。

3 架构优化

过早优化是万恶之源,所以关于架构优化,我放在研发完成并上线以后来说。个人觉的没有百分百可用的架构,得看你实际的业务流程和运行情况来进行优化。当你运行了1段时间后,搜集到1定的数据,找出性能的弱点落后行针对性调剂和优化,当平台的负载强度到达1定程度,就得立即着手做架构升级。

有的朋友会问,有时候站就是稀里糊涂的变慢,但是不知道从何下手怎样办,或凭经验改改这个改改那个选项,好了1点但好的不完全。我的经验是从数据开始,从外围开始画圈,找到源头。先从外围开始搜集日志,比如access_log访问日志或sql_log数据库操作日志,找出访问多的10条日志和履行时间长的10条日志,然后根据日志去反查究竟是什么引发的操作,然后1条条的解决。如果解决不了,那末就斟酌重构。其他问题解决方式跟这个差不多,就不赘述了。从我自己已有的经验来看,常常就是由于几个功能点的恶化,引发了整体的性能变差。

所以在研发的时候,功能点的实现要好好斟酌,前端部份,页面,图片等的大小和有效缓存,后真个局部数据和全局数据的缓存高效利用,数据库层SQL语句尽可能避免跨表查询,数据库索引的利用等。

4 其他相干

存储

当平台站的访问量不断增长的同时,数据也会随着不断的增长,所以初期做好数据如何存储的方案非常重要。

现在比较常见的是HASH URL,根据文件名的HASH来选择存储不同的目录,比如_x 那么就存储到 2009/10/14/a/_x这样的目录下,方便以后根据目录来划分服务器。

搜索

当平台站的访问量不断增长的同时,数据搜索也变成了1个问题。肯定有朋友会说,直接数据库模糊查询有甚么问题,你试想当你的数据表里有几百万数据你用like没法用索引,那就是全表扫描,拿得花多少时间,1个人查询还没问题,那几百个呢,那你的平台不就歇菜了。还好现在已有了成熟方案Lucene,只要依照它提供的接口去实现,你就能够使用。

白带多白带黄什么原因
产后流血不正常怎么办
盆腔炎的早期症状
标签