近日,Facebook开源了flint——一个用D语言编写的C++静态代码分析器,这比较符合Facebook的一贯风格。Facebook开放flint软件的源代码,不但可以通过用户和程序员的反馈信息对flint进行不断地更新改进,还能提升flint的性能。
为何不用现有Lint工具?
Lint程序在程序请求类别当中算是一个比较奇怪的程序请求类别,经过一段时间对Lint的使用,开发者认为Lint程序对构建Facebook架构并没有什么明显的作用。而此时,使用D语言编写的C++静态代码分析器——flint进入了人们的视野,由于其特殊的性能和轻量级的体积而备受关注。
Flint为何物?
来介绍一下Facebook的lint程序之一——flint,它主要的功能是自动提示警报信息。例如,在代码审核系统里给出合适的代码修改提示;提醒程序员哪行代码出错了等等。Flint已经成为Facebook程序员工作当中必不可少、尤为重要的好帮手。正因如此才有必要开源flint,原因在于:任何程序员都可以对Facebook程序员所构建的程序进行检测,并提出改进意见。说白了,开源也是对程序员的一项考验,你敢把很烂的代码公布出来吗?
Flint是用D语言编写完成的,也是Facebook开源的的第一个D语言编写的代码库。事实上,flint的初始版本是用C++编写的,而使用D语言重新编写的Flint版本只是作为实验版本来测试的,但是开发者最后发现,用D语言编写的Flint版本更加轻巧、快速、高效,也更容易分享。
通过使用flint而带来的好处:
检查列入黑名单的标记序列。
检查列入黑名单的标识符。
检查保留下来的标识符。
检查可疑的目标选项。
检查所有开源里的项目。
通过引用方式,就可以抓住所有的异常信息。
在已经定义了的架构里消除常见的错误。
检查正在使用的空间名指令。
通过数值来检测出错误的字符串。
制止隐藏起来的强制执行的操作符。
对于开源flint这件事,开发者当然是比较激动地,这也是“最简单的设计最容易成功”的鲜明写照,除此之外,这也是跨语言之间最有趣的转换。