跳到内容
使用更好的开发人员体验解锁您的流状态。 现在就去拿10月29日至30日GitHub Universe的门票。
GitHub企业

Duolingo授权其工程师成为GitHub Copilot专业技术的力量倍增器。

  • 25%使用GitHub Copilot提高开发人员速度
  • 100万具有代码空间的最大回购的设置时间
  • 67%代码审查周转时间中位数的减少
  • 70%拉入请求增加
座位数量
300
位置
宾夕法尼亚州匹兹堡
问题

不一致的标准和工作流限制了开发人员的移动性和效率,限制了Duolingo扩展内容和交付核心任务的能力。

解决方案

GitHub Copilot、Codespaces和定制API集成增强了代码的一致性,加快了开发人员的速度,并消除了使用工程作为专业技能乘数的障碍。

产品

学习一门语言不仅困难,而且代价也很高。对许多人来说,这是一个恶性循环:虽然学习一门新语言可以为增加收入和改善生活开辟新的机会,但他们负担不起。2011年,Duolingo开始改变这一状况,为用户提供免费学习另一门语言的方式,从那以后,它已经发展成为世界上最受欢迎的教育方式。但该公司的使命并没有到此为止,它还想建立世界上最好的教育平台,并让所有需要它的人都能使用它

起初,Duolingo的开发人员专注于构建其移动应用程序和基础设施,但该公司很快意识到,需要在第二语言习得和语言学习教学等主题方面的专家来增强其工程能力。如今,拥有5亿多用户的Duolingo收集了前所未有的关于人们学习方式的数据见解。它的开发人员使用这些数据与语言学习科学家、机器学习工程师和人工智能专家团队合作,不断改进其平台。 

Duolingo总部的霓虹灯标志

“在Duolingo,我们使用工程作为专业知识的力量倍增器,”Duolingo高级工程经理乔纳森·伯克特(Jonathan Burket)表示。 

为了成为力量倍增器,Duolingo的300名开发人员需要在工作中尽可能高效,不要把时间花在无关的任务或分心的事情上。Duolingo依赖GitHub企业保持其开发人员的灵活性和专注性,充分利用GitHub的API和工具,如代码空间GitHub Copilot公司.

自2011年以来,Duolingo一直使用GitHub进行源代码管理,当时GitHup只提供代码托管和协作功能。当时,Duolingo依靠Gerrit和PullApprove等不同的第三方产品进行代码审查和其他功能,这使得公司的三个主要存储库具有广泛不同的文化和拉请求流程。这是低效率的根源,并阻止了开发人员轻松地从一个存储库迁移到另一个。但随着GitHub添加了新功能,Duolingo采用了它,并放弃了第三方工具,逐渐将GitHub置于其开发过程的核心。当Duolingo的需求与所提供的功能不同时,该公司转向GitHub的API,使用自定义的GitHub机器人实现来标准化其转发和项目的工作流程。例如,一次Slack集成将代码审查的中间周转时间从三个小时减少到了一个小时。

“GitHub使我们能够加强一致性和标准化的工程文化,使内部流动更加容易,”Burket解释道。自构建此集成以来,Duolingo已经转向微服务架构,并已从三个存储库增长到400个。这种集成使得团队可以很容易地为彼此的项目做出贡献,甚至允许非技术人员在不影响质量的情况下进行小的代码更改。与此同时,Duolingo使用GitHub API构建了进一步的定制,以确保其开发人员在部署之前正确测试其代码,从而帮助避免问题并提高站点稳定性。

Duolingo首席软件工程师Art Chaidarun表示:“GitHub拥有我使用过的功能更强大的API之一。”。“它允许我们自己构建任何需要的东西,这样我们就可以专注于实际的业务需求和业务逻辑,而不是构建GitHub可以处理的基础设施。”

该团队还通过最近采用GitHub Copilot加快了他们的工作流程,这是一款AI强大的配对程序员,在开发人员编码时为他们提供自动完成风格的建议。该工具为开发人员提供了两种接收建议的方式:开始编写他们想要使用的代码,或者编写描述他们想要代码做什么的自然语言注释。Duolingo首席技术官Severin Hacker表示,GitHub Copilot不仅对已经在使用GitHub的公司来说既快速又容易,但它也能带来即时效益,尤其是对于代码库庞大的企业。 

