大型系统开发感言 (1)
2007-08-06 03:47
211 查看
三个月以前,加入了一个大型系统的开发团队。自此也没有更新过blog了,一晃几个月,今天来谈一谈自身的感言。
在一本十年前的书籍“Large-Scale C++ Software Design”中, John Lokas 阐述了一些关于大型系统开发的一些实践问题。其中重要的一点就是软件构建所需要花费的的时间。在此之前我并没有对此有什么真正的印象,然而在现在的项目里,确着实让我吃惊了一下。
在Joel on Software中,Joel 建议在每天吃中饭时,完成代码同步和构建。可是你每一次构建需要10+小时时,你该怎么办。
为什么我们的团队需要这么长的时间进行构建?
1. 代码量大。人多。 (废话)
2. 需要build 32bit 和 64bit 两套binary.
3. 在build源代码的同时还要build测试, 并且运行一系列基本的单元和功能测试。(这只是部分测试)
在开发流程中,每个开发者必须能够完成这一构建过程并通过所有测试才能提交代码。所以,这个痛苦的过程是每个开发者都无法避免的。这个时候,每个开发者面临两难的选择:
每日同步,意味着你可能花费大量时间在同步上。那好,我可以每天下班的时候进行这一步,可是如果有哪怕那么一点点错误让你的build失败,那么第二天当你打开电脑时,这一天你可能就要花在修复这个错误上,记住修复这个错误只需要一分钟,可重新build至少是一个上午。即使只是试图build你开发所需要的部分。
不同步,直到我准备提交代码。可是那时你可能要面对大量的conflict必须要手工合并。稍有差池,你可能要面对几百人的怒火:因为你break了他们的build.
所以,实践中你可以放在周末进行同步了。在这样的环境下,我认为有几个必需的部分:这样你可以星期五下班的时候开始,然后星期六看一看结果,修复错误。重新build。开发者在这样的环境里需要:
1. 好电脑。这决定了build一次的时间。在我的intel core 2 duo 上的构建速度是AMD 64 上的一倍。
2. 一定要有远程访问公司电脑的方法。这样星期六就不用非要到公司来修复错误了。
3. 最好至少有两台开发电脑。可以一台用于构建,一台用于开发。
相关文章推荐
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 几十套业务系统集中统一授权管理实现经验分享
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 面向全国标准省市县行政数据基础之上的组织机构管理
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 能支撑10万以上客户端的数据同步下载问题
- 解析大型.NET ERP系统 窗体、查询、报表二次开发
- 开发人员学Linux之终结篇:大型系统开发经验谈 推荐
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 大数据分页功能改进、数据权限改进
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 忘记密码功能改进、手机短信、电子邮件
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 数据权限增强、范围权限增强
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 用户表的设计思想分享[教师、职工、学生]
- (01)大型信息化系统组件 - 通用权限管理模块整体开发定位
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 主管可以看下属的数据
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 即时消息提醒功能改进
- 为嵌入式系统开发软件和为高性能计算或大型分布式平台开发软件,二者需要的技能在很大称度上相同,我不是第一个发现这一点的人。
- 开发人员学Linux之终结篇:大型系统开发经验谈
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
- C#.NET 大型企业信息化系统集成快速开发平台 4.1 版本 - 面向数据库SQL语句的应用开发二
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - .NET商业化成品成熟各种数据权限的需求对应例子代码
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 访问频率限制功能实现、防止黑客扫描、防止恶意刷屏
- 基于Saas的云计算工作流中间件与大型企业管理云开发实战(及Paas平台下多系统生成)
- 大型系统开发经验谈