技术_技术文档 - CSDN
精华内容
参与话题
  • 每个产品经理都应该懂点技术。当技术人员认为你提出的需求不能实现而怼你的时候,你可以从技术的角度将他正面击倒。而且熟悉一定的技术后,产品经理提出的需求将会更加合理,技术人员实现起来更容易。达到产品和技术...

    每个产品经理都应该懂点技术。当技术人员认为你提出的需求不能实现而怼你的时候,你可以从技术的角度将他正面击倒。而且熟悉一定的技术后,产品经理提出的需求将会更加合理,技术人员实现起来更容易。达到产品和技术和谐共处的美好社会。此篇文章是该系列的第一篇。


    产品经理每天需要跟技术人员打交道。有时候我们想知道,我提出的需求技术人员究竟能不能实现?要搞清楚这个问题,我们需要知道技术人员是怎么工作的,他们不同的分工又分别做了什么工作。我们假定团队中只有两类技术人员:前端和后端。虽然测试和运维也同样重要。为了简化思考,我们暂时不考虑他们的工作内容,而只看前后端的工作。

    在Web开发中,前端去做界面模板,后端负责数据。这样可以把后端的数据放到前端的模板里。此称为前后端分离。

    在前后端分离的开发模式中,前端和后端可以同时进行工作。具体的方式是通过前后端在事先约定好的文档规范。前端人员依据文档写页面模板,后端人员根据文档写API接口。前端可以调用后端的API接口为界面模板填充数据。

    如果是纯技术人员,我们大概到这里就介绍完毕了。不过,考虑到这篇文章是为非技术人员写的,所以我有必要更透彻的展开一下。

    通过刚才介绍我们发现前后端的依赖关系只在API上。如果API的概念不容易理解,我们可以看看API的定义。

    API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    以上内容来自百度百科

    如果觉得难以理解我们可以划下关键词,函数、提供访问程序的能力、无需理解内部工作。API可以简单的理解为一个URL地址。具体来说是前端页面向API发送了一个请求的数据A,后端接收到A,根据业务的需求将A变成处理后的数据B,并把B返回给前端页面上。这个过程中前端不知道也不必知道API内部是如何工作的,前端只需要根据发送的数据获取到需要的数据。后端的工作就是接收前端发来的数据,处理后返回给前端使用。

    我们以登陆返回用户数据的一个操作为例进行详细说明。

    1240

    上述图片是一个前端页面。当我们输入完用户名和密码,就意味着前端的数据已经获取完了。我们点击登陆的按钮后,其实就将数据发送给了后端的API,此处我们假设API地址是 api.com/login 。一般使用JSON这种数据格式,如下图(其实省略了很多数据,以下数据仅供参考)

    {
    "email":"gaoyakang@outlook.com",
    "password":123456789
    }

    后端拿到上述数据后开始判断并返回

    1. 该条数据格式对不对?
    2. 账号密码对不对?
    3. 如果都对则返回用户信息,如果不对返回错误信息。

    假设我们在数据库中有以下的数据:

    email  password RealName   NickName birth age
    gaoyakang@outlook.com 123456789 mark Rever4433 1995-04 22

    验证成功后,我们开始返回用户信息,根据我们数据库中的数据,我们将要返回RealName、NickName、birth、age等信息给到前端去填充数据。

    还是用上述JSON数据格式表示:

    {
    "RealName":"mark",
    "NickName":"Rever4433",
    "birth":"1995-04",
    "age":"22"
    }

    前端拿到该数据后把数据渲染到界面上:

    1240

    这样一条数据从前端发送到后台接收处理,处理完后发送到前端,前端向用户展示这一过程就完成了。


    一些说明

    为了尽可能简化理解一些难于理解的数据我没有写出来,不过对于非技术人员应该已经足够理解了。另外,实际开发中有的公司可能没有采用接口化的方式,而是前端做界面模板,做完后让后端去填充数据的方式。这种方式虽然前后端结合的实现方式上有区别,但思想上是差不多的。
    看完本文,你可能对前后端具体做的事情有了一些理解。也许你还会想知道,前后端开发人员是怎样一起进行工作的呢?前端和后端工作有先后顺序吗?这些疑问我们将会放在下一篇。在下一篇文章中我将描述前后端人员是通过文档来开展工作的。

    转载于:https://www.cnblogs.com/rever/p/7792980.html

    展开全文
  • 本文转载自公众号 吃草的罗汉 文中的“我”并非小灰,而是原文作者。 熟悉我的人都知道,我有位从事猎头工作的老婆,平时的工作是专为某些医疗、金融投资机构提供中、高级岗位职位人才招聘及相关咨询服务。...

    本文转载自公众号  吃草的罗汉

    文中的“我”并非小灰,而是原文作者。

    熟悉我的人都知道,我有位从事猎头工作的老婆,平时的工作是专为某些医疗、金融投资机构提供中、高级岗位职位人才招聘及相关咨询服务。

    相比之下,这项工作对业务专业性与人脉关系要求较高,经常会被行业大咖问:“这家公司你觉得怎么样?和某某公司比,你觉得他们之间区别是啥?”

    如果回答的不够专业,或者被对方感觉很水,不仅当场尴尬,而且会在信任上大打折扣。

    对猎头这项工作来说,一旦失去了信任,就意味着确定性的消失,长此以往,这个圈子也就别想混了。

    上周,我妻子手上的某候选人,在通过初试、复试后,最终被卡在了终面上。

    这种高端VP岗位的夭折,显然让她十分郁闷。

    我本想安慰她,没想到被瞪了一眼,说:“少跟我提这事!煮熟的鸭子都飞了,几十万佣金啊,就这么飞了!”

    我一哆嗦,感受到怨愤之气已冲破了天空,立马话锋一转,“胜败乃兵家常事,没事的。”

    “去你的兵家常事!我真火大着呢,少惹我!”

    我很理解,毕竟业务的发展非常艰难,这给她的情绪带来了压力,笑了笑说:“好吧。那为什么终面被拒呢?”

    “现在的客户真难伺候,招的是VP,问的全是与细节相关的问题,最终,候选人抱怨企业小瞧了他,企业则吐槽这哥们很水。”

    她喝了口茶,抬起头问我。

    “好像在你们技术圈里,这种事情还挺多见?”

    这样的话题,曾经在技术圈内也争论了过一阵子。

    我试图用几个例子来向他解释,还别说,这方面可是我的强项。

    比如,当团队规模超过几十人以上,而且不止一条产品线,那就需要有一名技术总监来管理和协调各个产品线Leader,并负责搭建公共技术平台,提升开发效率,控制质量,并降低成本。

    再比如,当团队规模超过上百人时,才有设立CTO的必要,毕竟到这个研发规模规模级别了,就要有专门的团队做技术应用创新探索和前沿技术预研,而且要和技术平台团队、应用研发团队形成很好的联动作用,让创新原型试点能够很平滑的融入商业平台再让应用研发线规模化的使用起来……

    说到这,我老婆朝我摆了摆手,示意我停下来。

    “你这套说词演练了几次了?少拿演讲的套路来糊弄我,这种 ‘胡子眉毛一把抓’ 的理论根本没意义。”,她继续说,“我也常和技术领域的猎头聊天,你先歇一歇,还是我先说说自己的看法吧。”

    中/高层管理者是否要关心细节?

    总监也好,首席也罢,都应该加上业务发展时期的时间轴。

    处于快速发展期的公司,一般不可能因为闲着蛋疼,招个CTO玩一玩,或者说掐指一算,感觉天空出现了祥瑞,预兆着公司将在半年以后业务规模翻几翻,咱们先招个CTO备着,以备不时之需。

    打算招人,通常是遇到了解决不了的问题,现有的小伙伴缺乏经验,搞不定,迈不过这个坎了。好吧,动用人脉网络与猎头圈,针对性的找个哥们来填坑吧。

    至于Title,VP也好,总监也罢,只要老员工这碗水能端平,只要候选人想要的,一般都能满足。

    那问题来了,如果这来填坑的哥们只会画饼,没实战经验,一般会沦陷于两大困境。

    一是如何服众,二是如何实现。

    常听人说,技术男不服管理,只服大神,因此这两大困境的解决路径是相通的。

    我急忙回答,这个的确是这样。

    说到这,我想起去年曾经面过的一位技术VP,看他简历上写着有过 “抢票秒杀场景” 的经验,便请他详细介绍下整个架构与场景实现。

    他用了十分钟时间,在黑板上画了一幅拓扑图,并分别介绍了他们在缓存、熔断、降级与限流的方案选型。

    我觉得很不错,证明他的确有亲临整个过程。

    随即我问他,“能详细介绍下其中的分布式缓存实现吗?” 他支支吾吾了很久,基本只能说出个大概,尤其对热迁移、一致性哈希原理之类的问题,完全不懂。

    随后我又问他,“能详细谈谈你们是如何做限流的吗?” 他来了精神,把Nginx暴利限流的方式讲了一遍,我接着问,“这样不就造成业务有损了吗?如果让你重新来一次,你还有其他方案吗?”

    他回答:“异步实现。”

    我追问:“如何异步呢?能详细说下吗?”

    他愣了几秒,略带不耐烦的回答:“不好意思,这些都是架构师做的,我是来面试技术VP的,干嘛总问我技术细节呢?”

    我很知趣,为了缓和尴尬,立即把话题岔到管理类话题上去了。

    妻子说,你看,处于快速发展期的公司,招你就是来解决问题的。

    如果你就知道个大概,那还找你干什么呢?

    妻子继续说,在我们投资领域有这样的一个说法,不知道你们有没有。

    我说,什么说法?

    如果你要找一名总监,或者VP,那就去挖对标企业团队中的技术二把手。

    为什么呢?因为与总监相比,二把手不仅薪资上会略低,而且新Title对他更有吸引力,况且一般他对细节的了解会更深,更有利于执行落地

    我喝了口茶,点了点头,有道理。

    我立即追问,那处于平稳期或衰退期的公司呢?会有什么不一样吗?

    “进入平稳期或衰退期,还要总监和VP干嘛?” 妻子反问我。

    “怎么不要?团队还在,总需要人管理啊。” 我不服气。

    “算了吧你,你们这种技术岗位等同于工具,一旦业务进入平稳期或衰退期,成本中心的热点就会凸显,每个岗位都有Leader在那盯着,维持着正常的业务运行。这时,还有什么规划和平台要做吗?没了吧?”

    妻子拍了拍我的肩膀,冷笑着说:“到这天,什么CTO,什么技术总监,就等着被收拾吧。早和你说了,都是高危职业。”

    我咽了口唾沫,问:“投资领域也这样吗?”

    妻子转过脸来看了看我:“这是游戏的基本规则,混了那么多年,还那么惊讶干嘛?”

    我叹了口气,有个视角犀利的老婆,不知道这是福,还是祸。

    不关心技术细节,结果一般会如何?

    我曾在很多演讲与文章中提到过,国内有许多技术管理者的晋升路径通常与领导关系、时机巧合、能说会道有关。

    职务的高低与否,只是体现出企业对他的一种信任,而不是其技术能力的强或弱。

    再说了,判断某人是否达到晋升的标准,在不同企业、不同时期、不同行业、不同老板的客观环境下都不相同。

    讲个真实的事情,为了避免得罪人,称这位主人公为 “小李” 吧。

    某年,小李从毕业后一直在A公司工作,截止到年底将满三年,就因为能说会道,业务理解能力强,非常受到老板的赏识,老板曾想提拔他,但考虑到老员工心理平衡的问题因此作罢。

    新年刚过,小李的部门总监离职,部门内都是两年内的新员工,老板把小李提拔到了部门总监的位置上。

    正巧此刻业务发展较快,公司急需搭建公共技术平台,助力于开发效率的提升。

    三年的时间,说长不长,说短不短,外加工作内容多半与业务沟通及逻辑研发有关,小李在这方面却毫无经验。为了解决这一难题,公司挖来了两名有经验的架构师,协助小李共同建设平台。

    一年后,平台逐渐成型,基本满足了公司的业务发展要求。小李在这一年中,无论在系统规划,还是在产品设计方面都有了很大的进步。

    俗话说,环境创造人才,果真不假。

    由于是非计算机专业出身,加上从事一线开发时间较短,在技术选型与实践的关键点把控上,小李通常总是浮于表面,喜欢夸夸其谈,卖弄资历,遇到问题总爱把问题甩给架构师,还总把 “管理和技术要分开”、“顶层设计才是关键点” 这样的理论挂在嘴边。

    这种论调,不仅容易招来技术小伙伴的反感,而且会把心态搞得越发浮躁。

    两年以后,由于业务转型,公司开始大幅度裁撤技术团队。小李也受到波及,开始四处找工作,可结果却四处碰壁。

    面试过的所有公司,对他的评价几乎完全一致:

    1. 应用场景都经历过,但都浮于表面。

    2. 技术基础较差,脱离一线已久。

    3. 技术栈了解程度浅,对原理模糊不清。

    4. 薪资要求较高,心态过于浮躁。

    真遗憾,落得这样一个评价,还有哪家公司敢要你呢?

    记得曾经和朋友聊到过这样几句话:

    1. 技术实践场景落地很重要。哪来那么多规划要做?哪来那么多顶层设计要做?

    2. 技术原理很重要。哪有那么多新技术要学?原理都差不多,一通百通。

    3. 技术细节很重要。哪来那么多规划要做?

    4. 比起那些玄乎的管理理论,实实在在的代码对程序员更有说服力。

    在去年的某次演讲中,我曾说过这样一段话。

    有人说,不写代码的CTO格局更高,视野更广。我不这么认为。

    不管你面对多大的舞台,其实都是由一个又一个小小的细节组成的,细节不仅可以决定整个事物的最终等级,还可以改变事物的整体发展方向,甚至可以决定任何事情的成败。

    忽略细节,抛弃代码,就好像武士丢弃了剑,老虎拔掉了牙齿。

    当一名技术男脱离了技术细节,就像断了线的风筝,当没风来的时候,或许你也能悠悠潺潺的飘忽一会,冷不丁刮来一阵狂风,你便会飞的无影无踪。

    不过,假如你家里有矿,那可以随意。

    展开全文
  • 了解深度学习技术

    千次阅读 2019-01-09 08:07:04
      2019-01-03 09:49:28   我们今天讨论什么是深度学习,他带给我们什么样的好处,以及与人工智能的关系。...马丁·福特(Martin Ford)在他的新书《智能建筑师:人工智能建造者的真相》(Architects of ...

    https://www.toutiao.com/a6642081749134230019/

     

    2019-01-03 09:49:28

    了解深度学习技术!

     

    我们今天讨论什么是深度学习,他带给我们什么样的好处,以及与人工智能的关系。

    作者:詹姆斯·E·鲍威尔

    马丁·福特(Martin Ford)在他的新书《智能建筑师:人工智能建造者的真相》(Architects of Intelligence: The Truth about AI from The People Building It) (Packt Publishing, 2018年11月23日)中采访了人工智能专家,探讨了人工智能的未来、它对社会的影响以及我们应该关注的技术问题。在采访中,他谈到了自己的观点,人工智能的好处,以及人工智能尤其是深度学习的发展方向。

    优点:简而言之,你如何向不熟悉这项技术的人描述深度学习?它是如何使用的?

    马丁·福特:深度学习是一种软件,它大致模拟了大脑中生物神经元的运作和互动方式。神经网络是在20世纪50年代发明的,但直到最近十年,这些具有多层神经元的复杂网络才得以建立起来。“深度”一词指的是这些网络有许多层人工神经元(有时超过100层)。

    在过去几年里,深度学习一直是推动人工智能取得显著进步的主要技术。深度神经网络为语音识别和生成提供动力,使亚马逊Alexa成为可能。它也彻底改变了机器视觉。如今,计算机在识别视觉图像方面的表现已经超过人类,这种能力已经被应用于从自动驾驶汽车到基于图像视觉分析诊断癌症的医疗系统等各种应用中。这项技术也被用于提高机器人的感知能力和灵活性。在医学、科学、商业、工厂自动化和交通运输等领域,深度学习的应用数量几乎是无限的。

    该技术继续快速发展。产生这种情况的部分原因是计算机硬件性能的不断提高。 NVIDIA和英特尔等公司现在生产专为该技术设计的计算机芯片。在改进深度学习中使用的学习算法方面也进行了大量研究。大型科技公司正在对该技术进行大规模投资,这很可能会继续推动未来的发展。

    马丁·福特:深度学习是一种软件,它大致模拟了大脑中生物神经元的运作和互动方式。神经网络是在20世纪50年代发明的,但直到最近十年,这些具有多层神经元的复杂网络才得以建立起来。“深度”一词指的是这些网络有许多层人工神经元(有时超过100层)。

    在过去几年里,深度学习一直是推动人工智能取得显著进步的主要技术。深度神经网络为语音识别和生成提供动力,使亚马逊Alexa成为可能。它也彻底改变了机器视觉。如今,计算机在识别视觉图像方面的表现已经超过人类,这种能力已经被应用于从自动驾驶汽车到基于图像视觉分析诊断癌症的医疗系统等各种应用中。这项技术也被用于提高机器人的感知能力和灵活性。在医学、科学、商业、工厂自动化和交通运输等领域,深度学习的应用数量几乎是无限的。

    这项技术继续快速发展。出现这种情况的部分原因是计算机硬件越来越快,也越来越好。英伟达(NVIDIA)和英特尔(Intel)等公司现在生产专为这种技术设计的电脑芯片。在深入学习中使用的学习算法的改进方面也有大量的研究。大型科技公司正在对这项技术进行大规模投资,这极有可能继续推动技术进步。

    该技术继续快速发展。发生这种情况的部分原因是计算机硬件变得更快,也更好。 NVIDIA和英特尔等公司现在生产专为该技术设计的计算机芯片。在改进深度学习中使用的学习算法方面也进行了大量研究。巨大的科技公司正在对该技术进行大规模投资,这很可能会继续推动未来的发展。

    深度学习和人工智能之间的关系是什么? DL如何推进人工智能?

    深度学习(以及更普遍的机器学习,包括神经网络以外的方法)只是人工智能的一个分支。然而,毫无疑问,这是最具爆炸性进展的单一领域。

    实际上,在顶尖专家中,关于深度学习在未来人工智能中的作用和重要性,存在着一些争论。《智能架构师》采访了包括杰夫•辛顿(Geoff Hinton)、扬•勒肯(Yann LeCun)和约舒亚•本吉奥(yoshu Bengio)在内的深度学习先驱,他们倾向于相信,神经网络最终会证明自己有能力在人工智能领域做任何真正重要的事情。其他专家不同意。他们认为,深度学习必须与其他方法相结合,才能继续推动这一领域的发展。

    深度学习有什么好处? 有什么缺点?

    深度学习的主要好处是系统具有强大的能力:(通常是超人的)识别数据模式的能力。这些模式可能是可视图像中的对象或人、人类语言中的文字、业务数据中的重要见解,或者是机器中某个特定部分可能会失败的早期警告。

    目前的技术状态有许多潜在的缺陷。

    深度学习系统相对不灵活或“脆弱”。如果最初的假设发生了变化,系统将生成不正确的数据。与人类不同,这些系统无法适应。

    深度学习系统可能缺乏透明度或充当“黑匣子”。他们给出了结果,但没有解释这些结果是如何产生的。当系统用于刑事司法等领域时,这可能是一个大问题,在这些领域,理解导致决策的基本原理至关重要。

    在某些情况下,已经检测到基于种族,性别或其他参数的偏差。这是因为用于训练系统的数据存在偏差。例如,如果在面部识别系统中使用神经网络并且网络在大多数白脸上训练,则系统在识别非白脸方面可能不太有效。这可能导致“误报”,因此非白人经常被错误识别。

    安全性一直是任何自治系统的主要关注点,有证据表明,深度学习系统可能容易受到黑客攻击。

    越来越多的法规要求企业解释它们的决定,而在人工智能中,这可能会很困难,因为算法是隐藏在视野之外的——因此需要推动算法的透明度。DL是解决方案的一部分吗

    深度学习系统成为“黑匣子”的趋势是该领域的一个主要关注点,目前有许多关于构建更透明系统的研究正在进行。像谷歌这样的公司都有团队致力于提高透明度和消除这些系统中的偏见。

    我采访过的人之一,大卫·费鲁奇(David Ferrucci)(他领导了IBM Watson的开发团队),创办了一家公司,专门致力于开发能够自我解释的系统。他利用自然语言处理方面的最新进展,最终设想出一种系统,能够像人类分析师那样回答问题。

    关于深度学习( DL )有哪些常见的误解?人们认为它可以做什么呢?

    最重要的误解是人们把真正的智力和深度学习联系在一起。这些系统目前仅限于作为非常有效的模式识别器。他们没有表现出真正的人类智慧。当媒体描述“类脑”计算机的神经网络时,这种误解可以被放大。

    虽然我采访过的很多人(例如,包括DeepMind的Demis Hassabis和Google的Ray Kurzweil)对真正的机器智能取得进展非常感兴趣,但大多数研究人员都认为这还有很长的路要走。

    就目前而言,DL系统能够以惊人的熟练程度完成非常具体的事情 – 但它们并不像人一样“思考”。

    DL在未来一两年的发展方向是什么?从长远来看(比如5到10年后),它将走向何方?

    未来一两年,核心技术将继续取得突破,但或许更重要的是,DL在整个经济领域的应用将呈爆炸式增长。我采访过的吴立胜(Andrew Ng)提出了几个旨在加快这一进程的举措:落地。人工智能正在为制造业带来深入的学习,而人工智能基金正在酝酿新的想法,这些想法最终将扩大到专注于多个领域的初创公司。

    在未来的5-10年里,DL可能会发展成为一种真正的通用技术。它将几乎像电一样,在经济、科学和文化的几乎每个方面都变得越来越不可或缺。

    我们还应该为在更长时间内实现真正突破性突破的可能性做好准备。例如,雷•库兹韦尔(Ray Kurzweil)认为,我们可能在11年内实现人类水平的机器智能。这是一个大胆的预测,但我们应该期待取得显著进展,对经济和社会产生巨大影响。

    展开全文
  • 今日头条技术架构分析

    万次阅读 2018-11-25 17:13:43
    ​ ​ 今日头条创立于2012年3月,到目前仅4年时间。从十几个工程师开始研发,到上百人,再到200余人。产品线由内涵段子,到今日头条,今日特卖,今日电影等产品线。 一、产品背景 ​ ​ 今日头条是为用户提供...

    ​ ​ 今日头条创立于2012年3月,到目前仅4年时间。从十几个工程师开始研发,到上百人,再到200余人。产品线由内涵段子,到今日头条,今日特卖,今日电影等产品线。

    一、产品背景

    ​ ​ 今日头条是为用户提供个性化资讯客户端。下面就和大家分享一下当前今日头条的数据(据内部与公开数据综合):

    • 5亿注册用户

    2014年5月1.5亿,2015年5月3亿,2016年5月份为5亿。几乎为成倍增长。

    • 日活4800万用户

    2014年为1000万日活,2015年为3000万日活。

    • 日均5亿PV

    5亿文章浏览,视频为1亿。页面请求量超过30亿次。

    • 用户停留时长超过65分钟以上

    1、文章抓取与分析

    ​ ​ 我们日常产生原创新闻在1万篇左右,包括各大新闻网站和地方站,另外还有一些小说,博客等文章。这些对于工程师来讲,写个Crawler并非困难的事。

    ​ ​ 接下来,今日头条会用人工方式对敏感文章进行审核过滤。此外,今日头条头条号目前也有为数不少的原创文章加入到了内容遴选队列中。

    ​​ ​ 接下来我们会对文章进行文本分析,比如分类,标签、主题抽取,按文章或新闻所在地区,热度,权重等计算。

    2、用户建模

    ​ ​ 当用户开始使用今日头条后,对用户动作的日志进行实时分析。使用的工具如下:

    - Scribe

    - Flume

    - Kafka

    ​ ​ 我们对用户的兴趣进行挖掘,会对用户的每个动作进行学习。主要使用:

    - Hadoop

    - Storm

    ​ ​ 产生的用户模型数据和大部分架构一样,保存在MySQL/MongoDB(读写分离)以及Memcache/Redis中。

    ​ ​ 随着用户量的不断扩展大,用户模型处理的机器集群数量较大。2015年前为7000台左右。其中,用户推荐模型包括以下维度:

    1 用户订阅

    2 标签

    3 部分文章打散推送

    此时,需要每时每刻做推荐。

    3、新用户的“冷启动”

    ​ ​ 今日头条会通过用户使用的手机,操作系统,版本等“识别”。另外,比如用户通过社交帐号登录,如新浪微博,头条会对其好友,粉丝,微博内容及转发、评论等维度进行对用户做初步“画像”。

    ​ ​ 分析用户的主要参数如下:

    - 关注、粉丝关系

    - 关系

    - 用户标签

    ​​ ​ 除了手机硬件,今日头条还会对用户安装的APP进行分析。例如机型和APP结合分析,用小米,用三星的和用苹果的不同,另外还有用户浏览器的书签。头条会实时捕捉用户对APP频道的动作。另外还包括用户订阅的频道,比如电影,段子,商品等。

    4、推荐系统

    ​ ​ 推荐系统,也称推荐引擎。它是今日头条技术架构的核心部分。包括自动推荐与半自动推荐系统两种类型:

    1 自动推荐系统

    - 自动候选

    - 自动匹配用户,如用户地址定位,抽取用户信息

    - 自动生成推送任务

    这时需要高效率,大并发的推送系统,上亿的用户都要收到。

    2 半自动推荐系统

    - 自动选择候选文章

    - 根据用户站内外动作

    ​ ​ 头条的频道,在技术侧划分的包括分类频道、兴趣标签频道、关键词频道、文本分析等,这些都分成相对独立的开发团队。目前已经有300+个分类器,仍在不断增加新的用户模型,原来的用户模型不用撤消,仍然发挥作用。

    ​ ​ 在还没有推出头条号时,内容主要是抓取其它平台的文章,然后去重,一年几百万级,并不太大。主要是用户动作日志收集,兴趣收集,用户模型收集。

    ​ ​ 资讯App的技术指标,比如屏幕滑动,用户是不是对一篇都看完,停留时间等都需要我们特别关注

    在这里插入图片描述

    5、数据存储

    ​ ​ 今日头条使用MySQL或Mongo持久化存储+Memched(Redis),分了很多库(一个大内存库),亦尝试使用了SSD的产品。

    ​ ​ 今日头条的图片存储,直接放在数据库中,分布式保存文件,读取的时候采用CDN。

    6、消息推送

    ​ ​ 消息推送,对于用户: 及时获取信息。对运营来讲,能够 提⾼⽤用户活跃度。比如在今日头条推送后能够提升20%左右的DAU,如果没有推送,会影响10%左右 DAU(2015年数据)。

    ​ ​ 推送后要关注的ROI:点击率,点击量。能够监测到App卸载和推送禁用数量。

    ​ ​ 今日头条推送的主要内容包括突发与热点咨讯,有人评论回复,站外好友注册加入。

    ​ ​ 在头条,推送也是个性化:

    - 频率个性化

    - 内容个性化

    - 地域

    - 兴趣

    比如:

    ​ ​ 按照城市:辽宁朝阳发生的某个新闻事件,发给朝阳本地的用户。

    ​ ​ 按照兴趣:比如京东收购一号店,发给互联网兴趣的用户。

    ​ ​ 推送平台的工具和选择,需要具备如下的标准:

    ​ ​ ​ ​ - 通道,首先速度要快,但是要可控,可靠,并且节省资源

    ​ ​ ​ ​ - 推送的速度要快,有不同维度的策略支持,可跟踪,开发接口要友好

    ​ ​ ​ ​ - 推送运营的后台,反馈也要快,包括时效性,热度,工具操作方便

    ​ ​ ​ ​ - 对于运营侧,清晰是否确定推荐,包括推送的文案处理

    ​ ​ 因此,推送后台应该提供日报,完整的数据后台,提供A/B Test方案支持。

    ​ ​ 推送系统一部分使用自有IDC,在发送量特别大,消耗带宽较严重。可以使用类似阿里云的服务,可有效节省成本。

    二、今日头条系统架构

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    三、头条微服务架构

    ​​ ​ 今日头条通过拆分子系统,大的应用拆成小应用,抽象通用层做代码复用。

    在这里插入图片描述

    ​​ ​ 系统的分层比较典型。重点在基础设施,希望通过基础设施提高快速迭代、容灾和一系列的工作,希望各个业务团队能更快做业务上的迭代以及架构上的调整。

    四、今日头条的虚拟化PaaS平台规划


    ​ ​ 通过三层实现,通过 PaaS 平台统一管理。提供通用 SaaS 服务,同时提供通用的 App 执行引擎。最底层是 IaaS 层。

    在这里插入图片描述

    ​ ​ IaaS 管理所有的机器,把公有云整合起来,头条有一些热点事件会全国推广推送,对网络带宽比较高,我们借助公有云,需要哪一种类型计算资源,统一抽象起来。基础设施结合服务化的思路,比如日志,监控等等功能,业务不需要关注细节就可以享受到基础设施提供的能力。

    五、总结

    ​ ​ 今日头条重要的部分在于:

    • 数据生成与采集
    • 数据传输。Kafka做消息总线连接在线和离线系统。
    • 数据入库。数据仓库、ETL(抽取转换加载)
    • 数据计算。数据仓库中的数据表如何能被高效的查询很关键,因为这会直接关系到数据分析的效率。常见的查询引擎可以归到三个模式中,Batch 类、MPP 类、Cube 类,头条在 3 种模式上都有所应用。

    参考资料:今日头条的核心架构解析

    ​ ​ ​ ​ ​ ​Go – 今日头条架构

    ​ ​ ​ ​ ​ 从无到有、从小到大,今日头条大数据平台实践经历的那些坑

    ​ ​ ​ ​ ​ 今日头条推荐系统架构设计实践

      收集资料,码字,整理,最后排版都不容易,如果觉得对你有用的话,凑个奶茶钱(非强制啊,只是想犒劳自己一下)~

     微信         支付宝
    微信收款码支付宝收款码

    展开全文
  • 中国十大技术社区你都知道哪些?

    万次阅读 多人点赞 2019-07-05 10:16:15
    社区是聚集一类具有相同爱好或者相同行业的群体,IT技术社区就是聚集了IT行业内的技术人,在技术社区可以了解到行业的最新进展,学习最前沿的技术,认识有相同爱好的朋友,在一起...
  • 了解web技术

    千次阅读 2018-03-20 21:13:15
    web开发:做网站的,web开发技术是互联网应用中最为关键技术之一,互联网应用中包括网络技术,数据库技术,web开发技术等。web服务器:又称www服务器,网站服务器,站点服务器,是将本地信息用超文本组织,为用户在...
  • IT中文技术站十大网站收藏

    千次阅读 2019-09-29 10:47:52
    是中国的IT社区和服务平台,为中国的软件开发者和IT从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性...
  • Java面试中常被问到的几大技术难题

    万次阅读 2018-04-03 11:52:44
    还有一些即将去面试java的童鞋们,你们想知道技术面试中会涉及到哪些点吗?达妹为你整理Java面试中会被问到的几个技术难题。1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?可以有多个类,但...
  • 为什么要使用信道复用技术?常用的信道复用技术有哪些? 通过共享信道、最大限度提高信道利用率。常用的信道复用技术有:频分、时分、码分、波分。
  • 如果您喜欢这些文章,欢迎点击此处订阅本Blog<!-- google_ad_client = "pub-7343546549496470";/* 728x90, 大横幅正文上方 */google_ad_slot = "4725362798";google_ad_width = 728;google_ad_height =
  • 技术方案模板

    万次阅读 2017-09-18 14:24:35
  • Java核心技术卷一基础知识第10版 PDF文件

    万次阅读 多人点赞 2018-08-31 13:37:11
    下载链接: https://pan.baidu.com/s/1qJEav4jgYoAVEy-Ne0OeDQ 密码:4mka
  • 技术栈是什么鬼?

    万次阅读 多人点赞 2020-04-08 18:09:14
    技术栈是什么鬼? 栈的英文是stack 首先,我们使用金山词霸来查一下stack的中文解释 stack有堆起来的意思,其实就是堆叠,顾名思义,技术栈就是你掌握了一堆的技术(掌握多种技术) 一般来说是指将N种技术互相...
  • 虚拟现实技术启蒙_艾孜尔江撰

    万次阅读 2020-02-29 20:24:21
    核心技术是建模与仿真,关键技术是环境建模技术,人机交互技术,立体显示和传感器技术,应用胸痛开发工具,系统集成技术。 2答案: 虚拟现实技术的发展进程大致可以氛围三个阶段——第一阶段是虚拟现实技术的探索...
  • 常用的大数据技术有哪些?

    万次阅读 2018-03-13 16:45:12
    大数据技术为决策提供依据,在政府、企业、科研项目等决策中扮演着重要的角色,在社会治理和企业管理中起到了不容忽视的作用,很多国家,如中国、美国以及欧盟等都已将大数据列入国家发展战略,微软、谷歌、百度以及...
  • 高职高专排名-2012中国最新

    万次阅读 2012-06-22 15:13:44
    2邢台职业技术学院 3山西财政税务专科学校 4辽宁省交通高等专科学校 5长春汽车工业高等专科学校 6黑龙江建筑职业技术学院 7上海医药高等专科学校 8南京工业职业技术学院 9无锡职业技术学院 10宁波...
  • 一、1G~5G综述二、移动通信服务要求演进三、移动通信技术标准演进四、现代移动通信技术演进五、我国运营商移动通信频段
  • Java核心技术 卷1 卷2原书第10版.pdf,包括:Java核心技术 卷1 基础知识 原书第10版.pdf,Java核心技术 卷2 高级特性原书第10版.pdf。 资源保存在腾讯微云上,下载不需要微云客户端,有需要这个资源的同学,请帅气...
  • 谈谈PPPoE,PPTP和L2TP

    万人学习 2019-06-24 11:57:07
    通过实验和Wireshark抓包方式来分析PPPoE,PPTP和L2TP技术
  • 很多人以为技术人员可以做一直做下去,但是最近我发现这个观点不完全正确,因为能一直做下去的技术人员非常稀少,因为不同的年龄段,公司对技术人员的要求会不一样,如最近传言华为计划裁掉40岁以上的程序员,首先我...
1 2 3 4 5 ... 20
收藏数 4,255,053
精华内容 1,702,021
关键字:

技术