HackerURLs

一次又一次被重新发现的经典。

同一个链接,相隔一年以上,一次又一次被人重新发现、再次冲上 Hacker News 首页。能经受住这种时间检验的,大多是值得一读再读的文章。每篇附中文标题,讨论最热的那些再加上中文导读和高赞评论翻译。

从名人堂开始
  • 4,700+篇经过时间检验的经典

Hall of fame

名人堂

在经典库里看全部精选

上首页次数最多、而且有中文导读的 30 篇。时间轴上每个黑点是一次上首页,空心点是一次没冲上去的投稿。

  1. 正在载入经典…

Archive

经典库

按第一次上首页的年份分布,点柱子筛选。

排序

    About

    这些经典是怎么挑出来的

    1. 01

      合并同一个链接

      读取 Hacker News 自 2006 年以来的全部链接投稿,把 http/https、www、跟踪参数等写法不同的同一篇文章合并成一条。

    2. 02

      只留经得起时间的

      同一链接至少两次拿到 50 分以上(约等于上首页),而且两次相隔一年以上;再由 AI 剔除状态页、产品首页和新闻事件。

    3. 03

      写导读、译评论

      上首页次数最多的 2,000 篇配上中文导读、"为什么经久不衰",并精选翻译 HN 高赞评论。导读由 AI 生成,可能有误。

    编程与软件工程chriskiehl.com

    我改变看法的软件工程话题

    Software engineering topics I changed my mind on

    2次上首页
    1年跨度
    1,286累计得分
    800条评论

    2021 — 2022,它一次次回到首页

    黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。

    导读

    作者 Chris Kiehl 回顾自己六年来改变过的软件工程观点,逐条反思那些曾被奉为准则的做法与教条。文中涉及过度设计/可扩展性、关系型数据库与 NoSQL、微服务、代码清晰度、面试、静态分析和测试覆盖率等话题。

    为什么经久不衰:它不灌鸡汤,而是用多年经验反思常见工程教条,帮助读者在真实约束下做取舍、避免过度工程。

    关键词 软件工程工程实践微服务技术反思

    HN 评论精选

    整体赞同,但认为站会的价值是全员沟通协调,而非监督新人。

    我从没这么赞同过一篇博客,几乎每个要点都打 10 分。不过有一点异议:说站会主要用来盯着新人并不公平。只要保持简短,站会对整个团队沟通都有用——比如某位资深工程师正在解决的问题,另一位同事上个月已经踩过坑,站会正好让信息互通;这跟资历无关,沟通、协调和知识共享对各个层级都重要。

    aerovistae查看英文原文

    Have never agreed with a blog post more. Every single bullet point, 10/10. Okay, okay, actually I have one qualm~ > Standups are actually useful for keeping an eye on the newbies. Unfair. Standups are useful for communication between a team in general, if kept brief. If senior engineer X is working on Y and other engineer M has already dealt with Y (unbeknowst to X), it's a great chance for X to say "I'm currently looking for a solution to Y" and for M to say "Oh I had to solve that same problem last month!" Seniority has nothing to do with this. Communication/coordination/knowledge-sharing matter at all levels.

    批评客户在小型内部系统上盲目上 DynamoDB 和微服务,忽视关系型能力与复杂度成本。

    “不需要时设计可扩展系统会让你成为糟糕的工程师”和“一般来说 RDBMS 优于 NoSQL”这两条让我感触很深。我是顾问,很多客户坚持所有东西都用 DynamoDB;我在做一个内部应用,用户可能也就几百人,却为了拆成“微服务”绕了无数弯路。谁还需要 join、关系完整性和灵活查询?“它只要能扩展就行!”

    cbdumas查看英文原文

    > Designing scalable systems when you don't need to makes you a bad engineer. > In general, RDBMS > NoSql These two bullet points resonate with me so much right now. I'm a consultant and a lot of my client absolutely insist on using DynamoDB for everything. I'm building an internal facing app that will have users numbering in the hundreds, maybe. The hoops we are jumping through to break this app up into "microservices" are absolutely astounding. Who needs joins? Who needs relational integrity? Who needs flexible query patterns? "It just has to scale"!

    资深开发者补充:以简单干净为准绳、推荐招聘很有效、追求“够好”而非过度拔高。

    我有近 20 年职业经验,完全同意这份清单,还想补充几点:衡量代码的标准是“简单干净”,不简单干净就改到简单干净;面试确实坏掉了,但如果一个靠谱开发者推荐共事过的人,几乎可以直接录用;另外常提醒自己“够好就是够好”——门槛有时低有时高,但总要达到,也不必远超。

    koonsolo查看英文原文

    Almost 20 years of professional experience here: I fully agree with this list. I even want to add a few things: > Clever code isn't usually good code. Clarity trumps all other concerns. My measurement is "simple and clean" code. Is it simple and clean? No? make it so! > After performing over 100 interviews: interviewing is thoroughly broken. I also have no idea how to actually make it better. If a good developer you know, recommends someone they worked with: It's almost an instant hire. But for the rest, yeah, it's incredibly tough. One last thing I like to remind myself: "Good enough is always good enough". Sometimes "good enough" has a low bar, sometimes high. You always need to reach it, but never want to go too far above it.

    提醒不要用事后视角苛责旧代码,工程决策受当时约束,未必有唯一正确做法。

    工作 15 年后,我不再评判过去的代码决策;早点明白这点能少很多痛苦。你不知道前一个人当时受什么约束,也就不可能知道自己会怎么做、“本应”怎么做。我提这点是因为文章仍有一种“写代码大致只有一种正确方式”的语气,我很怀疑。现在做好选择,但别苛责前人。

    TameAntelope查看英文原文

    After 15 years, I no longer judge past coding decisions, and I think you can save yourself a lot of grief by not waiting as long as I did to realize this. You don’t know the constraints the previous person was under, so you can’t possibly know what you really would have done or what “should” have been done. I mention this because there’s still a tone of, “there is approximately one right way to code” in this article, and I really doubt that. Make good choices now, but don’t be harsh to the folks who came before you.

    历次讨论

    同类还值得读

    1. 开源应用架构

      The Architecture of Open Source Applications

      《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。

      编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选
    2. 编程语言简史:简短、不完整且多半错误

      A Brief, Incomplete, and Mostly Wrong History of Programming Languages

      一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。

      编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.com
    3. SQLite 是如何测试的

      How SQLite is tested

      SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…

      编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选
    4. 高级编程语言(2009)

      Advanced programming languages (2009)

      Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…

      编程与软件工程上首页 8 次 · 2009–2022matt.might.net
    5. 我的 Forth 与栈机器经历

      Yosefk - My history with Forth & stack machines

      作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。

      编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选

    打赏支持

    打赏二维码

    觉得有用,请作者喝杯咖啡。

    WeChat

    关注向阳乔木

    微信公众号「向阳乔木推荐看」

    微信公众号「向阳乔木推荐看」二维码

    微信扫一扫;在微信里打开本页时,长按二维码识别。