《配置管理最佳实践》——第2章 构建工程 2.1为什么构建工程如此重要

简介: 构建工程有时候是项很令人头疼的工作。比如,有的公司开发团队甚至经常长时间无法获得一个可靠的可执行文件。原因可能有以下几个:第一个原因是没有实行可靠的源代码管理实践。这导致了我们不知道怎么能得到一份版本相同的源代码。第二个原因是构建过程太复杂且不可靠。第三个原因是不支持新的构建需求。

本节书摘来自异步社区《配置管理最佳实践》一书中的第2章,第2.1节,作者: 【美】Bob Aiello , Leslie Sachs著,更多章节内容可以访问云栖社区“异步社区”公众号查看

第2章 构建工程

构建工程是高效地把源代码生成二进制文件的学科。构建工程可以很简单,例如仅仅执行一下 Makefile 或者 Ant 脚本;也可以很复杂,比如写一个完整的支持底层技术架构的构建框架。在本章中,我们将会讨论构建工程中遇到的挑战、构建工程的核心技术,以及一些选择合适构建工具的方法。我们也会讨论如何挑选和培养构建工程师。如果公司里现在没有一个合格的构建工程师,建议利用已有的资源去完成现在的工作。配置管理中构建工程是最具挑战性和最有意义的角色。

本章全面介绍了构建工程的方方面面,包括目标、原则、基本概念等;介绍了构建工程最佳实践中如何理解和运用这些核心概念,包括版本ID、依赖关系、生成构建。还讨论了当前流行的很多工具,以及质量成本和相应的培训。这里介绍了构建工程师这个角色,同时讨论了建立一个可靠可重复的构建过程和应用框架中构建工程师的重要性。本章也涵盖了持续集成最基础的内容以及构建工程的前景。构建工程是配置管理的核心职能,本章将在这些方面进行深入的介绍,希望能给大家一个正确的方向。

2.1 为什么构建工程如此重要

构建工程可以重复为研发团队准确地编译和链接代码。构建工程可以快速地重新构建一个版本,不但能提高研发团队的工作效率,还能促进软件的开发。快速构建对于任何软件开发都是很重要的,尤其是敏捷和迭代开发很早就强调了这一点。正确的构建可以避免很多将对开发团队和整个公司产生重大影响的问题。我看到过一个发布和部署中的严重问题,甚至影响到了世界经济(第6章会详细介绍这个例子)。构建工程中的问题也会产生同样的影响。构建工程在提高应用程序质量的同时,还可以提高整个公司的生产效率。

为什么优秀的开发人员其构建却有问题

构建工程有时候是项很令人头疼的工作。比如,有的公司开发团队甚至经常长时间无法获得一个可靠的可执行文件。原因可能有以下几个:第一个原因是没有实行可靠的源代码管理实践。这导致了我们不知道怎么能得到一份版本相同的源代码。第二个原因是构建过程太复杂且不可靠。第三个原因是不支持新的构建需求。比如,需要对现有自动化构建过程大做修改后才能支持新的构建需求。我觉得最好的方法是重新开始,而不要在自主研发的解决方案里挣扎。这些自主开发的解决方案只有那些顾问可以理解,可惜他们早已离开去支持下一个合同了。我在很多大型企业都看到过这些情况,包括银行和对冲基金公司。

相关文章
|
29天前
|
运维 Cloud Native Java
Java项目部署的发展流程
本文介绍了四种不同的应用部署方式:传统部署、虚拟化部署、容器化部署和云原生部署。每种方式的特点、部署流程及优缺点进行了详细说明。传统部署直接在物理机上运行应用,存在资源利用率低和运维成本高的问题;虚拟化部署通过虚拟机实现资源隔离和复用,但有性能损失和单点故障风险;容器化部署则提供轻量级、可移植的应用环境,具备良好的隔离性和一致性;云原生部署结合了容器化和微服务架构,实现高效运维和灵活扩展。
Java项目部署的发展流程
|
6月前
|
运维 搜索推荐 Devops
企业构建平台工程的路径与方案
探讨企业如何构建自己的平台工程。
103497 0
|
6月前
Tars测试工程创建
Tars测试工程创建
|
XML 数据可视化 Ubuntu
从零构建可视化jar包部署平台JarManage
在java项目部署过程中,由于内外部各种因素,可能会遇到一些感觉操作不便捷的场景,例如jar包未随系统自动启动需要每次手动重启
495 0
从零构建可视化jar包部署平台JarManage
|
存储 JSON 监控
1、工程搭建与配置
MongoDB是介于关系型和非关系型数据库之间的产品,nosql中最热门的数据库,存储数据是类似于JSON的bson格式的数据,可以存储复杂的数据类型,最大特点是它支持的查询语句非常强大
127 0
|
JSON JavaScript Go
一日一技:如何正确在自己项目里面集成别人的代码?
一日一技:如何正确在自己项目里面集成别人的代码?
540 0
一日一技:如何正确在自己项目里面集成别人的代码?
做项目遇到的问题以及解决方案
做项目遇到的问题以及解决方案
420 0
做项目遇到的问题以及解决方案
|
缓存 JavaScript 前端开发
下一篇
无影云桌面