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

独家爆料: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里的文化氛围是非常开放的。如果某人做了一些很有意义的事情,他还可以自己写总结,讲述做了什么工作,主管会根据这些“成就”有加分。因为有时候他做的这些工作不一定被很多人知道,可能是涉及到其他部门的工作,帮助兄弟部门做了很多改进,相关的人能知道,但是本部门的人不知道。可以通过这种方式,把自己做过的一些比较重要的事情体现出来。

福利!MDCC 2015 免费展位等你来申请! 《近匠》Gamegou:多些坚持,瞄准海外的小团队也有春天 细说JavaScript异步函数发展历程 YoMail创始人Albert Yang:我与Email交织的程序人生 TIOBE 2015年9月编程语言排行榜:时髦语言Rust进前50 50张999元限量特惠票!SDCC2015软件开发嘉年华 首批讲师名单公布 百度安全:XcodeGhost大爆发可能只是冰山一角 北京市计算中心云计算转型:缘定OpenStack MDCC 2015移动开发者大会 八大技术专场首批议题剧透 Apple TV指南:从零开始用Swift开发个tvOS应用 React Native、开源:MDCC平台与技术Android专场全揭秘! 相约MDCC 2015 首批免费展位破茧而出 MDCC 2015召开在即,平台与技术iOS专场大咖来了! 一个iOS开发者对tvOS SDK的初探 前Twitter iOS技术团队负责人:使用第三方库的四大准则 【SDCC讲师专访】巨杉数据库创始人兼CTO王涛:SequoiaDB为何要开源? 对话函数式编程语言Roy之父Brian Mckenna GitLab获400万美元A轮融资,GitLab 8.0将很快到来 【CTO讲堂】如何构建高可用和可伸缩的架构? 未来程序员会被机器取代吗? React Native实战(一):配置和起步 集聚MDCC 2015 免费展位第二波正式放出 【深入浅出Koa】入门知识,带你以现代化开发方式构建Web应用 升级到Node V4的七个理由 支持大量ES6特性 像写SQL一样编写Java数据应用 Swift 2.0实战:如何实现从非零下标遍历数组? 手把手教学:在iOS 8中使用Cocoapods 交互技术前沿与应用实战:MDCC虚拟现实专场议程揭晓 解密“攻城狮使用手册” 技术专家齐聚!MDCC 2015精彩日程全曝光 基于ActiveMQ的消息中间件系统 OneMM逻辑与物理架构设计详解 在sun网站上到那个地方下栽 Java 类文件? 送给cathy的, 不要客气 我老老实实的学习去, 学不成不会回来的, 大家顺利 为什么我的这个php不执行? 有关CASE工具 请问怎么样将VB程序打包?就是生成一个不需要源代码和没有VB编译器的环境下可以运行的可执行程序。 关于如何做OEM 请教大师 这是所谓的“情”吗?谁碰到过如此谎谬的事~~“我们这样算什么?!” 分值,就那么重要吗?大家来探讨一下! 请问如何用TC或BC或VC实现字符界面下文本阅读器(请尽快复) lemonade请进 请教水平考试 请赐教如何制作WINDOWS下的电子行程表(请尽快复) 号外!!号外!!谁能认真点回答我这个问题? 学了C和JAVA以后,我该学哪中语言? 这么晚了,还有谁在水园? 如何用JSP实现聊天是中的自动滚屏功能? 我的FlashGet,NetAnts全都没有办法下载了!!!急死我了!!! 探讨用专业论坛和新闻组来促销,那位兄弟有经验? 一个简单的问题,大家来看罗。 如何禁止EDIT控件输入? To:pbdesigner兄弟没找到解决的办法,只好修改程序流程避开这个问题8-( 小弟该如何学习? Actinia在吗?问你个问题! 今天又有人送分,he he! VC快玩完了!!!!改学BCB!!!! 一个简单的问题,关于cin的 怎样向listview发送消息? N人上班,按照白、夜、休三班倒,如何每月按此顺序自动排班 TreeView接点如何响应单击事件? 我的一本c++教程,刚刚下载了练习答案,不会用, 请问这是个什么东东问题?(只有这么多分了。。) 一张表内关键字如何互换? 本人想插入一个记录,但该记录的一个字段是一个已经输入的值,你说该用什么函数处理呀?本人想了一个早上也想不出个原因来!!!! 今天真热,一大早爬起来去游泳,感觉真好。这里有喜欢早晨去游泳的吗? DCOM问题。Win2000下的服务器应怎样配置,才能使客户机调用服务器端的DCOM。 再不帮我我就死定了 我要哭了! 痛苦:如果你的头儿叫你帮他修改他写的一大段垃圾代码,你会怎么做办? 工程为什么不能打包? 高手快来。 请问怎么安装PB 那有Acrobat下載,不是Acrobat Reader Foxpro的ODBC,是不是真的就不支持update当前游标的记录....? 怎么在SQLSERVER2K里用存储过程得到的完整的Xml文件,我想用jsp取出来? 关于ASP 能否将文件编译程序中。 请问大家用delphi都做过哪些软件呢?能否提供下载以便欣赏呢?(无源码也可) 这是怎么回事,前几天我用BCB作了一个特殊的窗体,为什么现在我一运行一个程序所出现的窗口就是那个特殊的窗口即便是刚起动起系统也这样为什么? 为什么VB6通过ODBC方式访问一些数据库表(如本地的SQL Anywhere5或服务器端的Sybase11.5)时,只能作查询操作,不能作修改删除操作? 先正达与拜耳哪个好 在南京路你遇上一个老外,怎么用英语告诉他怎么去上海博物馆?快!明天就要交作业了! 英语翻译 血糖仪,杭州哪里有卖拜耳的血糖仪的啊? 英语翻译英语翻译 英语翻译However,efficiency efforts – largely driven by new entrants – shuffle profits and power within the industry.A significant portion of advertising inventory that was proprietary is now “open” – sold through exchanges,as a result b 英语高手帮我翻译一个地址,请把这个地址翻译成英文:北京市石景山区永乐东小区40楼2门101室.邮编100040 世博会口号世界在你眼前我们在你身边 英文怎么讲? 英语翻译All of us need feel needed and admired.But unless we hear words of praises from someone else,how can we know that we are valued friends or co-workers?The effects of praise can be great indeed.A new minister called to a church jokingly ref 英语翻译邮编710048中国陕西省西安市碑林区东关南街古迹岭小区请问这个地址英文邮编写的时候是这样写:Shaanxi Province,P.R.China 710048,还是Shaanxi Province,710048P.R.China 东关南街的英文是 South Dongg 2010年上海世博会志愿者的口号为:“世界在你眼前,我们在你身边.”请你用简洁的语言诠释口号的含义.求求你们了,有谁会的说一下啦,再追分好不好? 英语翻译徐家汇的地理位置对于服装店来说相当的好,徐家汇每天客流量都超过上万人次.而且徐家汇在上海是属于中高档水平的消费中心和娱乐中心,所以从市场定为来说很适合XX. 中国地址翻译 北京市丰台区西罗园三区20号楼1004号 的英文翻译怎么翻?另外,邮编怎么书写 世界在你眼前 我们在你身边是上海世博会志愿者的口号 这对你的成长有何启示RT、 英语翻译目前越来越多的组织更加关注调动员工积极性和工作效率方面的问题.而激励员工已经成为管理者的一项技能,更是一项挑战.激励有很多方面,有物质的,也有精神上的;有具体的,更有 英语翻译韩国京畿道龙仁市处仁区白岩面白岩里409号统一大厦(或hana大厦)309号金龙云 上海世博会志愿者口号“世界在你眼前,我们在你身边.”表达了怎样的信息.急吖! 英语翻译今天是雪天.外面都变成了白色.车是白的,草坪是白的,树是白的,楼房也是白的.看,淘气的雪花给楼房戴上了帽子,给草坪铺上了白地毯,给车穿上了白色的衣服.孩子们有的在打雪仗,有 英语翻译 “魅力上海,闪耀世博”用英语翻译 英语翻译在汉语里,“偲”字有两个读音,一个念Cai,另一个念Si.当其作为名字时读Cai,但人们常常将其误读为Si.因此在上次的在读证明中,我们由于疏忽,将许偲先生的名字误拼为Si,对此深表抱歉. 英语翻译 英语翻译1、单位平方米的造价?每年的维护经费?2、木材的取材树种?来源?3、加拿大目前的使用率?1、单位平方米的造价?每年的维护经费?2、单位建筑面积的节能效率与传统钢筋混凝土建筑的 英语翻译北京时间2005年10月12日9时9分52秒,中国自主研制的神舟六号载人飞船,在酒泉卫星发射中心发射升空后,准确进入预定轨道,神舟六号载人飞船发射成功.神舟六号载人飞船是中国神舟飞 英语翻译:中国的名胜古迹你都听说过哪些? “上海世博与无锡”的英文翻译.要求语法正确,非机器翻译“上海世博与无锡”“上海世博会有很多精彩的展馆,我是一个中国人,对自己的祖国有着深深的热爱,所以我打算重点参观中国馆.中 我很想去参加你的生日 英语翻译.请快 英语翻译大雁塔小雁塔钟楼大唐芙蓉园兵马俑 英语翻译一般现在时的 几道英语翻译! 快!1.告诉我更多的有关你学校的情况2.非常钦佩他们3.去购物中心4.知道怎样烧出美味的食物5.读一篇文章顺便问一下 在上个学期快结束时(翻译)I like John and i like his brother, 英语翻译:北京的历史很悠久,还有名胜古迹多,可以吃到很多美食. 关于上海世博的英语翻译EXPO Shanghai 2010,求速度.EXPO Shanghai 2010 “Enjoying the beauty of the unity in the diversity”.Celebrating the human spirit of creativity and community, of remembrance and prospective. When the world comes to 英语翻译There were white lines around it,and it had a small black board saying:"Only for Head of Collage" 英文翻译. 刘德华要在北京开演唱会吗? 英语翻译到底是谁? 英语翻译他的爸爸是日本人妈妈是美国人他的爱好是打篮球他想加入体育社团他会说英语也会说汉语他最喜欢的明星是迈克尔杰克逊他会弹钢琴还会唱歌和跳舞他也会弹吉它他真是一个多才 你打算到哪儿度假?英语翻译 英语翻译:世博会开幕时间也用英语回答.用句子连接两句话,合情合理.半小时以内好的加分 求一篇关于计算机的文章,要有英语翻译.急 山东省青岛市经济技术开发区北江路7号507室 英文这么翻译 世博会开幕 英语翻译是谁? 英语翻译如果我们能回到从前如果时间倒流如果她没有说要回来如果你没有回去找她或者说你回去了没有找她如果过年你对我说的话都做到了如果我没有犯错如果你留我了如果你和她的一切 他还想去别的什么地方吗?英文翻译~ 翻译一下,英汉互译. 英语翻译我和我的同伴为大家表演3个魔术.我负责解说,XX来表演.那么,现在就开始了.第一个魔术:大家注意好,这是一副扑克牌.大家可以随意检查,接着我们需要一位观众配合,谁愿意上来?··· “去任何自己想去的地方”英语翻译优美点如题 英语翻译中文菜名,英文菜名 翻译英语短文 请大家帮忙,谢谢INDIGOThe process of using.indigo dye to enrich clothing creates an authentic,vintage look and rica color,This unique treatment has been applied to produce an enhanced appearance taken when wearing with light 英语翻译so the difference between $125 and $134 may be viewed as risk premium you may choose to pay to lock in the future tuition at year amountif cash flow regularities are present within the stream,the use of shortcuts,such as finding the prese 英语翻译:你买了什么菜? 英语翻译We are keeping an ambitious expansion plan in China.You have an opportunity for a fast career,you will join us at RESPONSIBLE TRAINEE level and we will be looking to develop you quickly into a section manager,department manager or store m 1.北京市朝阳区十里堡一号院恒泰大厦B座7016室 2.商务部 3.工程部 这三个都是做名片时要翻译成英语的,大 英语翻译Investors (or fund managers) make a living by managing a selection of shares from various companies and hoping for a profit when share prices move. 十道菜的英文翻译是什么? 你想象中的拜耳 西单商业街和王府井商业街的区别?2个地方离得远吗?哪个商业街消费水平更高?西单商场的人气旺还是王府井旺? 菜是你自己亲自做的吗 英文翻译 血糖仪拜耳的好不啦? 如何写关于上海南京路的英文简洁(要50个单词!是初一英语水平的)也不要太简单.要把南京路的地址和特点写清楚! 英语翻译Clothes may not make the man or woman,but the reality is that how you look goes a long way toward leaving a great first impression.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn