说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

独家爆料:Facebook移动客户端开发揭秘

HTML文档下载 WORD文档下载 PDF文档下载
Facebook移动客户端开发团队在不断壮大。现在它有足够的人力,用native来实现以前HTML的功能。同时native在性能方面也有更多优化的空间。为了用户体验Facebook发布纯native版本的客户端应用也就不足为奇了。

目前来说,由于相关政策法律的原因中国国内用户无法正常登陆Facebook,但对于国内的软件开发者来说,Facebook内部的开发环境和氛围还是非常值得我们膜拜的。这是一个非常独特而庞大的软件开发团队,汇集了国际上最为顶尖的软件人才。今天,就为大家聊聊在Facebook内部的软件开发细节。

Facebook内部工程师分享

在Facebook内部经常会有一些人搞讲座,分享一些开发技巧,或者是想推动某些概念和思想。比如有人呼吁让大家都写单元测试,那他就会做很多讲座,跟大家讲怎么做单元测试,为什么要做单元测试。

还会尽量做一些类似Play Programming的活动,就是教大家怎么编程。因为有时候,有些代码真的很难写单元测试。布道的人甚至会来开发一些框架和工具来教你。还有一些例行的分享,比如说一个产品发布以后,就会有一个类似于产品发布的Review分享会,讲产品开发过程或发布过程中遇到的各种问题以及解决方法。最重要的是,在Facebook每一位工程师都可以看代码库里所有的代码,这可是Facebook的整个代码库!并且在代码库也都有WorkHistroy,可以看到谁写了某行代码,或者写的哪个方法。如果你搞不懂,在IRC频道里面,就直接去Ping这段作者,可以通过这种方式可以快速的了解和解决一些问题。

Code Review人人都是监察关

在代码审查方面,有一个流程叫Code Review。在每一次代码改编,都必须经过Review被批准,才能进入代码库。但在整个Facebook中,并没有一个专门的Review小组,但人人都可以Review。在Facebook中没有结对编程,但Code Review你可以看成是另一种形式的结对编程,它是异步的,大家泛结对,不仅仅是两个锁定起来的人。

一般来说我们组内大家互相做Review。但是如果你有一个改动涉及到其他组,那么可能你要看一下与谁有关,发给他参与Review。具体做Review时,每个Review你都是在一个浏览器里面Review。你可以就具体到每一行代码给出你的反馈意见。当然这个Review像一般的网站一样,你可以访问,可以看到的很多讨论,能看到每一个版本的改变历史,所以Review是一次很好的学习机会。

在Facebook中,任何对代码的修改都是以diff的形式完成的。diff的形式与git有一些差别。git是基于现在代码进行的修改,支持新实现功能或者bug修改。比如这个文件里增加了一行,这行的内容是什么,这行删了一行,就是相当于一种文件的修改。而diff简单来说,就相当于你做的一个任务,做了一个代码的修改,加了文件,或删了文件,或者对代码的修改。

当然在Facebook Group里面大家也会讨论问题、问问题、各种交流等。然后有人也会在里面进行布道。比如为什么要坚持某些设计原则,或者分析方案A,出发点是什么,好处是什么,可能的缺陷是什么。如果是方案B,好处是什么,缺陷是什么,都会有这样的讨论。

关于软件工程师的考核方法

据闻,在Facebook移动客户端的代码库中,是消息推送部门的Tech Leader的贡献量最大。但对于软件工程师来说,每个月对于代码库的贡献量并不能完全反应出个人的价值。这只是一个数字,随便看看。因为也许他只是改了一行代码,但有可能把整个系统架构都改了。字数只是一个数值,可以看看,只是看看而已。

对于软件工程师的考核主要是,发布了什么样的功能,有多少用户,用户对它喜欢程度如何?这是可以衡量的,大家都可以看到的。还有其他一些方面,比如大家互相之间写的Review,这些能捕捉到一些额外的工作量。比如说有人在整个工作中对同事的帮助和提升成长很大,但是他有可能没有体现在那个里面,没有体现在他发布多少代码里面。所以Facebook的考核是综合性的。平常软件工程师也都会写周报,一周做了什么,也让大家知道,让主管知道。