像GitHub Copilot这样的工具在大公司中非常有影响力,因为工程师可以突然对其他开发人员的代码进行有影响力的更改,而以前很少公开。

“GitHub Copilot可以与我们所有其他的代码开发工具一起工作,在整个组织中启用它就像选中一个框一样简单,”Hacker说。“像GitHub Copilots这样的工具在大公司中非常有影响力,因为突然间,工程师可以用很少的时间对其他开发人员的代码进行有影响力的更改。”

Burket将此视为使开发人员能够做到最好,而不是纠缠于小细节。

“GitHub Copilot可以防止你在做需要大量脑力的深度工作时分心。你花在日常工作上的时间更少,花在困难的事情上的时间更多,”Burket说。“有了GitHub Copilot,我们的开发人员就可以保持流动状态并保持动力,而不用费力地钻研代码库或文档。”

使用GitHub Copilot,我们的开发人员将保持流状态并保持势头,而不是抓取代码库或文档。

Burket解释说,GitHub Copilot通过限制上下文切换,减少手动生成样板代码的需要,进而帮助开发人员专注于解决复杂的业务挑战,从而提高了开发人员的生产力。Burket说:“Boilerplate代码是Copilot非常非常有效的地方。实际上,你可以使用Copilot完成基本类或函数。”。例如,对于刚接触特定存储库或框架的开发人员,Burket估计开发速度至少提高了25%,对于那些已经熟悉相同代码库的开发人员来说,速度提高了10%,他们可以更快速、更轻松地创建样板代码。开发人员速度的提高部分来自这样一个事实,即GitHub Copilot的建议可以与代码库的上下文一起构建。

哈克说:“GitHub Copilot的独特之处在于,它着眼于你其余工作的背景,并将其纳入建议中。其他工具没有这种背景意识。”。“我不知道今天有什么东西能与GitHub Copilot的功能相提并论。”

Duolingo还发现了GitHub基于云的开发环境Codespaces的效率和一致性。当它的一些开发人员在新的Apple M1机器上本地运行Docker时遇到问题,Codespaces提供了一种跳过本地环境故障排除的方法,并提供了一键式环境设置。代码空间的力量和效率促使Duolingo内的团队完全转向代码空间。

Chaidarun说:“有了Codespaces,您不需要浪费一天或一周的时间来设置每个存储库。相反,您可以在几分钟内开始。”。现在,建立Duolingo最大的回购只需一分钟,而不是在Codespaces之前几个小时甚至几天。“代码空间也很适合维护。当开发人员进入一种奇怪的状态时,他们可以重新构建代码空间,重新开始工作。否则,他们可能会花费数小时来修复环境中的问题。”

当第一次与Codespaces见面时,Burket说,他和其他开发人员一样,在放弃控制权方面有一些犹豫,但他很快就被说服了。 

“我想完全掌握自己的经验。我想,‘我不需要这个工具通过SSH连接到另一台机器来处理我的问题,’”Burket说。“但我现在是一个信徒。我认为我必须通过远程运行在很多事情上做出妥协,但事实并非如此。”Codespace使团队能够配置一个标准化但可定制的环境,使Duolingo很容易让开发人员更快地加入新项目。

工程时间是Duolingo最宝贵的资源。在GitHub Copilot和Codespaces的帮助下,充分利用这段时间,使我们能够更快地实现目标。 

无论是GitHub Copilot、Codespace还是使用GitHubAPI构建的自定义集成,GitHup都允许Duolingo的开发人员花更多时间改进产品体验、开发新应用程序和学习内容,而不是在处理日常琐事时分心。 

“工程时间是Duolingo最宝贵的资源,”Chaidarun说。“在GitHub Copilot和Codespaces的帮助下,充分利用这段时间,使我们能够更快地实现目标。”

有兴趣带来GitHub企业你的组织?

开始您的免费试用GitHub企业 对于30天并增加团队的协作。试用期满后,每个用户每月21美元。

好奇其他计划?来自GitHub

你的故事是什么?

开始在GitHub上与您的团队合作

想自己使用GitHub吗?
查看我们的个人计划