当前位置:首页 » 网页前端 » web用户行为收集
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web用户行为收集

发布时间: 2022-06-11 19:29:09

A. web开发时,用户行为记录日志放到数据库和文本各有什么优缺点,大多数项目用哪一种,你比较推荐哪一种

我个人认为没有太大区别。
数据库存储的方式更加容易汇总查询。这种方式需要建立独立库,耗费服务器资源,进入数据库的条目也会出奇的多。。。
文本的格式只能是宏观的去查看下。不过可以自定格式,分时间段记录。查找起来也是很方便的。

大多数项目用的应该都是文本格式。这跟项目的性质有关系。
个人推荐 文本存储。

B. 什么是用户行为分析怎么做用户行为分析

一、什么是用户行为分析?
用户行为可以用5W2H来总结:
Who(谁)、What(做了什么行为)、When(什么时间)、Where(在哪里)、Why(目的是什么)、How(通过什么方式),How much (用了多长时间、花了多少钱)。
用户行为分析就是通过对这些数据进行统计、分析,从中发现用户使用产品的规律,并将这些规律与网站的营销策略、产品功能、运营策略相结合,发现营销、产品和运营中可能存在的问题,解决这些问题就能优化用户体验、实现更精细和精准的运营与营销,让产品获得更好的增长。

二、为什么需要用户行为分析?
在PC互联网时代,网民的年增长率达到50%,随便建个网站就能得到大量流量; 在移动互联网早期,APP也经历了一波流量红利,获取一个客户的成本不到1元; 而近几年随着流量增长的红利消退,竞争越来越激烈,每个领域均有成百上千的同行竞争,获客成本也飙升到难以承受的水平,业务增长越来越慢甚至倒退。

图:互联网行业竞争越来越激烈
在如此高成本、高竞争的环境下,如果企业内部不能利用数据分析做好精细化运营,将产生巨大的资源浪费,势必会让企业的运营成本高涨,缺乏竞争力。 对于互联网平台来说,传统的数据分析主要针对结果类的数据进行分析,而缺乏对产生结果的用户行为过程的分析,因此数据分析的价值相对较局限,这也是为什么近几年很多企业感觉做了充分的数据分析,但却没有太大效果的原因。
通过对用户行为的5W2H进行分析可以掌握用户从哪里来,进行了哪些操作,为什么流失,从哪里流失等等。从而提升提升用户体验,平台的转化率,用精细化运营使企业获得业务增长。
三、如何采集用户行为数据?
用户行为分析如此重要,为什么互联网公司中能做好用户行为分析的凤毛麟角?主要是原因是数据采集不全面和分析模型不完善。
1.如何高效采集用户行为数据
传统的数据分析因为数据精细度不够和分析模型不完善等原因,导致分析过于粗放,分析结果的应用价值低。而我们要想做好分析,首先必须要有丰富的数据,因此要从数据采集说起,传统的用户行为数据采集方法比较低效,例如:我们获取用户的某个行为数据时,需要在相应的按钮、链接、或页面等加入监测代码,才能知道有多少人点击了这个按钮,点击了这个页面。这种方式被称为“埋点”,埋点需要耗费大量的人力,精力,过程繁琐,导致人力物力投入成本过高。
在移动互联网时代,埋点成了更痛苦的一件工作,因为每次埋点后都需要发布到应用商店,苹果应用商店的审核周期又是硬伤,这使得数据获取的时效性更加大打折扣。由于数据分析是业务发展中极其重要的一个环节,即便人力物力成本过高,这项工作仍然无法省掉。
因此,我们也看到国内外有一些优秀的用户行为分析工具,实现了无埋点采集的功能,例如:国外有Mixpanel,国内的数极客在WEB、H5、Android、iOS四端都可以无埋点采集数据。通过无埋点的采集,可以极大的增强数据的完善性和及时性。
2.如何精准采集用户行为数据
有些核心业务数据,我们希望确保100%准确,因此还可以通过后端埋点的方式作为补充,这样既可以体验到无埋点带来的高效便捷,又能保障核心业务数据的精准性。数极客在数据采集方面支持无埋点、前端埋点、后端埋点以及数极客BI导入数据这四种方式的数据整合。

四、如何做好用户行为分析?
首先要明确业务目标,深刻理解业务流程,根据目标,找出需要监测的关键数据节点,做好基础的数据的收集和整理工作,有了足够的数据,还要有科学的模型,才能更有效的支持分析结果。

上一代的用户行为分析工具(更确切的说法应该是:网站统计或APP统计),主要功能还是局限于浏览行为的分析,而没有针对用户的深度交互行为进行分析,因此分析价值相对有限,目前大部份互联网从业人员对用户行为分析的印象还停留在这个阶段。

我认为要做好用户行为分析,应该掌握以下的分析模型:
1.用户行为全程追踪,支持AARRR模型
500 Startups 投资人Dave McClure提出了一套分析不同阶段用户获取的“海盗指标”这套分析模型,在硅谷得到了广泛应用。

AARRR是Acquisition、Activation、Retention、Revenue、Refer这个五个单词的缩写,分别对应用户生命周期中的5个重要环节,首先要基于用户的完整生命周期来做用户行为分析。
1).获取用户
在营销推广中,什么渠道带来的流量最高,渠道的ROI如何?不同广告内容的转化率如何,都是在这一步进行分析的数据。
来源渠道是获客的第一步,通过系统自动识别和自定义渠道相结合,分析每一个来源渠道的留存、转化效果。网站的访问来源,App 的下载渠道,以及各搜索引擎的搜索关键词,通过数据分析平台都可以很方便的进行统计和分析,利用UTM推广参数的多维分析、通过推广渠道、活动名称、展示媒介、广告内容、关键词和着陆页进行交叉分析,可以甄别优质渠道和劣质渠道,精细化追踪,提高渠道 ROI。
通过渠道质量模型,制定相应的获客推广策略:

图:渠道质量模型
以上图形中的所示渠道为示例,渠道质量也会动态的变化。 第一象限,渠道质量又高流量又大,应该继续保持渠道的投放策略和投放力度; 第二象限 渠道的质量比较高但流量比较小。应该加大渠道的投放,并持续关注渠道质量变化; 第三象限 这个象限里渠道质量又差,带来流量又小,应该谨慎调整逐步优化掉这个渠道; 第四象限 渠道质量比较差,但是流量较大,应该分析渠道数据做更精准的投放,提高渠道质量。
2).激活用户
激活用户是实现商业目标最关键的第一步,如果每天有大量用户来使用你的产品,但没有用户和你建立强联系,你就无法进行后续的运营行为。

3).用户留存
如今一款产品要获得成功的关键因素不是病毒性机制或大笔营销资金,而是用户留存率。开发出吸引用户回头的产品至关重要。 Facebook平台存在“40 – 20 – 10”留存法则。数字表示的是日留存率、周留存率和月留存率,如果你想让产品的DAU超过100万,那么日留存率应该大于40%,周留存率和月留存率分别大于20%和10%。
留存是 AARRR 模型中重要的环节之一,只有做好了留存,才能保障新用户在注册后不会白白流失。这就好像一个不断漏水的篮子,如果不去修补底下的裂缝,而只顾着往里倒水,是很难获得持续的增长的。
4).获取收入
实现收入是每个平台生存的根本,因此找到适合自己的商业模式至关重要。根据不同的业务模式,获取收入的方式也不同:媒体类平台依靠广告变现,游戏类依靠用户付费,电商类通过收取佣金或卖家付费的方式等,而在企业服务领域LTV: CAC大于3,才能有效良性增长。

5).病毒传播
通过模型前四个阶段的优化分析,从不稳定用户、活跃用户再到最终的忠实用户,将获客做最大的留存和转化,培养为企业的忠实用户,通过社交口碑传播可以给企业带来高效的收益。
在获客成本高昂的今天,社交传播可以为企业带来更优质的用户群,更低的获客成本。

