我们的自信   作者:绝望之谷   今天在公司看到一篇有关故障排查的文章,作者还原了排查的关键过程:先 是通过现象提出猜想,然后调查系统相关日志,最后找到问题的根源,发现是一 行将时间格式化为字符串的代码写错了,于是作者得出一系列总结,以下是文章 作者总结的原文(做了一些脱敏,斜体文字):   1. 规范很重要,对日期格式化使用pattern应该定义为常量,而不是写字符 串。   2. 监控很重要,对每个业务字段都应存疑,广告的xxx监控都基于系统日志 时间,监控曲线很正常,所以没有报警。后续会增加对各字段的校验。   3. 日志很重要,xxx.log 作为重要的一个日志排查资源,排查切入点比较 准确。   4. 变更、发布与异常不吻合的时候,需要考虑环境因素引起的(如跨年、 服务器变更、docker等)。   5. 必须解释所有现象。   第五条颇有些“假说-论证”的科学方法,因为科学的新结论要求能够解释 以往的所有结论和现象,要求在逻辑上是自洽的。但从文章中可以看出,这只 是作者不自觉的一点感慨。   文章后面的很多评论都提到“监控”,包括上面总结的第二条就是强调“监 控”,但在我看来,这跟小孩子打架失利后赖自己家长不够厉害一样没有道理。 不同层面的问题应该强调使用不同层面的应对方案。我理解文章中的问题显然 是代码构建阶段的问题, 本来就应该强调在构建阶段尽可能解决掉,不能期望 软件发布后让“监控”这种兜底武器去发现。如果这种思路被推崇,软件质量 就会从构建思路上滑坡,最终沦落到对“每个字段、方法”(引自原文评论)都 怀疑。就好比一个国家,处理任何大小争端都准备启用导弹、核武器一样,这 是不自信的表现。   从这个事情上我不禁联想到了的其他方面,我们的自信心是如何沦丧的?我 们各行各业引进了几乎全世界最先进的技术,我们已经成为名列前茅的经济体, 然而我们至今仍在绝大多数的重大科研成果中缺席。我们建立了信息长城,企图 换回一些掩耳式的自信,这甚至是奏效的,很多一线城市的人开始沾沾自喜,甚 至夜郎自大的开始讨论起了自己“独特”的方法论;然而,我们看看我们的基 础教育,未曾教过任何评判性的思维以及科学的精神和方法。再看看我们的各 行各业,劣质和蒙骗文化盛行。   我们显然已经认识到技术带给我们的好处,但大家是如此的“实用”,以至 于无人问津技术背后的思想、方法和理论;观察一个依仗技术而立的企业,却 到处弥漫伪科学以及与科学精神背道而驰的坏味道就知道了:工程师更像是技 工和商人;抄袭者甚至嘲笑真正做研究的人“低效”。技术让我们直接收益,但 只有背后的思想、方式和理论才能让我们能够真正的自觉的了解和掌握它们,从 而才不会催生各种怪象。   设想一下如果我们在引进技术的同时,一并重视它们背后的思想、方法和理 论。那么会是另一番什么景象?夫妻可以自觉的遵循孕前准备;了解到孕期前 三月的自然现象,因此也就不会有各种“保胎”乱象。如果知道科学遵循最佳 证据的道理,就不会把权威指南当作一纸空文或无知无畏的“思辨”,那么孩子 成长期间会免受多少因为无知导致的侵害?如果认识到科学与技术的进步是通 过常规的严谨的研究逐渐积累到如今这种高度,我们的学府、技术企业从此视好 大喜功、虚夸浪费、急功近利、夜郎自大为敌人,在科学和技术领域总有一天会 展露头角,那时我们不再仅仅是像如今一样的抄袭和劣质的仿制。更具体的,当 我们工程师除了热衷与技术本身,还去探寻技术背后的正确的构建思想和方法, 一定会构建出更多正确的、稳健的、甚至优美的系统。   我想,到那时,我们一定会和真正的自信不期而遇。