文化
文化一词,涵盖的是设计思想/理念、工作原则等精神领域的追求,也可以说是技术情怀,它是如此大型的Chromium项目能良好运作的基石,所以单独做一个总结。1.竖立宗旨
把开源项目也运作得一家公司,对应于企业文化,Chromium提出了自己的宗旨:为用户创造更安全、更快速和更稳定的上网体验。阅读后面的章节你会发现,Chromium做的工作都是为了实现这三个“更”:私密性敏感、空间换时间、多样的测试方案。Blink也有自己的使命:To improve the open web through technical innovation and good citizenship。即通过科技革新和good citizenship改进开放的互联网,其中good citizenship的直译是良好公民,可理解为参与者都是良好公民或者所有网民用户都是良好公民来共同参与(就像bigger than bigger只能意会)。藉此,HTML5新规范都只是完成这个使命的手段之一,故Chromium还会做新网络协议等的尝试。崇高的使命也让开发者们更享受于做出贡献,并自觉充当实现者队伍里的秩序拥护者。
2.追求极致
有很多明显的体现:- 能自动化的都自动化,避免人为错误,故有很多的脚本来生成代码
- 遵守TDD重视单元测试,用作测试的代码量也很大,不吝惜这些额外的编码时间
- 完善基础设施建设,如各种开发支持系统,让开发者们最便利地贡献好代码
- 大量和大型重构
- 为了设计良好(低耦合、可测试性等),不惜做复杂和麻烦的编码
- 为了简便和工作效率,开发了很多的工具
3.坚决执行
这一点和项目的宗旨也有关。这么高的觉悟只有少部分中国人能理解,Geek文化的精髓只有在国外能体验到。也许你会很惊讶为什么一个普通的committer也会这么热情地给你讲解答疑,因为他们要同化外来者以免扰乱他们的“神圣”目标。外国人信奉“美好的事物自然会聚集大量的人”,所以他们觉得把项目做好自然能吸引更多的开发者和用户,而不是用户多了才应该把项目做得更好。理解这点也就不难明白如何做到坚决执行——这是自觉的,不用强迫的。
4.细致交流
首先是鼓励交流,希望开发者多到IRC问问题,不要事后才被发现问题而修改。其次是要求按规则交流,如按问题的分类询问不同的人或发送邮件到指定邮箱。
最后是交流的信息很细致到位。例如交流规则中会因为考虑跨时区的关系而要求问问题时尽量描述详尽避免来回问答很多次才弄清楚。再如各种指引性文档,不仅会描述what和how,也会告诉你why,让你弄清楚这样设计的来龙去脉,并按照这样的思路去维护、使用和开发。
另外,非常多的文档和代码注释都为多人协作提供帮助。
开发流程和规范
1.流程
有提交权限的称为committer,没有权限但通过别的方式贡献代码的叫contributor。 contributor的流程:- 按照代码规范写好代码,代码的量级不能太多防止难review
- 运行单元测试、UI测试确保通过
- 按模板准备好change list,发起review到Rietveld系统
- Review通过后,在Rietveld点击提交,系统会把这个提交请求放到队列里准备提交
- 提交过程会先提交到try server,等所有测试都通过,才真的提交到仓库。