2.转化分析模型
转化率是持续经营的核心,因此我也用较大篇幅来详细解读。转化分析常用的工具是转化漏斗,简称漏斗(funnel)。新用户在注册流程中不断流失,最终形成一个类似漏斗的形状。用户行为数据分析的过程中,我们不仅看最终的转化率,也关心转化的每一步的转化率。
1).如何科学的构建漏斗
以往我们会通过产品和运营的经验去构建漏斗,但这个漏斗是否具有代表性,优化这个漏斗对于整体转化率的提升有多大作用,心里没有底气,这时我们可以通过用户流向分析去了解用户的主流路径。

图:用户流向分析
用户流向分析,非常直观,但需要分析人员有一定的经验和判断能力。为了解决这个问题,数极客研发了智能路径分析功能,只需要选择转化目标后,一键就能分析出用户转化的主流路径。将创建漏斗的效率缩短到了几秒钟。

图:智能转化分析
2).漏斗对比分析法
转化分析仅用普通的漏斗是不够的,需要分析影响转化的细节因素,能否进行细分和对比分析非常关键。例如:转化漏斗按用户来源渠道对比,可以掌握不同渠道的转化差异用于优化渠道; 而按用户设备对比,则可以了解不同设备的用户的转化差异(例如:一款价格较高的产品,从下单到支付转化率,使用iphone的用户比android的用户明显要高)。

图:漏斗对比分析
3).漏斗与用户流向结合分析法
一般的转化漏斗只有主干流程,而没有每个步骤流入流出的详细信息,当我们在分析用户注册转化时,如果能知道没有转化到下一步的用户去了哪,我们就能更有效的规划好用户的转化路径。例如下图中的转化路径,没有进入第二步的用户,有88%是直接离开了,而还有10%的用户是注册用户选择直接登录,只有2%的用户绕过了落地页去网站首页了; 而没有从第二步转化至第三步的用户100%都离开了。这是比较典型的封闭式落地页,因此只需要优化第三步的转化率即可提升整体转化率。

4).微转化行为分析法
很多行为分析产品只能分析到功能层级和事件层级的转化,但在用户交互细节分析方面存在严重的缺失, 比如:在上图的漏斗中我们分析出最后一步是影响转化的关键,但最后一步是注册表单,因此对于填写表单的细节行为分析就至关重要, 这种行为我们称为微转化。
例如:填写表单所花费的时长,填写但没有提交表单的用户在填哪个字段时流失,表单字段空白率等表单填写行为。

图:表单填写转化漏斗

图:表单填写时长
通过上述表单填写的微转化分析,用户从开始填写到注册成功转化率达85%,而流量到填写只有8%,可以得出影响转化的最大泄漏点就是填写率,那么如何提高填写率就是我们提升注册转化的核心。有效的内容和精准的渠道是影响填写的核心因素,渠道因素我们在获客分析中已经讲过,这就引出我们微转化分析的第4种工具:用户注意力分析。

5).用户注意力分析法
用户在页面上的点击、浏览、在页面元素上的停留时长、滚动屏幕等用户与页面内容的交互行为,这些都代表用户对产品要展示的信息的关注程度,是否能吸引用户的眼球。
业务数据可以可视化,那么行为数据如何可视化呢? 数极客把上述行为转化成了分屏触达率热图、链接点击图、页面点击图、浏览热图、注意力热图这5种热图,通过5种热图的交叉分析,可以有效的分析出用户最关注的内容。

图:注意力热图
只有能掌握微转化的交互行为分析,才能更有效的提高转化率。而一切不能有效提高平台转化率的分析工具都在浪费企业的人力和时间资源,这也是众多企业没有从用户行为分析中获益的根本原因。

3.精细化运营模型
以前做运营只能针对全体用户,如果要针对部分目标客户做精准运营行为。

图:用户分群画像
例如:当我们希望对某个地区使用iphone的注册但三天不活跃或未形成交易转化的用户进行精准营销时,需要运营人员、产品人员、技术人员 全体配合去调取数据、制定运营规则,其中涉及到大量人力和时间投入。而新一代的用户行为分析可以采用用户分群、用户画像、自定义用户活跃和留存行为,精准的定位用户,从而实现精细化运营。

