惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
Recent Announcements
Recent Announcements
H
Help Net Security
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
有赞技术团队
有赞技术团队
小众软件
小众软件
Last Week in AI
Last Week in AI
U
Unit 42
Google DeepMind News
Google DeepMind News
博客园 - 司徒正美
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
N
Netflix TechBlog - Medium
Blog — PlanetScale
Blog — PlanetScale
云风的 BLOG
云风的 BLOG
V
V2EX
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
博客园 - 三生石上(FineUI控件)
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿

Java不加糖的Blog

假设, AI 把我代替的那一刻真的到来 | szhshp 的第三边境研究所 小傻瓜都能懂的 AstrBot QQ 机器人集成 MCP 功能实战指南 | szhshp 的第三边境研究所 《智人之上: 从石器时代到 AI 时代的信息网络简史》阅读笔记 | szhshp 的第三边境研究所 iPadOS 26 无法设置空间场景图片壁纸的解决方法 | szhshp 的第三边境研究所 《一路云海》(终) | szhshp 的第三边境研究所 《一路云海》(四): 如何不按套路旅行 | szhshp 的第三边境研究所 《一路云海》(三): In Ya Mellow Tone | szhshp 的第三边境研究所 《一路云海》(二): 关西世博参观纪实 | szhshp 的第三边境研究所 《一路云海》(一): 新的征程 | szhshp 的第三边境研究所 2025 大阪世博会 [ 3 天前-先到先得 ] 阶段 场馆预约必中独家攻略 | szhshp 的第三边境研究所 Hackathon 随想 | szhshp 的第三边境研究所 一杯双皮奶 | szhshp 的第三边境研究所 Armbian + CasaOS + NAS 配置指南 | szhshp 的第三边境研究所 Docker 构建镜像报错: error getting credentials - err: exit status 1, out: `` | szhshp 的第三边境研究所 Disqus RIP! 论过高的维护成本如何治疗固执的坏习惯 | szhshp 的第三边境研究所 炸弹猫桌游变体规则 | szhshp 的第三边境研究所 《小岛经济学》阅读笔记 | szhshp 的第三边境研究所 《金钱心理学》阅读笔记 | szhshp 的第三边境研究所 为知笔记 RIP: 迁移剩余的笔记 | szhshp 的第三边境研究所 2025 博客第十年展望 - 再见我的过去 | szhshp 的第三边境研究所 我在独立游戏里面致敬的作品 | szhshp 的第三边境研究所 《How to make thing faster》阅读笔记 | szhshp 的第三边境研究所 《The Art of Clean Code》阅读笔记 | szhshp 的第三边境研究所 《Clean Architecture: A Craftsman Guide to Software Structure and Design》阅读笔记 | szhshp 的第三边境研究所 《How AI Works》阅读笔记 | szhshp 的第三边境研究所 游戏策划废案 - Project Uranus | szhshp 的第三边境研究所 游戏策划废案 - Project X | szhshp 的第三边境研究所 人生第一款独立游戏开发复盘 | szhshp 的第三边境研究所 Trap of Life | szhshp 的第三边境研究所 wireguard折腾记录
What is a coder's worst nightmare? | szhshp 的第三边境研究所
2017-05-08 · via Java不加糖的Blog

Meta

目录

“My code works, I don’t know why”

222233333

  • Your code (or a bug in it) accidentally kills or maims someone
  • Internet Explorer (if you are a Web developer).
  • Requirement changed, again.
  • GitHub merge conflict
  • Accidentally typing rm -rf * in a wrong directory. THE END. :(
  • Stack Overflow is down!
  • Going to Stack Overflow and seeing someone’s post with the exact same question you have been trying to get answered. Posted a year ago with no answers. [xkcd: Wisdom of the Ancients]
  • Reaching your question limit on Stack Overflow
  • The bug only occurs in production and can’t be replicated or triggered locally.
  • The probability of the bug occurring is low, but not low enough to ignore.
  • The cause of the bug involves a race condition that only occurs under load.
  • The cause of the bug is unknown.
  • You didn’t write the code that caused the bug but are responsible for fixing it; the person who wrote the code no longer works for the company.
  • The issue that caused the bug is in some library that is reliable 99.9% of the time and thus is the last place you would look.
  • Hardware bug, but everybody assumes it’s the software.
  • Many others have attempted to debug it over the years; nobody succeeded.
  • The bug is a logical error that only occurs at run-time after a long period of time.
  • Debugging requires expertise in a field you know nothing about.
  • You have a tight deadline to fix the bug.
  • The bug can’t be ignored because your job is at stake.
  • Semicolon key not working
  • Seeing your uncommented code a year later on an awesome working project and screaming while struggling, “How the hell did I do this?” and “Did I really write this code?” It’s like getting lost in your own house.
  • A library with no documentation.
  • = instead of ==
  • Overconfidence. Lack of preparation. Underestimation. Furious activity instead of groking.
  • “My code works, I don’t know why”
  • Under-communication: Programmers need to understand what they are building, and how it will be used. You need to establish context. This is because while building something there are about 100 different points in which you need to make a judgment call. Having the context allows you to make the judgment call.
  • Over-communication: Meetings, meetings, meetings… can be death of programmers.
  • Have to wait a day for getting clarifications, if the “Client” is in another Time Zone
  • No documentation or much worse, useless documentation. (e.g., stating the obvious, having nothing to do with the code, etc)
  • Indentation is messy and you cannot debug your code because of the illogical structure
  • The program stops responding due to a bug in a particular version of the OS you do not have access to.
  • The boss tries to test the program with an old version.
  • A client does something unimaginable that stops your program from working. You don’t know what the client did and your manager wants you to fix it by the next day.

参考文献

What is a coder’s worst nightmare?