Chromium项目文化(续)

简介: 文化 文化一词,涵盖的是设计思想/理念、工作原则等精神领域的追求,也可以说是技术情怀,它是如此大型的Chromium项目能良好运作的基石,所以单独做一个总结。

文化 

文化一词,涵盖的是设计思想/理念、工作原则等精神领域的追求,也可以说是技术情怀,它是如此大型的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.追求极致 

有很多明显的体现: 
  1. 能自动化的都自动化,避免人为错误,故有很多的脚本来生成代码 
  2. 遵守TDD重视单元测试,用作测试的代码量也很大,不吝惜这些额外的编码时间 
  3. 完善基础设施建设,如各种开发支持系统,让开发者们最便利地贡献好代码 
  4. 大量和大型重构 
  5. 为了设计良好(低耦合、可测试性等),不惜做复杂和麻烦的编码 
  6. 为了简便和工作效率,开发了很多的工具 

3.坚决执行 

这一点和项目的宗旨也有关。这么高的觉悟只有少部分中国人能理解,Geek文化的精髓只有在国外能体验到。也许你会很惊讶为什么一个普通的committer也会这么热情地给你讲解答疑,因为他们要同化外来者以免扰乱他们的“神圣”目标。 
外国人信奉“美好的事物自然会聚集大量的人”,所以他们觉得把项目做好自然能吸引更多的开发者和用户,而不是用户多了才应该把项目做得更好。理解这点也就不难明白如何做到坚决执行——这是自觉的,不用强迫的。 

4.细致交流 

首先是鼓励交流,希望开发者多到IRC问问题,不要事后才被发现问题而修改。 
其次是要求按规则交流,如按问题的分类询问不同的人或发送邮件到指定邮箱。 
最后是交流的信息很细致到位。例如交流规则中会因为考虑跨时区的关系而要求问问题时尽量描述详尽避免来回问答很多次才弄清楚。再如各种指引性文档,不仅会描述what和how,也会告诉你why,让你弄清楚这样设计的来龙去脉,并按照这样的思路去维护、使用和开发。 
另外,非常多的文档和代码注释都为多人协作提供帮助。 


开发流程和规范

1.流程 

有提交权限的称为committer,没有权限但通过别的方式贡献代码的叫contributor。 contributor的流程: 
  1. 按照代码规范写好代码,代码的量级不能太多防止难review 
  2. 运行单元测试、UI测试确保通过 
  3. 按模板准备好change list,发起review到Rietveld系统 
  4. Review通过后,在Rietveld点击提交,系统会把这个提交请求放到队列里准备提交 
  5. 提交过程会先提交到try server,等所有测试都通过,才真的提交到仓库。 

2.规范与指南 

与设计相关的文档太多,不列于此。可以看到,开发过程的关键路径都有文档指引。

3.工具与系统 

以下总结的都是典型的,并不完整。同样地,项目过程的关键路径都覆盖到了。 

目录
相关文章
|
编解码 并行计算 Java
QT界面中实现视频帧显示的多种方法及应用(二)
QT界面中实现视频帧显示的多种方法及应用
1892 0
|
前端开发 JavaScript
React中如何动态添加和删除元素
React中如何动态添加和删除元素
|
2月前
|
数据采集 监控 前端开发
如何开发生产小工单中的数字化看板(附架构图+流程图+代码参考)
本文介绍了如何通过数字化看板优化生产小工单管理。内容涵盖生产小工单的概念、数字化看板的功能模块(如生产监控、执行统计、数据统计、员工工资统计)、业务流程设计、技术架构与开发技巧,并提供代码示例,助力企业实现高效、可视化的生产管理。
|
C++ 开发者 编译器
C/C++经典面试50题(挑重点整理)下
重点整理了C/C++经典面试题
22699 0
|
2月前
|
人工智能 缓存 数据可视化
手把手玩转本地大模型:Ollama+DeepSeek+Dify 零门槛全流程指南
本文提供从零搭建本地AI工作站的完整指南,详解本地化部署大模型的核心优势(数据隐私/离线可用/成本可控),涵盖Ollama安装、DeepSeek-Coder模型部署、Dify可视化操作及API调用实战,助你打造安全高效的私有AI开发环境。
|
人工智能 Ubuntu C语言
【Ubuntu工具】详细图文教程:Ubuntu系统上安装QT6.2
【Ubuntu工具】详细图文教程:Ubuntu系统上安装QT6.2
1184 0
|
前端开发
请简述同步和异步的区别是什么
请简述同步和异步的区别是什么
282 2
SpringBoot之视图解析
SpringBoot之视图解析
179 1
|
JavaScript 前端开发 数据可视化
正则表达式完整指南(下)
正则表达式完整指南(下)
460 0
正则表达式完整指南(下)