图:创建用户分群
4.定性分析模型
用户体验是企业的头等大事,在产品设计、用户研究、研发、运营、营销、客户服务等众多环节,都需要掌握用户的真实体验过程。但如何优化用户体验向来是内部争议较多,主要原因还是难以具体和形象的描述。通过行为分析分现异常用户行为时,能否重现用户使用你的产品时的具体场景,这对于优化产品的体验至关重要。
以前我在淘宝时,用户体验部门会通过邀请用户到公司进行访谈,做可用性实验的方式来进行体验优化,但这种方式需要化费比较多的时间和费用投入,样本不一定具有代表性。为了解决这个难题,数极客研发了用户行为录屏工具,无需邀请用户到公司实地录制节省成本,直观高效的以视频形式还原用户的真实操作,使得企业各岗位均能掌握用户体验一手信息,帮助产品研发提高用户体验。

图:用户行为录屏播放界面
总结:通过AAARRR模型分析用户生命周期全程; 通过转化率分析模型 提高产品转化率; 通过精细化运营 提高运营有效性; 通过定性分析方法 优化用户体验; 如果以上4方面都做好了,就一定可以通过用户行为分析实现业务增长。

五、用户行为分析的未来方向是什么?
有很多人问我,为什么已经有几家做用户行为分析的公司了,你还要创办数极客? 我认为数据分析的目标是应用分析结果优化经营效率,而国内外主要的分析工具,还只停留在分析层面,对于如何高效的应用还有很大的空间。因此数极客除了要在分析层面做得更专业和更有效,还要在应用层面实现新的突破。数据分析结果反映的问题主要是两类:运营(含营销)和产品。所以需要针对这两类问题提供针对性的解决方案。
1.运营的自动化
我们前面讲了,通过用户行为分析系统可以实现精细化运营,但具体应用还需要人工制定运营和营销策略,通过产品、研发开发才能应用,而且当策略改变时,需要重新开发相应的工具,这也占用了很多时间,影响运营与营销效率。数极客研发了会员营销系统和自动化运营工具,运营与营销人员直接设置规则,系统根据规则自动将精准的活动信息推送给符合条件的用户,直接提高运营人员工作效率,运营人员可以将工作重心转移到策划而不是浪费太量时间在重复执行,自动化运营可为企业节约大量运营成本。

图:创建自动化运营规则

2.产品、运营(营销)方面的科学决策
用户行为数据分析,往往是在行为发生之后进行分析,而产品、运营都是通过经验,拍脑袋进行决策,一旦决策失误就会造成难以挽回的结果。因此如果能在产品、运营方案上线前,通过用户分流A/B测试进行小范围验证,选择其中最优的方案发布,这样就可以大大提高决策的科学性。
Google每年通过运行数万次A/B测试优化产品、运营,为公司带来了100亿美元的收益。
A/B测试的方法非常有效,但国内互联网公司应用不普遍,主要和应用A/B测试的复杂性有关,
数极客拥有完整的A/B测试工具,业务人员可以在网站和APP上自助使用可视化试验编辑工具,创建并运行试验,通过自动解读测试报告,使得A/B测试门槛大大降低。

图:网站端可视化编辑试验工具

3.分析的自动化
用户行为分析有一定专业性,不仅需要掌握不同的分析方法,还要熟悉业务,结合业务才能给出有价值的分析结果。 如果能像360安全卫士一样,只需要加载SDK,就能自动诊断和分析,并给出解决方案,这是数据分析的未来方向,数极客在这方面也有积极的尝试,并有了初步成果,目前拥有数据自动预警、自动报表等功能。
用户行为分析是一门科学,善于获取数据、分析数据、应用数据,是每个人做好工作的基本功,每家企业都应该加强对用户行为分析大数据的应用,从数据中找出规律,用数据驱动企业增长。
数极客是国内新一代用户行为分析平台,是增长黑客必备的大数据分析工具,支持APP数据分析和网站分析,独创了6大转化率分析模型,是用户行为分析领域首家应用定量分析与定性分析方法的数据分析产品,并且基于用户行为分析系统,提供了会员营销系统和A/B测试工具两大数据智能应用解决方案,使得企业可以快速的实现数据驱动增长。
本文由数极客CEO谢荣生原创,欢迎转载,转载请保留全文和作者信息。

C. 如何统计网页上用户浏览行为