这个周报会发给主管,但所有人都可以订阅。在Facebook里的文化氛围是非常开放的。如果某人做了一些很有意义的事情,他还可以自己写总结,讲述做了什么工作,主管会根据这些“成就”有加分。因为有时候他做的这些工作不一定被很多人知道,可能是涉及到其他部门的工作,帮助兄弟部门做了很多改进,相关的人能知道,但是本部门的人不知道。可以通过这种方式,把自己做过的一些比较重要的事情体现出来。

美国最大婚恋网站eHarmony利用Hadoop、OpenStack重构自己 每个Java开发者都应该知道的5个JDK工具 异构计算应用研讨暨OpenCL编程培训在上海和西安成功举行! APIs.io:用来发布和发现API的利器 偏爱MySQL,Nifty使用4个Web Server支撑5400万个用户网站 直接拿来用!十大Material Design开源项目 初探WatchKit,开发者必须知道的6件事! 【MDCC专访】环信CEO刘俊彦:音视频即时通讯将成为技术壁垒 第十七届全国工程建设计算机应用大会在京召开,AMD受邀详解GPU Computing! 哪一门开发语言薪水最高? 借助ArangoDB,带你玩转Google图算法引擎Pregel 【最具价值CTO评选秀】MediaV CTO胡宁:技术女神的自我奋斗 豌豆荚邓草原:如何实现实时响应式平台 必须谨记!Node.js安全开发技巧 聚焦新平台新应用 IBM 2014技术峰会上海站顺利落幕 《近匠》NAGA娜迦信息:移动安全加固定制化 棱镜、飞流、TalkingData三方解读:手游如何高效运营 【MDCC秀场】枕戈待旦——秉持移动开发大潮下的主角思想 Netflix的首席产品官Neil Hun谈推荐系统打造和AWS实践 微信开放WiFi接口,醉翁之意在乎O2O还是大数据? 软硬整合:基于云的微型智能防丢设备Linquet 【MDCC专访】AppCan CTO赵庆华:助力企业快速移动化 使用Bluemix中的Rules服务构建一个酒店预订应用程序 基于IBM Bluemix开发微信公共账号应用 用Cloudant在Bluemix上构建一个简单的文字游戏应用程序 IBM Bluemix是什么? 【最具价值CTO评选秀】纷享销客CTO刘晨:企业移动的技术挑战 【最具价值CTO评选秀】能做存储的超级计算机——任宇翔和以色列团队的创业故事 OpenStack Swift存储策略 分享5个可视化的正则表达式编辑工具 在iOS程序中使用Bluemix云推送服务 怎样计算php里的时间差,mysql的时间差? 关于控制台程序 BYTE型怎么 输出到文件(急) 广州IT俱乐部活动讨论 OleContainer1对象如何使打开的文件嵌在OLE里面,而不是在外部打开DOC文档. 寻兼职程序员,开发一个的屏幕取词工具软件 那里有interdev下载?在线等 小弟初学vb.net,现有一题急需帮忙. oracle9客户端连接oracle816:tns 出错: 写文件换行,再按行读出 ASP开发工具的讨论!大家都用什么开发工具!DreamWeaverMX有没人用啊?看起来功能挺强的! 哪位大哥用过toplink连接oracle数据库的,请进 如何获得给定的文件的路径,比如文件"a.txt"发路径? (((SOS)))在WebForm中怎么样用程序隐藏dataGrid由属性生成器生成的按钮列(删除。。。) 高分求帮助 请问一般在VB中,该如何维护ACCESS数据库 asp的Response.Write的问题? 你们难道没遇到过这个问题? 大虾们救命!!!在线等待.................. 在次提醒!女孩不要看! ADODB.Stream 错误 '800a0bbc' 用sql的朋友们进来看看,问题不是很难,帮帮我。谢谢。 寻兼职程序员,开发一个的屏幕取词工具软件 怎么在sdk编程中设置editbox的初始值 大虾们救命!!!在线等待................. 如何能够屏蔽WM_SIZEING的消息. 关于DataGrid的问题 找房子的问题?有办法的帮个忙! sql server 与oracle的数据类型 充分发挥网络优势和自由精神,共同开发维护我们自己的网站 遍历表单中的文本框,为何只出现第一个值 请教如何在VB中调用我在SQL中建好的带参数存储过程? 天天泡程序人生,无心向学,欲罢不能,咋办? 怎样向一个数组里面写入数据,使这些数据满足下面的条件? 请各位看看这个网站www.green-net.com.cn,一家不错的深圳通信公司,现在急缺研发人员(包括软件,测试,用服,市场人员),待遇从优。有 updete数据窗口时新insert的数据出现重复问题?紧急! 关于textbox和回车的问题 高分求一个VB源码分析工具CodeReview? 如何得到注册表的网上学习资料?拜托各位大虾指点。 我想买一个bbs论坛! 寻兼职程序员,开发一个屏幕取词工具软件 XP的IIS怪事特别多,怎么就连不上.mdb呢? cshadow(影子)大侠能不能给我 重发一次上次的没收到 用SOFTICE破解软件时怎么知道按几下F12就到了要破解程序的领空?而且对于F11的作用我也不是很理解,请明白的朋友讲一下。 请问属性和内容怎么写在这个里面,谢谢!很简单的,请看看!! fstream的标志位 侯捷译的《java编程思想》99元,太狠了吧,人家原版可是免费下载的!!! 充分发挥网络优势和自由精神,共同开发维护我们自己的网站 求救:如何在vc中设计报表 有关MAP的设置问题 java打印报表的问题!!在线等待中!!! 建党节的说词 用伏安法测电阻时电源电压为15伏,电压表有0~3伏和0~15伏两个量程,电流表有0~0,6安和0~3安.待测电阻阻值为10欧,则电流表和电压表应选怎样的量程,理由 摩尔定律对集成电路意义? 当串联电路中没有电流通过'用电压表测量用电器电压'是多少'如果测电源电压呢就是一个串联电路'没有电流通过'用电压表分别测量电源和用电器电压'结果分别是什么 在用伏安法测电阻的实验中,电压表的示数为4.8伏,电流表的示数为0.5安.如果改变电源电压后,电?在用伏安法测电阻的实验中,电压表的示数为4.8伏,电流表的示数为0.5安.如果改变电源电压 珠光粉在液体中不沉淀有什么好办法?整体粘度500,要求24小时不沉淀 中国文字的发展历程?从象形文字到现在使用的汉字,中国各个朝代的通行汉字各是什么?象形文字到 甲骨文 金文 到小篆 秦隶 到汉书 后来又是什么了? 用伏安法测量电阻时,若电源电压为3伏,被测电阻为20欧,测电压表,电流表的量程应选?A.0_3伏,0-3安 B.0-15伏,0-3安 C.0-3伏,0-0.6安D.0-15伏 润滑油常用指标有哪些?东莞润滑油 反相输入的放大电路反馈电阻上并联的电电容值如何确定 反射阳光能力差的物体,在阳光的照射下,温度升高得()A慢 B快 C不能判断 树脂做的瓷砖配件如腰线能被太阳晒吗? 年月日的知识 反射阳光能力差的物体,在阳光的照射下,温度升高的快还是慢? 什么样的瓷砖太阳晒不裂楼顶装修,我准备贴瓷砖,请问是贴全瓷的玻化砖还是贴几块钱的土陶瓷砖.哪种抗晒? 暖手宝充电一节课,会不爆炸.下课给暖手宝充电,上课忘了拔了,一节课45分钟,每次充电一定时间后就不加热了 反光能力差的物体在阳光下温度升高的快么? 暖手宝排气孔盖子一打开好多黄色水流出来要紧吗 读书笔记50--100字,有时间的就写点吧, 运放集成芯片OPA2340晶体管数和门数为多少,门数不知道的话给我晶体管数也行,请给出正确的数值, 磁砖在太阳下晒可以吗拜托了各位 谢谢 什么是语言发展关键期 帮我做几道计算题,我还有很多作业 为什么有的暖手宝没有排气孔? 语言发展有两个特点,分别是什么? 怎么做好心人帮我一下 中国和美国,哪个的自然资源更丰富? 用能斯特方程解释浓度对电极电势的影响,以铜锌原电池为例,如下在铜锌原电池中,锌电极插在硫酸锌溶液中,铜电极插在硫酸铜溶液中,中间用盐桥连接.测得电动势为1v,在硫酸铜溶液中加入浓 语言是怎样形成的?发育过程中语言有什么发展规律? 哪个好心人帮我做一下 Zn—Cu原电池,CuSO4中加入浓氨水至沉淀消失,电极电势为什么升高.ZnSO4加入饱和Na2S,电极电势为什么降 导线中的电流是1A,导线的横截面积为1mm2. (1)在1s内,有多少个电子通过导线的横截面?(2)自由电子的平均移动速率是多大?(3)自由电子沿导线移动1cm,平均要多少时间? 已知U1=10V、U2=30V、I3=2A、R1、R2、R3均为10Ω,求I1、I2、I3电流值及R抱歉题目错了,是求I1、I2、I3及R1、R3上的电压,上面题目漏了几个字 原电池中电极电势高的一定是正极吗? 交流电路中的总电流与分支电流,总电压与分段电压之间有什么关系(分瞬时值,有效值进行讨论) 西南大旱带来的思考 作文 不必太多但是是要关于春节的我急用 电容元件在交流电路中,当电流瞬时值为0时,是否电压瞬时值为0 暖手宝多久排一次气不会爆炸,怎么安全的排气?班里好几个同学的都爆炸了,我心里挺担心的. 关于春节的文化传统的介绍性文章,不少于700字 将捣碎的马铃薯块加入到过氧化氢溶液中方程式 反射阳光能力差的物体,在阳光的照射下,物体影子的变化规律是快还是慢A.慢 B.快 C.不能判断 能够答多少是多少,谢谢(有回必赞).1.亚洲季风气候的形成,主要受________影响(能够答多少是多少,谢谢(有回必赞).1.亚洲季风气候的形成,主要受________影响( )A.海陆位置 B.纬度位置 在探究导体的电阻跟哪些因素有关的实验中, 暖手宝排气孔怎么弄开啊暖手的袋子排气孔弄不开啊 怎么弄啊 很紧的 关于春节安全知识的文章500字是安全知识,环保作文! 小芳同学在探究“决定导体电阻大小的因素”时,作出了如下猜想 集成电路的分类,以及其应用范围 山西省构筑的三条产业链依赖的本地自然资源除煤炭外还有()A、铜矿石B、石油、c、铝土矿D、...山西省构筑的三条产业链依赖的本地自然资源除煤炭外还有()A、铜矿石B、石油、c、铝土 某同学做“用电流表、电压表测电阻”的实验,可选择的器材有:电源2个(电压分别为6伏、4.5伏),滑动变阻器2个(分别标有“10Ω 3A”和“20Ω 1A”的字样),待测电阻Rx(估计阻值约为19欧), 珠光粉在涂料行业的应用中应该注意哪些问题和细节? 给个中粒似斑状黑云母二长花岗岩的详细描述 你认为我国想要缩小与发达国家科技上的差距,关键是什么(政治问题),请简介说明理由 常用数控机床使用的润滑油有哪几种? 如何计算晶体管高频谐振放大电路的输入输出电阻 串联电路,并联电路 中含有滑动变阻器,电流和电压如何变化? 详解,是一些概念性的.帮忙总结一下!呵呵,也许我们学的快了一点 什么机械最常用到润滑油,哪些制造企业最经常要用到润滑油? 晶洞花岗岩属于花岗伟晶岩么?或者两者有什么关系? 导体的电阻跟哪些因素有关 摩尔定律主要是说集成电路的集成度每________翻一番.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