我们用来开发软件的算法2024年11月12日| 软件开发原文:Grant Slatton 最近,我与一位杰出的 CEO 兼工程师进行了一次谈话。我很喜欢听他描述他偶尔使用的一种软件开发方法,这让我开始思考其他启发式和概括性的方法。 他的方法 每天早上开始着手开发一个功能。如果一天结束时没完成,就把所有代码删除,第二天重新开始。你可以保留写好的单元测试。 如果过了几天,还不能真正实现这……阅读全文
为什么硬件变得越来越快,而我们使用的应用程序却越来越慢?2024年11月11日| 软件开发原文:preyneyv - 2024.11.02 现代硬件的速度快得令人难以置信。我正在用来写这篇文章的苹果 M1 Max 运行频率为 3.2GHz。这意味着每秒有 32 亿个时钟周期。然而,微软 Teams 打开一个链接却需要 3 秒,我可不信打开一个链接需要耗费 96 亿个时钟周期。显然,这种说法有点过于简单化,但问题依然存在:为什么硬件变得越来越快,而我们使……阅读全文
为什么不写注释?写“为什么不”注释?2024年9月12日| 软件开发原文:Hillel - 2024.09.10 代码是用结构化的机器语言编写的,而注释是用富有表现力的人类语言编写的。人类语言让注释比代码更具表达性和沟通能力。代码中也包含少量类似于人类语言的内容,例如标识符。所谓“注释要写为什么,而不是写做了什么”,意思是尽可能将信息嵌入到标识符中。并非所有“做了什么”都能这样嵌入,但很多……阅读全文
使用工作日志 - 更快地恢复专注并理清思路2024年7月16日| 工作原文:Charles Féval - 2024.07.12 你正在处理计算机科学中最复杂的问题:修复部署管道上的权限。这已经是你开始处理这个简单任务的第 4 天了。你的经理明确告诉你,你在这方面的表现远低于她对一个中期实习生的期望。你的同事们都尽量远离你,以免被你可耻的失败所牵连。4 天不眠不休的下午,每次看到那该死的状态变成“构……阅读全文
关于 Mac 系统 .DS_store 文件的起源2024年7月6日| 软件开发原文:Arno - 2006.10.01 (前排提醒:可以在 .gitignore 中添加 .DS_Store,否则 git 仓库会存储这个和项目无关的文件。) 如果你是 Mac 用户,曾经将文件从 Mac 传输到 Windows,那么可能对 .DS_Store 文件并不陌生。但这个名字是怎么来的呢? 1999 年,我是苹果公司 Mac OS X Finder 的技术负责人。当时,Finder 的代码库已有 8 年历史,已经到了其使用……阅读全文
如何成为 -10x 工程师2024年7月1日| 软件开发原文:Taylor +10x 工程师可能是神话,但 -10x 工程师确实存在。 要成为一个 -10x 工程师,只需每周浪费 400 小时的工程时间。 请结合以下策略: 使 10 名工程师的产出无效 尽可能在开发阶段改变需求。为了避免指责,从一开始就模糊需求。 创造 400 小时的无效工作 让你的团队执行看似在工作的任务。常见的例子包括演示文稿、图表和票据管理。创……阅读全文
代码界的草台班子 - 一个单文件 11000 行代码的项目2024年5月21日| 软件开发原文:Austin Z. Henley - 2022.04.03 很久以前,在我的第一份软件工作中,我收到了一份内部产品的错误报告,而我甚至不知道这个产品的存在。 结果发现这是一个应用程序,它基本上提供了公司员工可能需要的所有表格。从本质上讲,这是一个包罗万象的资源。你需要向人力资源部举报某人吗?这里有一份表格。你需要为新客户准备一份合同吗……阅读全文
谈谈无责文化 - 程序员的锅谁来背2024年5月18日| 团队管理原文:Michael Hart - 2023.09.11 无责文化的概念在其他行业由来已久,虽然具体的历史不详,但可以说,自从 2016 年出版了权威著作《SRE : Google 运维解密》 后,无责文化“正式”成为科技行业的一部分。 我对“无责文化”的总结是:当服务出现故障、事故或漏洞时,假定相关人员的初衷是好的,但要么他们没有获得正确的信息来做出更好的决……阅读全文
网络传输,请每次都开启 TCP_NODELAY2024年5月14日| 软件开发原文:Marc Brooker - 2024.05.09 (注:不必过于担心这个问题,大部分现代库,语言(如 Go),代理(如 Envoy),都默认设置了 TCP_NODELAY。如果遇到网络延迟问题,可再检查该套接字选项。) 我们已经不再生活在上世纪 80 年代了,谢天谢地! 在调试分布式系统的延迟问题时,我首先检查的就是 TCP_NODELAY 是否启用。不仅仅是我,我认……阅读全文
软件开发故事 - 我对 CTO 撒谎并挽救了项目2024年5月10日| 软件开发原文:GrumpyOldDev - 2024.04.18 这是几年前的事情了。还记得在我职业生涯的初期,父亲曾告诉我,做好工作往往意味着要在上司的阻碍下做好需要做的事情。他的意思是,你可以让上司成功并感到快乐;也可以让上司做每一个决定,在这种情况下,没有人会成功或快乐。 当时,我在一家财富 500 强公司工作,我们的 CTO 承诺要为一个重……阅读全文