如果你指的是要统计某一个网站的用户在网站上的浏览行为,那么可以装一个网络统计或者google analytics的统计代码到每一个需要监控的网页上,等收集到数据以后就可以在后台知道用户的浏览行为了。

如果你指的是要知道某个人或者某一群人的具体上网浏览行为,知道他们都上网干了什么,那么 推荐装一个IP-guard这样具备上网行为管理的软件,它会自动记录用户的网页浏览行为,同时汇总成统计报表输出。

IP-guard这种软件还可以进行网页浏览行为限制,比如哪些网站禁止登陆、哪些时间段可以浏览等等,同时还可以在适当时触发警告提示违规的人员。

D. 如何修改浏览器的设置,使它能够捕捉到用户浏览的WEB内容和行为谢谢各位大虾,不甚感激.

挺深奥的一个问题,没看懂啥意思,你是要自己写个浏览器吗?

E. java web 如何统计用户在网站的行为,比如在

使用切面记录日志!把用户的行为记录到数据库

F. 用户行为数据分析有哪三个层次

做用户行为分析的基础是获得用户行为数据,例如用户页面停留时间、跳转来源等等。这些信息有些能直接拿到,有些是需要做一些计算才能拿到的。一般来说用户访问时的一些信息都是以日志的形式打到web容器的日志空间中去,这其中包含了最通用的一些访问信息以及一些自定义的日志打点。

题主提到了大数据技术中对用户行为进行分析,那么可以假定网站或者App的访问量是比较傲多的。由于系统流量比较大,计算维度又比较多,后续数据消费者的需求增长比较快,所以对计算分析平台有了一定的要求。具体表现为:
1.负载能力。流量增大以后带来的压力是多方面的,比如网络带宽的压力、计算复杂度带来的压力、存储上的压力等等。一般来说这些都是比较显而易见的,会对产生比较直接的影响,比如计算实时性下降、消息出现了堆积、OOM等等。为了解决这一现象,一般来说会选择一些分布式的框架来解决这个问题,比如引入分布式计算框架storm、spark,分布式文件系统hdfs等。
2.实时性。在系统资源捉襟见肘时消息的实时性会立即受到严重影响,这使得部分算法失效(例如对计算和收集上来的数据进行行为分析后,反馈到推荐系统上,当整体响应时间过场时会严重影响推荐效果和准确度)。对于这个情况来说可能会选择storm这种具有高实时性的分布式流式计算框架来完成任务。
3.系统管理和平台化相关技术手段。在大数据情景下,企业内数据环境和应用环境都是比较复杂的,用户行为分析应用不是一成不变的,那么就要求用户行为分析这种多变的应用在复杂环境中能有效生存,这包括算法数据材料的获得、系统运维、系统任务调度、系统资源调度等等,相关的技术很多时候要求团队自研,但也有ganglia、yarn、mesos这类开源系统可以参考或者直接使用。
4.数据链路。企业技术环境一般来说是非常复杂的,一层一层交错在一起,远不是一句MVC三层架构能够概括得了的,为了避免消息流通呈复杂的网状结构,一般会考虑应用服务化、企业服务总线(ESB)及消息总线来做传输,有兴趣的话题主可以网络一下这几个方向的技术和开源工具。
5.应用快速生成工具。我个人认为在大数据环境下应用都摆脱不了一个快速开发的要求,用户行为分析也是如此,这时候要考虑对接一些开源的分布式数据分析算法库而不是通过自己去实现,比如像spark ml,mahout这类的库用得好能减少很多工作量。

G. 有Python对用户行为分析的实例吗

