9159金沙游艺场


微软Win8全球发布会图文实录:Windows8来咯 – Windows7之家,Win7之家

php中fsockopen模仿post与get详解

Gumbo:Google推出纯C编写的HTML5解析器

Gumbo:Google推出纯C编写的HTML5解析器

2013/08/15 · HTML5 · 1
评论 ·
HTML5

本文由 伯乐在线 –
黄利民
翻译。未经许可,禁止转载!
英文出处:gumbo。欢迎加入翻译组。

Gumbo是一个 HTML5 解析算法实现,只用 C99
标准库编码实现,没有其他外部依赖。其设计目标是为其他工具和库的开发提供支持,这些工具和库包括
linters(JS检查器)、验证器、模板语言以及重构和分析工具。

 

本文由 伯乐在线 –
黄利民
翻译。未经许可,禁止转载!
英文出处:quora。欢迎加入翻译组。

Gumbo 的目标和特性:

  • 完全符合 HTML5
    规范
  • 对错误输入有健壮性和弹性
  • 简单的API,易于其他语言封装
  • 支持对源文件定位
  • 相对轻量级,无外部依赖
  • 通过所有
    html5lib-0.95 测试
  • 在超过25亿的谷歌索引页面上测试过

 

这是  Quora
网友的一个提问,他还补充说:“我经常在想,像谷歌这样的公司,它们的代码质量如何呢?根据我在两个大公司的工作经历来说,我感觉代码质量和公司年龄成反比。”
下面是伯乐在线摘编了两位网友的回复:一位是Google的程序员,另一位是Google前员工。

非目标:

  • 执行速度。因为Gumbo是纯C编写,所以速度上有优势。虽然如此,但这并不是在拟定用途下的重要考量,也不是主要设计因素。
  • 支持 UTF-8
    以外的编码。在大多数情况下,处理客户端代码之前,可以用另外的库将输入流转换为UTF-8的文本。
  • 支持 C89 标准。目前大多数主要的编译器都支持C99,主要的特例(
    Microsoft Visual Studio)应该能够在C++模式下编译,需要细微调整。
    (欢迎报告错误)。

 

Google 程序员 Jeremy Hoffman 的回复:

我没有怎么去比对过,但我认为Google的代码质量是非常高的。Google的软件工程文化是原因之一(感谢 Kevin
X Chang 给建议):

  • 代码审查。在你提交任何代码改动之前,你得找去代码“主人”签字确认。为了实现,评审者(被鼓励去)建议大修代码,而不是让它成为根本没有经过思考的“图章”代码。
  • 按语言可读性要求坚持代码风格指南(请参阅这里)。除了让我们代码有统一的外观(所以我们能快速认出方法、成员等),我们的风格指南禁止了一些复杂、混乱、易出错的
    C++ 特性(比如:class 类型的静态和全局变量)。
  • 整个团队都致力于提供我们代码库的质量,维护我们的核心库,不断给我们做更好的工具。
  • 一个活跃的“代码健康”课题组。
  • 发布软件时,不对外部期限负有义务。一般而言,这让我们可以正确做事,而非为了期限把东西拼凑起来。
  • “Fixits.” 例如,一个工程师或许说,“我认为我们真应该别再用过时的 
    CruftMap 类(class)了。我打算在 1 月 20 日组织一次 Fixit。” 当 1 月
    20 日来临时,大家应当暂停其正常运作,把他们代码中的 CruftMaps
    都换掉。在 1 月 21 日,Google 就永远和 CruftMap
    说拜拜了!不过最近,核心库团队已经很优秀了,貌似没有啥东西可再值得类似的
    fixit 了。
  • 测试文化。单元测试覆盖率可能接近
    100%,我们有持续构建/整合/测试,还有知名的 “Testing on the Toilet”
    (请参见Google Testing Blog)

题主是想讨论代码年龄和代码质量之间的非正比关联,这一现象程序员有时戏称为“位腐”。Google
肯定也有。不是这里就是那里,你会发现Google早期的代码被孤立了(不是工程师的活跃工作对象了,或没人熟悉了),但它们还在。我曾因为不得不和一些遗留代码打交道,曾经一直感受过沮丧。就我个人经验来看,我认为,在Google快速扩张的一段时间内,如此少量的工程师实现了诸多特性,这阶段中的有些代码,不能托起我们近日代码质量标准。

译注:“Bit rot”相当于“ Software
rot”,意指软件性能随着时间而退化,或者因环境变化而失势。(维基百科)

但从宏观角度来说,我实际上认为Google的代码质量是随着时间在提高,原因就是我上面所说的。

 

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图