GitHub 工程团队的开发环境迁移至 Codespaces

GitHub 官方宣布,负责 github.com 的工程团队已将开发环境迁移至 Codespaces。

GitHub.com 的代码库已诞生将近 14 年。当 github.com 的第一个 commit 被推送时,Rails 只有两年的历史,AWS 才诞生一年,Azure 和 GCP 尚未问世。在这 14 年里,GitHub.com 的核心仓库 (github/github) 已收到超过一百万次 commit,其中绝大部分来自于在 macOS 上构建和测试的开发者。

GitHub 称,他们的开发平台在不断发展,过去的几个月里,工程团队从 macOS 转向使用 Codespaces 进行 github.com 的大部分开发。这对于工程师的日常开发流程是一个根本性的转变。GitHub 认为此举让 Codespaces 变得更强大,他们也为 github.com 的未来发展做好了准备。

GitHub 表示,他们长期投入了大量时间和精力来为团队打造一个“开箱即用”的本地开发环境,让新员工可以迅速配置和运行 github.com 的本地实例。

但现实情况是,虽然付出了许多努力,这样的开发环境却依旧十分脆弱。任何看似无害的变更都可能会导致本地环境失效,更糟糕的是,这种情况往往需要数小时的宝贵开发时间来恢复。

考虑到工程师的开发环境各不相同,而且每个人都有自己习惯的特殊癖好。GitHub 被 Codespaces 启发,他们可以像对待基础设施一样对待开发环境,也就是说没有什么是不可替换,或者不可或缺的,并且如果出现意外情况,可在已知的良好状态下提供一个新的 Codespaces 然后重新开始工作。

GitHub 表示,迁移到 Codespaces 解决了现有开发环境中的缺点,激励他们进一步推动改进产品,并提升了整体的开发体验。虽然此次开发环境的迁移结局还算美好,但刚开始时还是颇具挑战性。据介绍,GitHub.com 代码库在磁盘上大约使用了 13GB 空间。单是克隆仓库大约需要 20 分钟,再加上设置依赖项等,引导 GitHub.com 的 Codespaces 会耗时 45 分钟以上。

改变往往是十分困难的事,对于开发环境来说更是如此。GitHub 表示,他们此次迁移至 Codespaces 作为默认开发环境的举动虽然遇到不少挑战,但对最后的结果十分满意,未来会继续优化在上面开发的体验。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/154976/githubs-engineering-team-moved-codespaces

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。