行为跟踪、分析不是所谓的窃取用户隐私行为,跨站监控等此类手段。
用户行为分析、用户行为跟踪……,一直被热议着,相信不少公司、不少朋友,在不同的平台上都有过此类应用,就如我前面发表的文章【Web用户行为跟踪收集】, 主要面向WEB平台,当然谷歌分析在Web端的支持已经比较成熟了,这里不多解释。本文借助Google用户行为分析,在Android平台、iOS平台上,进行强大的行为分析与报表支持……,具体应用如下:
§ 示例代码-打包
§ GA用户分析应用说明
本次GA用户分析与DEMO包含以下内容:
1、 有关GA的相关知识介绍
2、 本次用户跟踪简要需求分析
3、 GoogleAnalyticsDemo示例程序
4、 GA报表查看
5、 使用说明
6、 其他补充
1、有关GA的相关知识介绍
(1)参考assets内相关PPT
(2)GA相关参数与配置
2、本次用户跟踪简要需求分析
通过GA,我们可以做到什么? 利用GA可以帮助改善营销策略,提高产品质量。
根据客户的喜好,设定不同的产品显示方案、增加用户粘性
本次通过GA我们可完成如下跟踪(只收集符合产品的有价值的信息):
一、自动跟踪
1、地理位置(国家、地区)
2、客户端信息(操作系统、版本、机型、品牌、运营商、屏幕分辨率……)
3、程序崩溃信息、异常记录等
4、App安装数(需要在Google Play Store上的产品被安装时才能统计)
5、语言
6、新用户数、活跃用户数
二、需要定制的跟踪
1、按钮点击数、页面打开数
2、统计操作及事件数
3、界面停留时间
4、交易行为
3、GoogleAnalyticsDemo示例程序
(1)参数配置:res/values/analytics.xml
参数说明:assets/parameters.jpg
(2)未捕捉异常的跟踪:MyApplication.Java
(3)高级应用(自定义变量、维度、指标)
4、GA报表查看
(1)在线查看:http://www.google.com/intl/zh-CN_ALL/analytics/
主要报告信息如下:
信息中心概览:
用户概览:
参与度概览:
结果概览:
转化:
(2)GA账号
(3)GA手机查看工具
assets/com.google.android.apps.giant.apk
5、使用说明
(1)APP发布时,取消配置中debug状态
(2)配置analytics.xml参数、Screen信息
(3)根据情况决定是否采用多个Tracker
6、其他
(1)目前无法做到AOP的方式跟踪用户行为,即便是有,性能方面也还会是个问题
(2)通过事件源拦截的方式跟踪也不可行,目前只可在关键的位置增加监控代码,在基类生命周期中处理。
(3)在某些情况下,会有GA数据发送不出的问题,但通常情况下不会影响分析结果(限于国内的访问限制)
7、IOS中的应用
官方已给出了简单的DEMO,可以自行下载试用
(1)导入库
(2)添加依赖包:eg: core...,system.data....
(3)在root中配置、初始化
(4)UI类继承GATracker类,或自定义基类

H. 在WWW中,常使用什么技术来记录用户的行为。

基于web服务器日志收集和客户端收集用户行为数据。
基于web服务器日志收集;这种方式比较普遍,日志文件由web服务器自动生成,花费成本小,开发基于日志文件的数据分析工具相对比较容易;但缺点在于其能提供的数据和需要的用户行为数据相比,还太少了。
客户端收集用户行为数据:通常是利用在页面上嵌入js,当用户访问网页上,出发js向单独的日志收集服务器发送请求,从而记录用户访问的数据。

I. 2017年,Web 后端出现了哪些新的思想和技术

1. 网络交互的多样性
1.1 Http1.1协议日渐式微,Http2和websocket,以及更多的自定义协议将会成为主流。
Web后端将不仅仅是一个web后端,而变成一个大后端,或者叫 中端+后端(这个概念阿里巴巴很早就有了)。随着移动互联网的发展,以及物联网的兴起(在这里我把mobike的单车看作是物联网的一个终端),用户的接入方式由单纯的浏览器,向着多种接入设备进行演进。 在这个概念之下,用户的定义会更广泛,站在后端的角度看来,连接上服务器的不再是一个个的用户,而是一个个的终端,并存在多个终端同享一个用户的情况(多端登录)。 因此在这个趋势之下,整个后端的接入层(比如nginx之于web)将会走向更广阔的天地,对于任意一个设备来说,他将同时利用多种协议和多种方式连接到不同的接入点来达成自身的功能。
1.2 网络协议与网络信息交互的样式多样性
从最早的webService,到后来的json-rpc,和thrift再到如今的 protobuf(grpc)等等,我们开始为不同的数据交互设计了不同的序列化协议和调用协议,然而受到环境(移动终端的弱网络状态),性能(网关服务,与网络调用)的影响,我们开始使用大量容错性更强,数据量更小的数据传输方式,来满足我们的需求。
在早先的web中,http+from表单的提交成为我们的标配,然而在今天,TCP都不一定成为必选项,UDP和UDP的改进协议都在被不同的公司进行尝试,甚至于KCP都有可能成为大家考虑的方案之一。
2.数据多样性开始成为设计的焦点。
2.1 在早先的web后端中,表设计和功能开发构成了日常工作的绝大部分,所有的后端人员都在试图让一切的用户操作落入CRUD的抽象范畴里(比如 Restful),然而CRUD怎么会满足我们的抽象需求呢。
自从memcached和redis在被大量引入后端开发之后,我们可以看到,后端人员在对数据的理解上有了大量的改变,我们不再单单把数据视为RDBMS里面的一行,而是围绕着业务本身对数据进行了分类。最明显的是,状态数据的引入,在开发中,我们将用户的部分信息,视为一个用户的状态,在状态数据的基础上,让用户的行为变成状态迁移的触发,在表现上看我们让用户的信息存储到redis和memcached 里就是最RDMBS不能有效满足我们的抽象需求的一次改进。
2.2 从狂热的Nosql到Nosql和RDBMS的共存,代表了后端开发人员对数据这一个方式的新理解,而传统的行存储到列存储,到监控常用的基于时间序列的数据库都开始进入了我们的视野。
几年来,大量的开发者,开始将用户产生的数据进行了更详细的归类,不再是rdbms一刀切的方式, 我们会详细地划分出用户的状态数据落入到Nosql,将用户的操作数据落入到RDBMS(表述不一定全,但在类似于订单支付之类的具有幂等性要求的操作中要求事务的完备等),将用户的行为统计落入时间序列数据库, 将用户的大量相关资源(如头像图片)将会落入到我们的对象存储中。在后端开发的手册里,数据格式的多样性成为了必须考虑的问题。

3.围绕着数据的收集,存储,计算,索引查询,分析 成为后端的常态
3.1 后端角色的含义,在人手不足的公司里,很难存在一个专注于后端业务开发的开发人员了,在大数据的浪潮下,后端开发人员开始兼职起了数据系统的开发工程师。 随着互联网大量技术的演进和发展,任何一个职业都很难找到一个明确的界限,因此围绕着数据的收集,存储,计算,分析,和索引查询都会成为后端开发人员的必备技能。
3.2 数据收集
(1) 随着分布式,集群化,多IDC的发展,不同于运维的系统性能收集,后端开发开始着重于收集与应用运营过程相关的各类指标和数据,
除了日常的业务开发,同时还会伴随着应用调用过程的耗时,目标服务可用性等数据的收集,常见的如java的 metrics,zipkin等开源第三方的工具开始被广泛借鉴和引用。
(2) 用户行为和终端信息的上报收集,随着大数据的开展,以及精细化运营的要求,后端逐渐开始接触到用户相关信息和终端运行状态的信息上报,
收集上来的数据不仅用于用户的画像分析,同时也为客服的用户追踪,用户的操作行为做出决策,通常表现在当用户投诉某一笔业务的失败时,便于开发人员的快速定位和排错。
3.3 数据存储
接着上面的数据收集,数据的传输和存储成为了绕不开的功能,kafka的大规模运用,HDFS,HBase等工具也开始成为了后端开发日常的一部分。
3.4 数据计算
然而存储的原始数据是没有价值的,后端又开始了他们的数据清洗和数据处理的道路,storm,spark成为了后端的新秀,与用户运营统计分析(俗称跑策略跑算法)不同,当前语境下的后端数据计算,更多是一个短耗时,小规模的计算,典型的则比如风控系统,和预警系统,针对用户的行为和流量的多少,对恶意用户进行甄别和快速干预。
3.5 数据索引查询
(1) 随着业务的扩充,任意一个app几乎都内置了相应的搜索引擎,Lucene,solr也成为了后端程序员必备的技能之一,不管是精确搜索,还是模糊匹配,后端身上背负的业务也越来越多。
(2) 准实时数据的搜索也将成为常态,在近几年的发展中,如何快速地在一个巨量的数据中,完成RDBMS中的 join,distinct统计等成为后端工程师不得不面对的问题

