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.工具与系统 

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

目录
相关文章
|
1月前
|
前端开发 JavaScript Linux
十年跨平台开发,Electron 凭什么占据一席之地?
本文首发于微信公众号“前端徐徐”。作者徐徐将系统整理Electron的相关知识,分享更多开发经验。Electron是一个已有10年历史的跨端开发框架,本文将从其诞生背景、优劣势、生态、案例等方面进行详细介绍,并与其他框架进行对比,帮助读者全面了解Electron。
46 2
十年跨平台开发,Electron 凭什么占据一席之地?
|
3月前
|
开发者 项目管理 开发工具
震惊!单人开发者如何成功过渡到团队协作?Xamarin 项目管理经验大揭秘,让你的开发之路一帆风顺!
【8月更文挑战第31天】Xamarin 是移动应用开发领域的热门跨平台工具,适用于个人开发者及团队。个人开发时需明确需求、运用版本控制(如 Git)并合理规划项目结构以增强代码可维护性。团队协作时,则需建立有效沟通渠道、统一代码规范、严格版本控制及合理分配任务,以提升开发效率与项目质量。
63 1
|
5月前
|
开发框架 Rust 前端开发
Tauri:现代桌面应用的创新者
Tauri:现代桌面应用的创新者
167 0
|
6月前
|
Web App开发 搜索推荐 前端开发
【热门话题】Chrome 插件研发详解:从入门到实践
本文详细介绍了Chrome插件的开发,从基础概念到实战技巧。首先,解释了插件的结构,包括manifest.json、背景脚本、内容脚本和UI界面。接着,阐述了生命周期、通信机制以及开发步骤,包括创建项目结构、编写manifest.json、开发脚本和UI,以及测试与调试。通过一个显示当前页面URL的插件实例,展示了具体实现过程。最后,讲解了如何在Chrome Web Store发布和分发插件。Chrome插件开发为开发者提供了创造个性化体验的平台,本文旨在引导读者入门并深入实践。
137 2
|
Web App开发 搜索推荐 数据安全/隐私保护
如虎添翼!6款备受欢迎的Edge浏览器插件
Microsoft Edge以其低资源消耗、强大的安全性和丰富的创新功能,使其备受欢迎。Edge浏览器正在逐渐替代Chrome成为很多用户的首选浏览器。
如虎添翼!6款备受欢迎的Edge浏览器插件
|
IDE 开发工具
用了几个开源项目,都无法运行,推广柳氏风格
用了几个开源项目,都无法运行,推广柳氏风格
133 0
|
缓存 移动开发 前端开发
为什么那么多公司都钟爱Flutter?
1. 中小公司维护一个App的成本好高呀,有没有办法可以降低成本的可能性,但是又不想让代码缺少维护? 2. 有没有方案可以实现一份代码可以运行在多个平台,减少沟通成本呢?
|
Web App开发 程序员 开发工具
工程师文化:Chrome快捷键
  我工作时间不长,加上实习至今(2018.07)也就一年;我没进过大厂,也就意味着没有接受过正规的系统培训;这条路我走着普通的不能再平凡,没感受过优秀的工程师文化。
993 0