直播回顾丨鉴释首席架构师刘新铭为您解读“第一性原则”
2021 年 5 月 21 日,鉴释联合创始人兼首席架构师刘新铭向广大程序开发工作者分享了他对时下大热的概念——“第一性原则”的解读,及其在程序开发设计和源代码质量中的应用。
第一性原则
由硅谷钢铁侠埃隆·马斯克一手带火的“第一性原则”概念,其实可以追溯到 2000 多年前的古希腊思想家亚里士多德所提出的概念:在任何一个系统中,都存在第一性原则,这个最基本的命题或假设是不能被省略或违反的。
试想一下,我们是否总是倾向于学习他人经验?这并非是一种错误的方式,但如此获得的迭代发展往往是微小的,只有拨开冗杂的表象,回归事物本质再进行思考,才能够取得颠覆性的突破。
拿来主义
回到开发者们的工作中来看,遇到疑难问题是常事。这时,他们会转向身边的伙伴展开讨论,将问题细分成几部分再寻找、借鉴一些优秀的解决方法,但问题往往因此变得更加复杂,令人晕头转向。
刘新铭指出,许多开发者解决问题的方法简单粗暴,即四处寻找现有的解决方案,不分精华糟粕地复制粘贴,简单的程序被粘贴得臃肿繁复,漏洞百出。这就是拿来主义和它的弊端。
刘新铭还鼓励开发者思考:如果每个问题都能被现有的解决方案化解,又何来发挥自身能力的机会呢?很多时候我们必须要应用“第一性原则”来寻求突破。
前世今生
刘新铭还分享了早在上世纪 70 年代 John Hennessy 运用了“第一性原则”而获得突破的例子。
当时,缓慢的硬件发展速度导致芯片性能不足以支撑复杂指令集大量的指令。为了解决这一痛点,大型指令集被分割并去除使用频率低下的冗余指令,只保留必要的指令来支持操作系统与高级语言,运行速度得以大幅提升,精简指令集计算机由此演化而来。这样的思维模式与去冗归源的“第一性原则”如出一辙。
又例如后来各类编程语言的发明,软件行业的高光时代正式开启,应用软件的数量呈指数爆炸,然而与其代码量一同增长的还有 bug,代码扫描应运而生。
新的挑战
据全球权威研究机构 Forrester 统计,82%的安全问题来自应用:每 1000 行代码就有 1 个安全漏洞;每 1400 行代码有严重安全漏洞。代码开源也使得拿来主义愈发泛滥, 据统计,如今 80%的应用都使用了开源代码,与代码共存的 bug 也跟着开源库一齐流入了应用。
面对这一系列新挑战,代码审计应运而生。人工审计的门槛极高,审计员须拥有丰富开发经验,对代码有着深刻理解,才能保证审计的效率与质量。但对于很多需要提高代码质量的企业来说,雇佣这样的员工是相当有难度的,这时我们不妨再次应用“第一性原则”到代码扫描上,以寻求突破。
回归本质
刘新铭指出,市面上存在不少通过模式匹配来识别漏洞的方法,但对于未被利用的漏洞无法做到防范于未然。
由鉴释自主开发的爱科识回归代码分析本质,通过分析数据流识别代码漏洞,不仅能够预防黑客攻击,还能够跨函数、跨语言实现分析,将代码分析的效率、准确率大幅提升。
观众提问
Q1:如何结合代码分析与代码审计?
刘新铭:代码分析和代码审计是一个相辅相成的关系。好的代码审计通过代码分析工具能够高效、准确地识别去代码潜在的问题;而好的代码分析工具能够降低代码审计的门槛,减少企业的用人成本。
Q2:如何将代码扫描工具与 DevOps 流程结合起来?
刘新铭:可以让工程师提交代码之前,先用代码扫描工具检查一遍,再公开错误报告,让整个团队一起探讨学习。
Q3:除了借助扫描工具的方法外,开发者如何提高代码质量呢?
刘新铭:回到今天的主题“第一性原则”,还是要先精简问题,我推荐的做法是将问题高度概括后将其数字化,这样很多问题都能迎刃而解了。
由于篇幅有限,问答已被精简,想要了解完整问答和讨论,请观看直播回放
写在最后
入行 37 年的刘新铭见证了软件行业大大小小的变革,开发在他眼中并非是“做一天和尚,敲一天钟”,而应该是怀抱着自我的高要求,不断突破自己,实现个人价值的重要岗位。
如果您也对“第一性原则“感兴趣的话,请点击此处获取直播回放与演讲 PPT。
评论