3.6 数据分析查询
AI和深度学习已经拉开了序幕,围绕着数据本身的挖掘,学习,也开始成为了产品侧的需求,但理想归理想,现实归现实,后端的同学们在这个方向上仍然还是摸索状态,但长远来说跑不了了。

4.架构设计的更进一步

2017年里,SOA的名词正在淡出视野,微服务成了替代SOA的高频词,Serverless也开始走向了广大后端的知识技能图谱,不管是追新也好,满足需求也罢,我也向诸位举例一些常见的单词,然而挂一漏万请诸位担待
4.1 CQRS(命令查询职责分离模式)
将传统CRUD的写操作,进行异步化,后端配合读写数据库的分离。以及消息队列的引入,将写操作相关的一些耗时操作(验证,走流程)等进行异步化,常见的如电商中的订单。
4.2 actor
Erlang的actor的兴起,不管是golang Goroutine,还是scala/java的akka,都在深刻地影响着后端系统的架构设计。
4.3 CRDT和最终一致性
分布式系统的兴起,也带来了可用性和一致性的矛盾问题,协同两个进程间的数据成为了每一个后端绕不过去的坎,为了达成最终一致性,各类方案如雨后春笋般冒出。
4.4 reactive
当android上的流行库Rxjava,从前端走向后台的时候,也意味着后端也开始进入了响应式编程的时代,java的 vert.x就是其中的例子,那种request-response一招破万法的时光不再有了。
5. 运维和devops对后端的要求
5.1 安全,稳定,高效,经济
(1) 随着业务走向稳定,以及互联网的发展,网络服务的安全性开始成为了后端的核心之一,由于法律的不健全,对违法分子的追责难度大,违法成本低,网络安全攻击将会在将来的一段时间内成为常态,这就对后端的程序特别是对外的接口设计提出了更高的要求。
(2) 多机房,异地容灾,数据备份。健壮的后端一直是后端应用的要求之一。新的时间里,后端的可用性,稳定性依然是每一个后端都要面对的问题。
(3) 以前一个用户只有一个电脑,浏览网站的时候,只在获取数据的时候与站点有交互。现在随着电子设备,智能设备的增多,一个用户能够接入网络的设备也在增多,同时长连接和并发数也会增多,因此高性能的接入网关开始成为了后端人员关注的焦点,比如围绕着intel的dpdk各类应用也是纷至沓来。
(4) 经济,利用云服务的即买即用,用完即退的特点,使得在开展运营活动的时候,后端不用向运维征求和购买大量的机器。 然而为了在运营活动的短时冲击和突增流量的情况下后端应用能够平稳地运行,对后端人员的部署和调度能力提出了更高的要求。

5.2 更规范的软件开发流程
git+jenkins+ansible的开源组合,开始无法满足开发和运维的需求,项目管理的集成,测试人员的介入,都要求后端的软件工程工具从各自为阵的开源工具,走向一个大一统的系统,需要我们将 需求,BUG管理,迭代版本,开发,测试,灰度,蓝绿部署流程都进行集成。
5.3 云服务,容器化之争
公有云,私有云,混合云,以及容器等相关的云计算技术,也在推动者后端的技术改革,后端面对的不再仅仅是一个物理机器,或者虚拟机,而是一个更复杂更多样性的环境,对后端业务之外的技术和调度要求将越来越高。
相对于前端,后端实在是一个特别笼统的说法,正如上面提出的观点,很多的技术其实并不属于后端工程师,他们有的时候叫 运营开发工程师,有的叫大数据工程师,但为了相对于前端的划分,因此我把他们的工作内容都划到了后端里面去,毕竟相对于技术研究,他们面对的都是一些技术应用的场合,很多的开源软件只要达到了理解原理如何使用的水平就已经足够应付日常工作了。

J. web开发使用spring MVC怎么对用户操作行为进行记录,就是日志(用户登录都访问哪些模块有详细时间等)

譬如打印二维码模块:log.debug("qrcode: userid=" + userid);