我的软件北极星
摘要
作者提出了一套软件开发的优先级列表:对最终用户的有用性、正确性、可维护性和效率,认为所有工作都应致力于最大化用户效用。
<p><a href="https://lobste.rs/s/g6lkw1/my_software_north_star">评论</a></p>
查看缓存全文
缓存时间: 2026/06/03 21:49
# 我的软件北极星
来源:https://kristoff.it/blog/north-star/
在我制作软件时,这是我的优先级排序列表:
1. **软件应对最终用户有用**,并努力成为**你能够爱上的软件**(https://softwareyoucan.love/)。
2. **软件应具有正确性**,因为故障软件会削弱用户能从中获得的实用性。
3. **软件应具备可维护性和高效性**,以免在试图从中获取更多价值时浪费人力和计算资源。
如果你的区块链没有漏洞,但它是一场“抽地毯”骗局¹(https://kristoff.it/blog/north-star/#fn-1),那也无济于事。
如果你的语言是**内存安全**的(https://joshlf.com/posts/memory-safety-life-and-death/),但你并未**为正确性而设计**(https://tigerstyle.dev/),也没有一个能最终**修复所有漏洞**的过程(https://kristoff.it/blog/fix-your-asserts/),那也毫无意义。
如果你的软件是一个**美丽的抽象层华盖**(https://www.youtube.com/watch?v=wo84LFzx5nI),但运行起来像坨屎,且无人能维护,更别提添加新功能了,那同样毫无意义。
*有时我会力竭,有时会走错路,有时还会故意绕道而行,但没人能骗我把次要的星星误认为真正的目的地:我确实关心自己的开发者体验,但仅仅局限于它帮助我交付更多你能够爱上、我和他人也能享受的软件这一精确范围内。*
最终目标是最大化对最终用户的实用性;其他一切的存在都是为了服务这一目标,而这正是我制作软件的北极星。
相似文章
@dabit3:小而美的参考:56 条软件工程法则,对新人尤其友好(建议收藏),我也学到不少…
为初级开发者精选的 56 条软件工程法则,详见 lawsofsoftwareengineering.com。
软件内部机制读书俱乐部
本文介绍了一个面向资深开发者的全球性电子邮件读书俱乐部,专注于阅读有关数据库、分布式系统和软件性能的技术书籍,目前正在研读《操作系统导论》(Operating Systems: Three Easy Pieces)。
学习软件架构
一位软件工程师分享了学习软件架构的见解,强调组织架构与激励机制优先于代码本身,并结合 rust-analyzer 与科学计算代码的实例进行了说明。
为变更优化,而非应用性能
本文指出,软件团队常常过度优化微性能基准测试,却牺牲了开发者体验和工程吞吐量,而这两者才是长期交付速度与可维护性的真正瓶颈。
@neil_xbt: https://x.com/neil_xbt/status/2056386359376396458
一份精心整理的列表,涵盖11个类别的100个仓库,用于扩展Claude Code的功能,从资源合集到记忆系统和编排工具,帮助开发者构建系统而不仅仅是使用工具。