当前位置: 首页 > article >正文

极狐GitLab 签约比博斯特,助力新能源智能底盘企业研发提效

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。

相关客户案例

  • 极狐GitLab 客户案例中心

客户背景

总部位于上海的比博斯特是全球领先的智能底盘解决方案供应商,集研发、生产、销售于一体,为国内外车企提供软硬一体的智能底盘产品。该公司在上海、北京设有两大研发中心,在江苏南通设有生产基地,旗下有智能制动、智能转向、智能悬架控制器、域控制器等线控底盘全系产品。当下,该公司已完成智能制动、转向、悬架XYZ三轴产品布局,全栈智能制动产品已出货超20万套;智能悬架产品与国内头部上市公司保隆科技达成深度战略合作,将于2024年内量产;智能转向产品已完成产品开发及量产准备,与国内顶尖客户签订战略合作,预计于2025年正式实现量产。

客户面临的挑战

比博斯特的软件研发是基于嵌入式的,因此对于产品的部署和测试和其他产品有一些不同,比如 CI/CD 需要在嵌入式设备上运行,而且操作系统也不是日常所用的 Windows 或 Linux,是底盘产品专用的操作系统。另外,由于比博斯特所处的行业的特殊性,对于代码质量、版本管理、故障回溯等都有非常严格的要求,为了解决这些挑战,比博斯特在研发管理工具选型时选择了极狐GitLab。

极狐GitLab 界面非常整洁,对于汽车行业的软件研发工程师来讲,容易上手,也能轻松地发现想用的功能。另外,极狐GitLab 作为一个成熟的工具,可以认为是国内的 GitHub,非常的可靠稳定,对于像比博斯特这种非常看重知识产权、资产安全的公司来讲,是非常不错的选择。

——比博斯特软件研发负责人 郑博士

极狐GitLab 解决方案

专业的代码管理,让研发专注于代码开发

比博斯特成立之初采用的是传统的软件研发协作模式,在人员较少的时候并没有太大问题,但是随着团队规模的扩大,传统的研发协作模式在版本管理、分布式开发、冲突解决方面的瓶颈点就暴露出来了。

因此,比博斯特开始寻求更加专业高效的代码管理解决方案,在对比了一些产品后,选择了极狐GitLab,原因是极狐GitLab 在代码管理方面更专业,能够很好的对代码质量进行把控,用专业的工具来解决专业的事情,就能够让研发团队更加聚焦在业务开发上。

MR +门禁自动检查+ CodeReview,规范研发流程,提高代码质量

比博斯特在使用极狐GitLab 后,使用 MR(合并请求)+门禁自动检查+ CodeReview(代码审核)对研发流程做了一定的规范。所有变更必须通过 MR 来提交,需要通过流水线上门禁代码检查,包括静态代码检查和单元检查,最后需要至少两位审核人员审核通过,变更代码才允许被合入到代码主干分支中。极狐GitLab 的多人审核机制,能够很好的把控合入主干分支的代码质量,同时也建立起了研发团队内部的一道质量把控防线。

代码推送规则,实现需求和代码变更的映射

比博斯特非常重视代码的可回溯性,需要将需求和问题及代码变更一一关联起来。为此,比博斯特采用了极狐GitLab 专业版的代码推送规则功能。通过配置将代码提交信息(commit message)进行规范化,系统在代码提交时自动检查是否包含需求或问题单 ID,如果不包含ID 或者ID格式不正确,则无法完成代码的提交。

这样做的好处就是一旦出现问题需要回溯的时候,可以直接通过提交信息找到对应的需求 ID,然后查看需求详情。使用代码推送规则实现了需求变更和代码变更的映射,也规范了团队的代码提交方式。

AI 时代,愿携手共探嵌入式研发提效新范式

AIGC 的发展引领了 AI 软件研发提效的变革,极狐GitLab 也正式对外推出了 AI 编程助手与软件研发助手——驭码CodeRider,通过将 AI 能力引入到软件研发全生命周期来提高软件研发效率,功能包括代码补全、代码解释、代码优化、单元测试生成等,通过和 GitLab 的深度集成还实现了使用 AI 处理 Issue、MR 和 CI/CD。

对此,比博斯特软件研发负责人表示,用 AI 赋能软件研发是趋势,比博斯特也在积极探索用 AI 提高软件研发效率的方式和工具,在这一点上,愿意和极狐GitLab 一起携手探索嵌入式软件研发在 AI 赋能下的提效范式。


http://www.kler.cn/news/325750.html

相关文章:

  • 如何创建网络白名单
  • 【深度学习】(11)--迁移学习
  • FreeRTOS的中断管理
  • AI产品经理面试题详细整理【已拿offer】
  • I/O中断处理过程
  • Linux操作系统如何定时关机?
  • 论文笔记:Gradient Episodic Memory for Continual Learning
  • Chromium 使用安全 DNS功能源码分析c++
  • windows11家庭版开启Hyper-v
  • 使用 Spring Boot 实现 JWT 生成与验证的自定义类
  • golang web笔记-3.响应ResponseWriter
  • 万界星空科技数字孪生:解锁制造业未来,重塑智慧工厂新纪元
  • 从0学习React(4)---更新组件状态setState
  • gradle的入门及kotlin的了解
  • 开箱元宇宙| 探索 Great Entertainment Group 如何利用 Web3 和数字创新重新定义活动体验
  • 【Android】多角度看handler--looper的阻塞
  • 产品管理- 互联网产品(6):产品测试
  • CSS预处理器LESS
  • 工厂模式和抽象工厂模式的实验报告
  • Could not find com.mapbox.mapboxsdk:mapbox-android-accounts:0.7.0.解决
  • 禾赛嵌入式面试题及参考答案(2万字长文)
  • 升级 Windows 后如何恢复丢失的文件
  • 51单片机的教室智能照明系统【proteus仿真+程序+报告+原理图+演示视频】
  • centos7.9使用docker容器方式部署jenkins环境
  • 深度学习中的结构化概率模型 - 非结构化建模的挑战篇
  • QT 开发日志:QT 布局管理 —— 如何使用布局器组织 UI 元素
  • bash 脚本获取当前 git 所有本地分支
  • (undone) MIT6.824 Lab1
  • Python库matplotlib之三
  • 论Web性能的重要性