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

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

目录
相关文章
|
3月前
|
网络协议 Ubuntu Linux
如何搭建权威DNS服务器
【1月更文挑战第3天】
100 2
|
5月前
|
消息中间件 Java
Springboot与RabbitMQ消息超时时间、队列消息超时时间
Springboot与RabbitMQ消息超时时间、队列消息超时时间
|
8月前
|
Linux C语言
Linux内存管理:详解malloc()和free()函数的用法与原理
在C语言中,动态内存分配是一项关键任务,而`malloc()`和`free()`函数则是实现动态内存分配的重要工具。本文将深入介绍这两个函数的使用方法、内部原理以及注意事项,帮助读者更好地理解如何进行内存管理。
612 0
|
10月前
|
存储 机器学习/深度学习 前端开发
WebAssembly 能否取代 Docker?
“如果 WebAssembly(Wasm)在几年前出现,Docker 可能就不会出现了。因为它是一项非常强大的跨平台技术,可以让我们使用不同的编程语言来编写跨平台应用程序。Docker 的原始动力之一就是提供一个跨平台部署和应用的方法。” -- Solomon Hykes ( Docker 的创始人之一)
340 0
|
SQL 前端开发 数据可视化
现在啥软件都有开源,BI 呢?
现在啥软件都有开源,BI 呢?
302 0
|
负载均衡 安全 Linux
Docker快速部署项目,极速搭建分布式
Docker快速部署项目,极速搭建分布式
799 0
Docker快速部署项目,极速搭建分布式
C++构造函数和析构函数中可以调用虚函数吗?
C++构造函数和析构函数中可以调用虚函数吗?
1122 0
|
运维 Kubernetes 监控
Kubesphere 和 Rancher 如何做抉择?
目前主流的**Kubernetes**集群管理平台就是**Kubesphere**和**Rancher**,那么我们该如何在他们之间进行抉择呢?本文我们就来一起探究一下这两个平台的优劣。
3554 0
|
Linux
Linux zombie进程详细解析
Linux僵尸进程详细解析 在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用 waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill-9也不能杀死僵尸进 程。
1861 0
|
负载均衡 算法 安全
一文让你快速了解 Nginx基础
内容介绍 1、nginx基本概念。 (1) nginx是什么,能做什么事情 (2) 反向代理。 (3) 负载均衡。 (4) 动静分离
222 0