分类 软件开发 中的文章

我们用来开发软件的算法

原文:Grant Slatton 最近,我与一位杰出的 CEO 兼工程师进行了一次谈话。我很喜欢听他描述他偶尔使用的一种软件开发方法,这让我开始思考其他启发式和概括性的方法。 他的方法 每天早上开始着手开发一个功能。如果一天结束时没完成,就把所有代码删除,第二天重新开始。你可以保留写好的单元测试。 如果过了几天,还不能真正实现这……

阅读全文

为什么硬件变得越来越快,而我们使用的应用程序却越来越慢?

原文:preyneyv - 2024.11.02 现代硬件的速度快得令人难以置信。我正在用来写这篇文章的苹果 M1 Max 运行频率为 3.2GHz。这意味着每秒有 32 亿个时钟周期。然而,微软 Teams 打开一个链接却需要 3 秒,我可不信打开一个链接需要耗费 96 亿个时钟周期。显然,这种说法有点过于简单化,但问题依然存在:为什么硬件变得越来越快,而我们使……

阅读全文

为什么不写注释?写“为什么不”注释?

原文:Hillel - 2024.09.10 代码是用结构化的机器语言编写的,而注释是用富有表现力的人类语言编写的。人类语言让注释比代码更具表达性和沟通能力。代码中也包含少量类似于人类语言的内容,例如标识符。所谓“注释要写为什么,而不是写做了什么”,意思是尽可能将信息嵌入到标识符中。并非所有“做了什么”都能这样嵌入,但很多……

阅读全文

关于 Mac 系统 .DS_store 文件的起源

原文:Arno - 2006.10.01 (前排提醒:可以在 .gitignore 中添加 .DS_Store,否则 git 仓库会存储这个和项目无关的文件。) 如果你是 Mac 用户,曾经将文件从 Mac 传输到 Windows,那么可能对 .DS_Store 文件并不陌生。但这个名字是怎么来的呢? 1999 年,我是苹果公司 Mac OS X Finder 的技术负责人。当时,Finder 的代码库已有 8 年历史,已经到了其使用……

阅读全文

如何成为 -10x 工程师

原文:Taylor +10x 工程师可能是神话,但 -10x 工程师确实存在。 要成为一个 -10x 工程师,只需每周浪费 400 小时的工程时间。 请结合以下策略: 使 10 名工程师的产出无效 尽可能在开发阶段改变需求。为了避免指责,从一开始就模糊需求。 创造 400 小时的无效工作 让你的团队执行看似在工作的任务。常见的例子包括演示文稿、图表和票据管理。创……

阅读全文

代码界的草台班子 - 一个单文件 11000 行代码的项目

原文:Austin Z. Henley - 2022.04.03 很久以前,在我的第一份软件工作中,我收到了一份内部产品的错误报告,而我甚至不知道这个产品的存在。 结果发现这是一个应用程序,它基本上提供了公司员工可能需要的所有表格。从本质上讲,这是一个包罗万象的资源。你需要向人力资源部举报某人吗?这里有一份表格。你需要为新客户准备一份合同吗……

阅读全文

网络传输,请每次都开启 TCP_NODELAY

原文:Marc Brooker - 2024.05.09 (注:不必过于担心这个问题,大部分现代库,语言(如 Go),代理(如 Envoy),都默认设置了 TCP_NODELAY。如果遇到网络延迟问题,可再检查该套接字选项。) 我们已经不再生活在上世纪 80 年代了,谢天谢地! 在调试分布式系统的延迟问题时,我首先检查的就是 TCP_NODELAY 是否启用。不仅仅是我,我认……

阅读全文

软件开发故事 - 我对 CTO 撒谎并挽救了项目

原文:GrumpyOldDev - 2024.04.18 这是几年前的事情了。还记得在我职业生涯的初期,父亲曾告诉我,做好工作往往意味着要在上司的阻碍下做好需要做的事情。他的意思是,你可以让上司成功并感到快乐;也可以让上司做每一个决定,在这种情况下,没有人会成功或快乐。 当时,我在一家财富 500 强公司工作,我们的 CTO 承诺要为一个重……

阅读全文

不抽象:Increase API 设计原则

原文:Increase - 2024.04.26 (注:Increase 是一家提供金融技术服务的公司。) API 资源是 API 的实体或对象。决定如何为这些实体命名和建模可以说是设计 API 最难也是最重要的部分。您所公开的资源组织了用户对您的产品如何工作以及它能做什么的心智模型。在 Increase,我们的团队采用了一项名为“不抽象”的原则来帮……

阅读全文

修复所有 bug 并不能解决所有问题

原文:jeffpsherman - 2024.04.08 在软件领域,如同在制造业,有些问题是由于 bug 或“特殊原因”引发的,而有些则是“常见原因”,这是由于系统设计和实现的性质所导致的。修复 bug 就是移除特殊原因,消除 bug 可以极大地提升软件质量,但它并不会影响“常见原因”问题。 我遇到的一些“常见原因”导致软件的性能问题,包括: 软件……

阅读全文

最近文章

分类

标签

其它