r2c|红杉与红点加持,r2c能让程序员更安心写代码吗?

编者按:本文来自微信公众号我思锅我在(angelplusdevil),作者我思锅我在GN,创业邦经授权转载。
10月29号,美国一家为程序员提供代码缺陷及安全检测的SaaS公司——r2c,宣布完成1300万美金的A轮融资,由红杉资本和红点创投共同投资。
r2c背后是GitHub上的一个开源项目“Semgrep”,“r2c”则是团队经过一段时间打磨后,正式运营的一家商业化公司。
r2c|红杉与红点加持,r2c能让程序员更安心写代码吗?
文章插图
简单来说,Semgrep通过一套标准且可自定义的规则引擎(rule engine),实现以下三大功能:

  • 运行错误(runtime error)纠正:包括基本的语法(syntax)或逻辑错误等;
  • 安全风险(security vulnerability)规避:例如预警一段错误的代码可能把前面一整段代码全部抹除,或者避免访问存在安全隐患或不可访问的数据库等;
  • 性能表现 (performance)监测:例如遵从良好的编程习惯即best practice,用最简洁的代码运行最复杂的程序等。
平台已经比较成熟地支持至少八种语言,包括Java、Javascript、Go、Python等,还有包括C、PHP在内的四种语言在alpha阶段。
r2c|红杉与红点加持,r2c能让程序员更安心写代码吗?
文章插图
(来源:r2c)
客户方面,已经有包括Dropbox、Snowflake、Chef等在内的知名互联网公司使用这款产品。而开源项目Semgrep在GitHub已经有上千位关注者,累积超过10万镜像下载。
这个项目最早源自Facebook,原创作者Yoann Padioleau也加入了团队。通常,大厂如Facebook、Amazon或Google等对代码管理有一套自上而下系统性的检测及风控体系,代码也不应该在最后测试或上线的时候才暴露出重大隐患,更不用说缺陷,尤其在愈发重要的安全问题上。
然而传统的安全软件是结果导向,不可能对运行程序进行穿刺并指出问题位置。因此,大厂往往召集一个小团队,开发一套符合自身内部安全要求且可自定义的代码规则工具。
那么,如果将这套规则工具做得更加通用,将大厂的那些best practice开放出来给全世界工程师及IT团队呢?
Semgrep便孕育而生。
回到产品本身,通过GitHub账号登录即可体验,主页面包含以下操作:
  • Write:根据已有或自定义规则,对代码进行精准或模糊检测;
  • Explore:浏览规则库,包含安全原则、代码质量等;
  • Manage:项目导入和管理;
  • Docs:帮助文档。

r2c|红杉与红点加持,r2c能让程序员更安心写代码吗?
文章插图
(产品首页截图)
再看团队,Semgrep刚开始由三位MIT毕业生创立。CEO与CTO是同宿舍舍友,都来自MIT的EECS系,同时都是红点创投的EIR(Entrepreneur in Residence,驻场准创业者),也就是说早就有备而来。两位联创CTO与CPO都曾在Palantir工作,一位负责网络安全保险平台的搭建,另一位在Palantir带领内部的开发者工具团队。
既懂安全,又懂产品,还有相关大厂经验和知名高校背景,可谓完美组合。而在最新一篇官方博客里,是这样一句话真正诠释了我想要看到的价值定位:
“...we raised a $13M Series A round of funding to build a security tool that developers might actually love.”(我们完成了1300万美金A轮融资,希望提供一个真正让开发者喜欢的安全服务工具)
这段话直指公司的两个核心价值:
首先,从安全切入解决刚性需求:不管代码检测(俗称“debug”)或遵循best practice都有许多可替代方案,更重要的是前者是程序员最不想遇到的,后者是需要管理者自上而下驱动,两者都在违抗实际使用者即程序员的天性。
r2c|红杉与红点加持,r2c能让程序员更安心写代码吗?】但安全是公司和产品的底线,出问题很可能职位不保,因此越是在底层写代码的员工,越重视这个刚性问题,而且也同样希望越早发现越好;
其次,从管理到效率提升才可能让使用者喜欢:如果仅仅是测试阶段进行安全检测,同样有大量可替代方案。Semgrep在解决刚需的基础上通过建立一套不断扩展的规则引擎,实时地对托管代码进行检测和警示,同时开放集成Slack或Github等账号,覆盖从第一行代码到集成开发环境(IDE)整个生命周期。
在我看来,只有发挥效率型工具的“鲶鱼”效应——像鲶鱼一样无缝植入工作流的每个环节,才能不断挖掘更多低效的场景或问题,并逐个击破。使用者才会感到时间的节省和效率的真正提升,最终进行自下而上地传播,形成网络效应。
近年来诞生的大多数SaaS产品,都具备一个重要的特征: