diff --git a/src/ai4se-gitlab.md b/src/ai4se-gitlab.md index 750bd3d..a0a1a0c 100644 --- a/src/ai4se-gitlab.md +++ b/src/ai4se-gitlab.md @@ -1,22 +1,17 @@ # AI 辅助软件工程:Gitlab 赋能开发者的 AI4SE -[Developing GitLab Duo : How we are dogfooding our AI features](https://about.gitlab.com/blog/2024/05/20/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features/) +![](images/gitlab-duo.png) -作为我们博客系列的一部分,我们分享了在软件开发生命周期中整合AI的实际案例,以及我们如何使用指标来衡量其成功。 -### GitLab Duo - 新封面 +GitLab Duo 是团队开发的一套AI驱动功能。它革新了我们的内部工程工作流程,极大提升了开发效率。作为狗粮政策和透明度的坚定拥护者, +我们愿意展示团队如何运用AI技术。这包括GitLab Duo的代码建议和聊天功能,它们每天帮助我们简化开发流程,减少手动操作,从而提高生产力。读者将了解到, +无论是技术密集型的工程团队,还是技术要求较低的团队(例如技术写作和产品管理),都从中获得了显著的好处。 -生成式AI标志着软件开发行业的一个重要转变,使开发、保护和操作软件变得更加容易。我们的新博客系列由产品和工程团队撰写,带你深入了解我们如何创建、测试和部署你所需的AI功能,并将其集成到企业中。了解GitLab -Duo的新功能,以及它们如何帮助DevSecOps团队为客户提供更好的成果。 - -GitLab Duo 是我们的一套AI驱动的功能,它改变了我们的内部工程工作流程,提升了整个开发过程的效率。作为狗粮政策和透明度的坚定支持者,我们希望展示我们的团队如何利用AI,包括GitLab -Duo代码建议和 GitLab Duo 聊天等功能,每天简化开发流程,减少手动工作,提高生产力。你将了解到我们在高度技术化的团队(如工程团队)和较少技术化的团队(如技术写作和产品管理)中所体验到的好处。 - -### 现实世界的使用案例 +## GitLab Duo 内部使用案例 我们的团队已将 GitLab Duo 的众多功能整合到日常工作中。以下是 GitLab Duo 如何帮助他们完成日常活动的一些例子。 -#### 总结和文档 +### 总结和文档 **简化代码审查过程**:后台开发人员Gosia Ksionek展示了AI在她工作流程中的实际好处,通过使用 GitLab Duo 简化代码审查过程。她有效地利用GitLab Duo总结合并请求,使代码更改的审查变得更容易和更快速。除了总结合并请求外,Gosia还利用GitLab @@ -42,34 +37,33 @@ Duo编写简短而有影响力的发布说明,突出更改及其对用户的 **优化文档站点导航**:资深技术写作员Suzanne Selhorn利用 GitLab Duo 通过提供基于工作流的页面顺序来优化左侧导航。Suzanne向GitLab Duo提供了功能列表,生成了最佳顺序,并更新了左侧导航以匹配。 GitLab Duo 还比使用传统手动方法更快地起草了入门文档。 -#### 目标设定和团队对齐 +### 目标设定和团队对齐 **起草和完善OKR**:代码审查后端工程经理François Rosé发现GitLab Duo聊天在起草和完善OKR方面非常有价值。通过更清晰和有效地表达目标,François增强了目标设定和团队对齐。使用聊天,François确保每个OKR都是明确的、可执行的,并与团队的目标保持一致,从而提高了整体团队表现和凝聚力。以下是他使用的一个示例提示: -“这是我打算创建的一个OKR: +```bash +这是我打算创建的一个OKR: 目标:回顾回顾会议,促进团队繁荣 - KR:测量100%团队成员的回顾满意度 - KR:识别3个异步回顾的改进点 - KR:实施1个改进 - -请提供如何改进这个目标和这些关键结果的直接反馈。” +请提供如何改进这个目标和这些关键结果的直接反馈。 +``` **简化招聘和招聘流程**:聊天帮助前端工程师Denys Mishunov制定了更新技术面试候选人电子邮件模板的明确简洁的文本。团队合作优化了沟通,以确保候选人获得所有必要信息,并使用合并请求进行。这个例子展示了AI工具在招聘流程中增强沟通的实际应用。 -#### 事件响应和配置 +### 事件响应和配置 -**总结生产事件**:现场可靠性工程师Steve Xuereb使用 GitLab Duo 总结生产事件并创建详细的事件回顾,从而简化文档编制过程。 +**总结生产事件**:现场可靠性工程师 Steve Xuereb 使用 GitLab Duo 总结生产事件并创建详细的事件回顾,从而简化文档编制过程。 -**创建样板 `.gitlab-ci.yml` 文件** -:Steve还使用聊天创建样板 `.gitlab-ci.yml` 文件,显著加快了他的工作流程。聊天作为一个有价值的伙伴,提出建议。此外,代码解释提供了详细的答案,在事件发生时很有帮助,提高了他的生产力和对代码库的理解。 +**创建样板 `.gitlab-ci.yml` 文件**:Steve还使用聊天创建样板 `.gitlab-ci.yml` +文件,显著加快了他的工作流程。聊天作为一个有价值的伙伴,提出建议。此外,代码解释提供了详细的答案,在事件发生时很有帮助,提 +高了他的生产力和对代码库的理解。 -#### 代码生成和测试 +### 代码生成和测试 **全栈开发**:高级前端工程师 Peter Hegman 一直在使用代码建议进行 JavaScript 和 Ruby 开发。这突显了代码建议已成为开发人员跨越完整技术栈的强大工具。 @@ -77,27 +71,31 @@ Mishunov制定了更新技术面试候选人电子邮件模板的明确简洁的 观看Denys如何使用 GitLab Duo 生成 Python 脚本以获取内容数据并将其存储在本地: -#### 研究和支持 - -**生成测试源代码**:高级开发者倡导者 Michael Friedrich 使用 GitLab Duo 为 CI/CD 组件生成测试源代码。这种方法已在各种演讲和展示中分享,例如最近的 -Open -Source@Siemens活动(公开幻灯片)。以这种方式使用 GitLab Duo 有助于确保代码的一致性、良好的文档记录,并与我们的最佳实践保持一致。查看他的 -Rust 示例。 +### 研究和支持 -Rust示例 +**生成测试源代码**:高级开发者倡导者 Michael Friedrich 使用 GitLab Duo 为 CI/CD 组件生成测试源代码。 +以这种方式使用 GitLab Duo 有助于确保代码的一致性、良好的文档记录,并与我们的最佳实践保持一致。 **简化研究任务** :我们的团队成员在有关于 GitLab 功能的问题时,经常求助于聊天,简化他们的研究和支持任务。Michael分享说,“当我有关于GitLab功能的问题时, 我会默认使用聊天,而不是打开 100 个浏览器标签。这种工作流程帮助我高效地在我们的社区论坛上协助用户。例如,我最近使用这种方法帮助一个用户进行SSH部署。” 使用聊天不仅节省时间,还提供快速、准确的信息,增强了我们为社区提供的支持。 -#### 功能测试 +### 功能测试 **测试新功能**:我们的工程师使用 GitLab Duo 测试新的功能,如代码建议中的Markdown支持。我们的一个团队成员指出,“我需要测试代码建议中的Markdown支持,以便在VS Code中编写博客文章和GitLab文档。我看到它已合并到17.0版本。”通过内部测试这些功能,我们确保它们在发布前达到我们的质量标准。 -#### 理解外部代码库 +### 理解外部代码库 + +**介绍外部项目解析功能**:GitLab Duo的 `/explain` 功能,在帮助理解导入 GitLab 的外部项目方面极为有效。这一功能在 Michael +最近与开源专家 +Eddie Jaoude 的直播中得到了重点介绍。Michael 表示:“我利用 `/explain` 功能来深入理解外部项目的源代码。我曾在直播中分享这一思路, +它有助于我们更好地了解开源项目及其依赖关系。”这一功能对于开发者而言,在快速掌握不熟悉的代码库及其依赖关系方面显得尤为珍贵, +极大地提升了他们的工作效率和代码理解能力。 + +## 其它 + +相关文章: -**解释外部项目**: GitLab Duo 的/explain功能在理解导入到GitLab的外部项目时特别有用。这一功能在他最近与开源专家Eddie -Jaoude进行的直播中得到了强调。Michael告诉我们,“我在外部项目上使用/explain来理解源代码。我在直播中提出了这个想法,用于了解开源项目、依赖关系等。” -这个功能对于需要快速掌握不熟悉代码库功能和依赖关系的开发人员来说非常宝贵,显著提高了他们的效率和理解力。 +- [Developing GitLab Duo : How we are dogfooding our AI features](https://about.gitlab.com/blog/2024/05/20/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features/) diff --git a/src/images/gitlab-duo.png b/src/images/gitlab-duo.png new file mode 100644 index 0000000..1184e78 Binary files /dev/null and b/src/images/gitlab-duo.png differ