如今,工具包中最典型的工具是Linter,它扫描代码,指出可能导致问题的缺陷。例如,一行上可能有太多空格,或者某一特定行可能具有众所周知的模糊性,这可能会导致难以诊断的错误,最好避免这些错误。
但是,如果我们可以扩展短绒的功能来做更多的事情,会怎么样呢?如果程序员有一个助手可以分析他们的代码并主动指出新的安全问题、错误的代码、样式问题和错误的逻辑,会怎么样?
静态代码分析是计算机科学的一个非常有趣的分支,其中一些想法已经通过像semgrep这样的工具慢慢进入了现实世界,该工具是由facebook开发的,目的是将更强大的代码检查工具添加到其开发人员工作流中。Semgrep是一个开源项目,它正在通过r2c商业化,这是一家初创公司,希望将该工具的强大功能带给广大开发人员。
整个项目在开发商中获得了足够的吸引力,以至于Redpoint的萨蒂什·达马拉吉(Satih Dharmaraj)和红杉资本(Sequoia)的吉姆·戈茨(Jim Goetz)联手向该公司注入了1300万美元,用于首轮融资,并在早些时候未经宣布的种子轮中支持了该公司。
该公司由三名麻省理工学院毕业生创立-首席执行官艾萨克·埃文斯(Isaac Evans)和德鲁·丹尼森(Drew Dennison)是大学室友,他们与产品主管卢克·奥马利(Luke O‘Malley)联手成立。在他们的各种经历中,他们曾在Palantir、情报社区和财富500强公司工作过,当Evans和Dennison在Redpoint担任EIR时,他们根据自己在广泛的编码经验中看到的情况探索想法。
埃文斯解释说:“与其他公司相比,Facebook、苹果和亚马逊在代码层面为他们的产品提供安全性方面遥遥领先,这真的一点都不好笑。”大型科技公司已经大规模扩大了他们的编码基础设施,以确保统一的编码标准,但很少有其他公司能够获得人才或技术,以便在平等的竞争环境中。通过r2c和semgrep,创始人希望缩小差距。
有了r2c的技术,开发人员可以按需扫描他们的代码库,或者通过他们的持续集成平台强制执行定期的代码检查。该公司提供自己的模板规则集(“规则包”)来检查安全漏洞、复杂错误和其他潜在错误等问题,开发人员和公司可以添加自己的自定义规则集来实施自己的标准。目前,r2c支持包括Javascript和Python在内的八种编程语言和各种框架,并且正在积极研究更高的兼容性。
R2C的一个独特关注点是让开发人员加入到该模型中来。核心技术仍然是开源的。Evans说:“如果你真的想要一些会被开发者广泛采用的东西,那么它必须主要是开源的,这样开发者就可以真正地摆弄它,破解它,看看它是否有价值,而不必担心某种超级限制性的许可证。”
除了它的模型之外,关键是让开发人员真正使用该工具。没有人喜欢bug,也没有开发人员希望找到更多他们必须修复的bug。不过,使用semgrep和r2c,开发人员可以获得更直接、更全面的反馈-帮助他们在继续工作并忘记正在设计的内容之前修复棘手的错误。
埃文斯说:“我认为对我们来说最酷的事情之一是,该领域现有的工具都没有被开发人员采用,但对我们来说,大约50/50的开发团队对此感到兴奋,而安全团队对此感到兴奋。”开发人员讨厌发现更多的bug,但他们也讨厌一开始就编写这些bug。Evans指出,该公司的关键指标是由开发人员实际修复的发现的错误数量,这表明他们通过该产品提供了“良好的、可操作的结果”。R2c探索的一个领域是主动修补明显的错误,从而节省开发人员的时间。
漏洞、错误和停机是软件的基石,但它不一定是这样的。R2c拥有十几名员工和雄厚的资金池,希望提高我们享受的所有体验的可靠性,并节省开发人员在这一过程中的时间。