写代码的人,十有八九都干过一件事:把 PR 往群里一丢,然后祈祷「这次能一次过」。但代码审查 (Code Review) 从来不是走个过场。它是一套让代码库整体健康随时间改善的机制,Google 用它来维护代码和产品的质量。说到底,代码审查就是除作者之外的其他人,来检查这段代码的过程。为什么需要代码审查?先把它的价值说清楚,不然谁都懒得去做:尽早发现问题:在合并前抓住 Bug 和设计缺陷,此时修改成本最低知识共享:让至少另一个人熟悉这段代码,消除「巴士因子」提升代码质量:当人
冬天来了,万物凋零。又到了坏人们泛滥的季节,城市的乌烟瘴气中蕴含着难以形容的善意与陷阱。对于游泳爱好者而言,冬天的去处是一个值得研究的课题。很多普通健身房的泳池因为维护成本与客流不成比例,纷纷选择关闭;剩下那些苦苦支撑的,往往基础设施糟糕——从更衣室出来到下水的那段路,足以让你冻得发抖。于是,目光自然转向了酒店泳池。设施完备、水温恒定、体验极佳。唯一的缺点是:贵。这里存在一个有趣的年卡悖论:高端酒店泳池年卡价格动辄近五位数,按 8,000 元计算。若每周去一次,一年约 52
我们每天都在使用的文本文件,它的换行看似简单,背后却隐藏着一段跨越百年的通信和计算机历史。从早期的电报机到现代的网络协议,一个看似微不足道的字符组合 CRLF 「回车和换行」是如何塑造我们数字世界的?本文将深入探讨换行符的起源、不同操作系统的选择,以及为什么一个简单的文本文件在不同系统间打开会变乱。字符基础:ASCII 与换行符的身份要理解换行,首先要从 ASCII 「美国标准信息交换码」字符集说起。ASCII 是基于拉丁字母的编码标准,最初为电报码设计,共定义了 128 个
在 2009 年 5 月,Google 举办了一场内部的「设计巫术(Design Wizardry)」小组讨论会,演讲者有我和 Jeff Dean、Mike Burrows、Paul Haahr、Alfred Spector、Bill Coughran。以下是略加编辑的我的演讲记录。尽管一些细节已经过时,但在今时今日,核心主旨可能比那时候更显重要。简单胜于复杂越简单的东西就越容易理解,也就更容易构建、调试和维护。容易理解是最重要的,无法理解就无法进行其他任何后续步骤。看看 g
八月秋高风怒号,卷我屋上三重茅。茅飞渡江洒江郊,高者挂罥长林梢,下者飘转沉塘坳。南村群童欺我老无力,忍能对面为盗贼。公然抱茅入竹去,唇焦口燥呼不得,归来倚杖自叹息。俄顷风定云墨色,秋天漠漠向昏黑。布衾多年冷似铁,娇儿恶卧踏里裂。 床头屋漏无干处,雨脚如麻未断绝。 自经丧乱少睡眠,长夜沾湿何由彻!安得广厦千万间,大庇天下寒士俱欢颜,风雨不动安如山。呜呼!何时眼前突兀见此屋,吾庐独破受冻死亦足!
时间是让人猝不及防的东西晴时有风阴有时雨争不过朝夕又念着往昔偷走了青丝却留住一个你曾经以为很遥远的 2020只剩下最后的一个月了虽然大抵都是风雨多过阳光这一年我们经历了很多除了我们共同经历了疫情之后有人迎来了特别的毕业典礼也有人经历了艰难的失业时期有人结婚了有人离婚了……那么在这个特别的 2020你都经历了些什么在即将结束的这一个月你有什么想说的