Gumbo:Google推出纯C编写的HTML5解析器
2013/08/15 · HTML5 · 1
评论 ·
HTML5
本文由 伯乐在线 –
黄利民
翻译。未经许可,禁止转发!
英文出处:gumbo。欢迎加入翻译组。
Gumbo是一个 HTML5 解析算法完毕,只用 C99
标准库编码已毕,没有任何外部信赖。其设计目的是为其余工具和库的费用提供辅助,这个工具和库包罗linters(JS检查器)、验证器、模板语言以及重构和分析工具。
本文由 伯乐在线 –
黄利民
翻译。未经许可,禁止转发!
英文出处:gumbo。欢迎出席翻译组。
本文由 伯乐在线 –
黄利民
翻译。未经许可,禁止转发!
英文出处:web
fundamentals。欢迎加入翻译组。
本文由 伯乐在线 –
黄利民
翻译。未经许可,禁止转载!
英文出处:quora【亚洲必赢官网】开发最佳实践手册,谷歌之类公司的代码质地怎么。。欢迎参加翻译组。
Gumbo 的靶子和特征:
- 完全符合 HTML5
规范 - 对不当输入有健壮性和弹性
- 简易的API,易于其他语言封装
- 帮助对源文件定位
- 相对轻量级,无外部信赖
- 透过具有
html5lib-0.95 测试 - 在跨越25亿的谷歌(谷歌(Google))索引页面上测试过
Gumbo是一个 HTML5 解析算法完毕,只用 C99
标准库编码完成,没有其余外部看重。其陈设目的是为其它工具和库的开发提供支撑,那些工具和库包蕴linters(JS检查器)、验证器、模板语言以及重构和剖析工具。
【导读】:并不是装有平台都帮忙所有的录像格式,检查一下主流平台所帮助的录像格式,并且有限援救您的视频在那一个主流平哈博罗内都可以运行。
这是 Quora
网友的一个发问,他还增补说:“我平常在想,像谷歌这般的商号,它们的代码质料如何呢?根据我在五个大商店的办事经验来说,我深感代码质料和商社年龄成反比。”
上面是伯乐在线摘编了两位网友的回复:一位是谷歌的程序员,另一位是谷歌(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)早期的代码被孤立了(不是工程师的活跃工作目标了,或没人熟知了),但它们还在。我曾因为不得不和一些残存代码打交道,曾经一直感受过消沉。就自己个人经历来看,我以为,在谷歌飞快壮大的一段时间内,如此少量的工程师落成了累累特征,这阶段中的有些代码,不可以托起大家多年来代码质量标准。
译注:“Bit rot”相当于“ Software
rot”,意指软件性能随着年华而后退,或者因条件变化而失势。(维基百科)
但从微观角度来说,我其实认为谷歌(Google)的代码品质是随着时光在加强,原因就是自我下边所说的。
前途也许加入的部分特征:
- 接济方今HTML5业内变动从而帮忙模板标签
- 帮衬分段分析
- 专职能错误报告机制
- 与其他语言绑定
怎么设置Gumbo 及其用例,请查看 Gumbo的 Github
主页:
打赏帮助自己翻译越多好文章,谢谢!
打赏译者
Gumbo 的目的和特征:
- 完全符合 HTML5
规范 - 对不当输入有健壮性和弹性
- 简短的API,易于其他语言封装
- 支撑对源文件定位
- 相对轻量级,无外部看重
- 透过具有
html5lib-0.95 测试 - 在超过25亿的谷歌(谷歌(Google))索引页面上测试过
所支撑的视频格式
使用 canPlayType()
可找出所接济的视频格式。该方法有一个由
mime-type
和可选的解码器组成的字符串变量,重返下边那个值:
返回值 | 描述 |
---|---|
(空字符串) | 不支持容器和/或解码器。 |
maybe |
或许支持容器和解码器,但浏览器将需要下载一些视频来验证。 |
probably |
显然支持该格式。 |
Here are some examples of canPlayType()
arguments and return values
when run in Chrome:
那边有些范例, canPlayType()
的参数和在Chrome运行时的重返值:
类型 | 返回值 |
---|---|
video/xyz |
(空字符串) |
video/xyz; codecs="avc1.42E01E, mp4a.40.2" |
(空字符串) |
video/xyz; codecs="nonsense, noise" |
(空字符串) |
video/mp4; codecs="avc1.42E01E, mp4a.40.2" |
probably |
video/webm |
maybe |
video/webm; codecs="vp8, vorbis" |
probably |
Googe 前员工 Dima Korolev 的回复:
事先自己在谷歌时常抱怨。
亚洲必赢官网 ,不过,在看过微软、非死不可和有些早期创业公司朋友写的代码后,我如获至宝确认了,谷歌的代码品质着实充足高。保持代码高质地的点子并不总是
great。工程师的神态也并不再而三great。被奖励和认同的程序员,也并不总是什么喜欢更整洁代码的人。但不知何故,它奏效了,至少在此以前是一蹴而就了。
实在,在本人离开谷歌(Google)多年后,人们常抱怨我在尊崇代码标准方面有点过分严苛。我不确定那和谷歌有多大关系,但一定有关系。过一段时间后,会有人学习精通这个代码为啥不遥远,它们能怎么样立异,应当怎么着革新。:)
打赏援救我翻译更多好文章,谢谢!
打赏译者
打赏协理我翻译越来越多好小说,谢谢!
任选一种支付格局
赞 收藏 1
评论
非目标:
- 执行进程。因为Gumbo是纯C编写,所以速度上有优势。即使那样,但那并不是在拟定用途下的关键考量,也不是任重先生而道远设计元素。
- 襄助 UTF-8
以外的编码。在大部场合下,处理客户端代码从前,可以用别的的库将输入流转换为UTF-8的文件。 - 协理 C89 标准。如今多数关键的编译器都支持C99,紧要的特例(
Microsoft Visual Studio)应该可以在C++格局下编译,必要细微调整。
(欢迎报告错误)。
扭转多种格式的录像
有广大工具得以把同一录像保存为其余格式:
- 桌面工具: FFmpeg
- GUI
应用程序:Miro、HandBrake、VLC - 在线编码/转码服务:Zencoder、Amazon
Elastic Encoder
打赏接济我翻译越多好小说,谢谢!
任选一种支付格局
赞 1 收藏
评论
至于小编:黄利民
伯乐在线联合发起人,关怀 IT
和互联网。
个人主页 ·
我的篇章 ·
99 ·
前景说不定参与的有些特征:
- 支撑近期HTML5正式变动从而援助模板标签
- 支撑分段分析
- 兼职能错误报告机制
- 与其余语言绑定
怎样设置Gumbo 及其用例,请查看 Gumbo的 Github
主页:
打赏帮忙我翻译更加多好小说,谢谢!
打赏译者
检测所采用的视频格式
想驾驭浏览器实际协理什么视频格式么?
在 JavaScript 中,使用视频的 currentSrc
属性,可回到所使用的源。
想看那么些操作的话,可以查阅本条示例:Chrome
和 Firefox
选用 chrome.webm
(因为它是那多少个浏览器所援救的视频格式列表的第三个条文),而
Safari 选取 chrome.mp4
。
打赏扶助自己翻译越来越多好小说,谢谢!
打赏译者
至于作者:黄利民
伯乐在线联合发起人,关心 IT
和互联网。
个人主页 ·
我的篇章 ·
97 ·
打赏协理自己翻译越多好小说,谢谢!
任选一种支付办法
赞 收藏 1
评论
打赏援救自己翻译越多好小说,谢谢!
任选一种支付办法
赞 收藏
评论
关于小编:黄利民
伯乐在线联合发起人,关心 IT
和互联网。
个人主页 ·
我的稿子 ·
97 ·
有关小编:黄利民
伯乐在线联合发起人,关注 IT
和互联网。
个人主页 ·
我的小说 ·
97 ·