DDD 是一个很棒的调试器——如今,它的现代替代品会是什么样子?

1作者: manux8121 天前
我一直认为 DDD 在它那个时代是一个出人意料的好调试器。 它让程序执行变得可视化:堆栈、数据和控制流都同时呈现。你可以真正“看到”程序在做什么。 与此同时,它显然是不同时代的产物: * 单进程 * 大部分是同步代码 * 没有真正的并发或异步概念 * 过时的 UI 和交互模型 如今,我们调试的是非常不同的系统:多线程代码、异步运行时、长时间运行的服务、分布式组件。 然而,大多数调试器在概念上仍然感觉接近 GDB + 步进,只是被包裹在一个更漂亮的 UI 中。 我对其他人如何看待这个问题很感兴趣: * DDD(或类似的旧工具)中哪些想法仍然有价值? * “现代 DDD”需要处理当今的软件,需要具备什么? * 你认为交互式调试仍然是正确的抽象吗? 我主要从设计的角度提问——我自己一直在尝试一些调试器的想法,但我更感兴趣的是听听有经验的工程师今天如何看待这个问题。
查看原文
I’ve always thought that DDD was a surprisingly good debugger for its time. It made program execution feel visible: stacks, data, and control flow were all there at once. You could really “see” what the program was doing. At the same time, it’s clearly a product of a different era: – single-process – mostly synchronous code – no real notion of concurrency or async – dated UI and interaction model Today we debug very different systems: multithreaded code, async runtimes, long-running services, distributed components. Yet most debuggers still feel conceptually close to GDB + stepping, just wrapped in a nicer UI. I’m curious how others think about this: – what ideas from DDD (or similar old tools) are still valuable? – what would a “modern DDD” need to handle today’s software? – do you think interactive debugging is still the right abstraction at all? I’m asking mostly from a design perspective — I’ve been experimenting with some debugger ideas myself, but I’m much more interested in hearing how experienced engineers see this problem today.