分类 软件开发 中的文章

网络传输,请每次都开启 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 可以极大地提升软件质量,但它并不会影响“常见原因”问题。 我遇到的一些“常见原因”导致软件的性能问题,包括: 软件……

阅读全文

理想的 PR 长度为 50 行

原文:Greg Foster - 2023.07.25 大多数工程师都有一种直觉,那就是小的代码更改总是比大的更好。逻辑论证也很简单——小的 pull requests 更容易 review,出现错误的可能性更小,从构思到部署的速度也更快。 关于这个问题,我很喜欢几篇论文 - 如果想进一步阅读,可以参考: Small patches get in! Do small code changes merge faster? A multi-language empirical investigation 但是,什么样的更改才算小呢?PR 会不……

阅读全文

加入新团队时,为什么你需要一个“WTF 笔记本”

原文:Nat Bennett - 2021.09.04 我有一个子弹日记。我并不是你在 Pinterest 上看到的那种用精美排版的人——大部分只使用黑色墨水,标准设置,偶尔会有自定义的集合。 每当我加入新的团队,都会翻到下一页,然后在那一页的顶部写上:“WTF——[团队名称]”。然后,每当遇到让我感到“WTF”的事情,或者我想要改变的事情,就添加一项。 前两……

阅读全文

代码整洁?我后悔重构了代码

原文:Dan Abramov - 2020.01.11 那是一个深夜。 我的同事刚刚提交了他们一周编写的代码。我们正在开发一个图形编辑器的画布,他们实现了通过拖动边缘的小手柄,来调整形状(如矩形和椭圆)的大小的功能。 代码是有效的。 但是,它有些重复。每种形状(如矩形或椭圆)都有一组不同的手柄,每个手柄在不同的方向上拖动,会以不同的方式影响形……

阅读全文

软件开发小故事 - 减少 2000 行代码

原文:Andy Hertzfeld - 1982.02 1982 年初,Lisa 软件团队正努力为接下来的六个月内,发布软件做大规模的准备。一些管理者认为,跟踪每个工程师每周写的代码量以衡量他们的进步是个好主意。他们设计了一种表格,工程师每周五都需要提交,其中一项是该周编写的代码行数。 Bill Atkinson,Quickdraw 的作者和主要用户界面设……

阅读全文

最近文章

分类

标签

其它