我们可以从Facebook的软件开发人员中学到什么
Facebook最近将关键操作系统(OS)诊断工具贡献给GitHub开源存储库。使此代码开源的过程提供了对其他组织如何从开源社区提供贡献和增益的过程。
在该社区中,源代码被收集并维护在GitHub等存储库中。
存储库持有更改请求,并提供版本控制和人们查看源代码的能力,请评论它,甚至修改它。
治理结构提供了一种同行评审,它控制了如何将新功能的修改或请求纳入主代码基础,或者被维持为主要开发词干的分支。
这是一个经过验证的模型,也可以在组织内部应用于公司的不同软件开发团队,以协调和分享在业务中的想法,打破筒仓,帮助促进技能并提高代码质量。
全球互联网巨头是开放来源的大型支持者,在2016年5月在阿姆斯特丹的GitHub卫星活动中,Facebook将其Osquery工具作为开源发布。
该工具将OS的内部工作公开为结构化查询语言(SQL),允许管理员运行能够确定它运行的何种查询。
Osquery在整个Facebook内部使用。“您可以运行查询以找出运行的完整进程列表,”Facebook Developer Javier Marcos表示。“Osquery是开放来源的事实意味着现在有一个很酷的安全社区,公司已经创建了它的业务。”
根据Facebook开发人员Marjori Pomarole,它始终是公司的意图使Osquery开源:“这意味着我们必须使代码可扩展到其他平台,而不仅仅是Facebook。”
她表示,该代码也必须以一种方式设计,这使得开源社区中的其他开发人员能够易于参与其中。
“如果他们想要调整Osquery的人使用,那么,如果他们想要为自己的使用,或者他们认为他们想要修复自己的代码,那么人们就不得不足够干净。”
鉴于该工具允许人们找到OS漏洞,PomaroleAd Facebook需要与为项目提供贡献的人,如哪些信息公开分享的问题。
“这与我们在GitHub上看到的很多开源项目相反,”氯洛·加入。
开源项目提高行业中每个人的知识。“分享代码很有趣,有人与你交谈,”Facebook的Marcos说。
Facebook的哲学是使其代码开放来源。黑摩尔说:“一旦开发出一些事情,我会看到很多兴奋,我们如何使它开源。”
然而,这些动作不是纯粹的利他主义。黑摩尔说:“开源开发阻止人们进入孤岛,创建软件,以帮助解决每个人都面临的问题。存在的共享越多,您提高了安全性和知识就越多。“
她自己的经验是开源有助于开发人员学习。“有人读取你的代码并指出改进比阅读Wiki好多了。”
她添加了新开发人员在GitHub等社区上有可用的代码,这是一个巨大的优势。
许多公司在招聘开发人员时要求进行一定程度的经验。“如果你是刚刚开始的人,你可能已经做了一些实习,但你可能没有在一家公司工作过,”罗马尔说。
但是,她补充说,而不是拥有一个表明潜在雇主的简历,你补充说,你“可以将它们指向你的Github存储库,你一直在研究,或者向他们展示你一直在帮助其他项目的地方”。
然而,波美人认为,人们希望人们希望开发人员在GitHub上发布所有项目并像简历一样对待。
非Facebook开发对于开源社区的实用性不是所有的东西,Pomarole说,一些“重量量身定制到Facebook基础设施”的项目。
她说,她补充说,只适用于Facebook自己的内部使用的项目,或者公司认为它无法正常支持它,请不要使良好的候选人成为开放的来源。
在这些情况下,我们“尝试在白皮书或博客文章中分享知识而不是开源代码”,这是罗马洛。