返回首页

一周热榜

2作者: duriantaco4 天前原帖
我一直在思考为什么在Python中,死代码检测(以及静态分析一般)相比其他语言感觉如此不可靠。我明白Python本质上是动态的。 理论上,这应该是简单的(再次强调,理论上):解析抽象语法树(AST),构建调用图,找到引用为零的符号。但在实践中,由于许多因素,这一过程很快就会失效,例如: 1. 动态调度(getattr、注册表、插件系统) 2. 框架入口点(Flask/FastAPI路由、Django视图、pytest夹具) 3. 装饰器和隐式命名约定 4. 仅通过测试或运行时配置调用的代码 大多数工具似乎在两种糟糕的权衡中选择其一: 1. 保守处理,错过大量真正的死代码 2. 激进处理,标记假阳性,导致人们失去信任 到目前为止,对我来说最有效的方法是将代码视为一种置信度评分,并结合一些有限的运行时信息(例如,测试期间实际执行的内容),而不是完全依赖静态分析。 我很好奇其他人在实际代码库中是如何处理这个问题的……你们是接受假阳性吗?还是完全忽视死代码检测?有没有人见过实际可扩展的方法?我知道SonarQube的噪音很大。 我构建了一个带有vsce扩展的库,主要是为了探索这些权衡(如果相关,链接在下面),但我更感兴趣的是其他人是如何看待这个问题的。希望我在正确的频道。 上下文的代码库: https://github.com/duriantaco/skylos
2作者: soyadiaoune5 天前原帖
我开发了 claw-daw:一个可以通过终端驱动的小型 MIDI 数字音频工作站(TUI + 无头脚本)。<p>动机:我希望实现“像编码一样的音乐创作”——可复现、可比较和便于自动化。相同的脚本 + 相同的种子 → 相同的节拍。<p>功能:<p>• 离线使用(FluidSynth + SoundFont) + ffmpeg 导出 • 确定性渲染,便于迭代/代理管道 • WAV/MP3/MIDI 导出 • 项目以 JSON 格式存储(适合 Git) 非常希望能得到关于工作流程的反馈,以及哪些功能会让这个工具对你更有用。
2作者: eigenvalue7 天前原帖
这是一个免费的开源高优化Rust程序,它通过Claude Code(CC)中的预工具钩子运行,并检查CC即将进行的工具调用,以确定其是否可能具有破坏性;也就是说,是否可能删除数据、丢失工作、删除表格等。 您可以通过GitHub链接获取该程序,并使用便捷的一行命令进行安装。 像dcg这样的工具有几个相互竞争的目标,这使得它成为一个需要谨慎平衡的工程难题: 1. 由于它在每一次工具调用时都会运行,因此必须非常快速。这就是为什么它是用Rust编写的,并且极大地关注于尽可能提高速度。 2. 它必须避免令人烦恼的误报,这会浪费您的时间,增加摩擦,并不必要地将您重新引入瓶颈。我同时运行数十个代理,不希望它们在不必要的情况下浪费时间等待我。通常,dcg发出的消息足以让代理在执行操作时更加谨慎。 3. 仅仅使用简单的规则书,寻找像“rm -rf /”或“git reset --hard HEAD”这样的固定命令是不够的。模型非常灵活,会使用临时的Python或bash脚本或其他多种方式来绕过简单的限制。这就是为什么dcg有一个非常复杂的、基于ast-grep的层,当它检测到临时(“heredoc”)脚本时会启动。但在可能的情况下,它使用更快的SIMD优化正则表达式。 4. 这样的工具应该是可扩展的,并具备对各个领域的语义知识,以及在这些领域中什么构成破坏性行为。例如,如果您在AWS上处理S3桶,您可能会遇到一个看起来并不像正常删除的高度破坏性命令。这就是为什么dcg开箱即用时就提供了大约50个预设,可以根据您的项目技术栈轻松启用(只需让CC分析您的项目目录,找出需要启用的包)。 5. dcg旨在非常友好于代理。它不仅仅是阻止命令,还会解释原因,并根据对代理使用的特定命令的分析提供安全的替代方案。例如,它可能会阻止代理删除您的Rust项目的构建目录,但建议使用“cargo clean”作为替代。通常,这些消息足以让Claude意识到问题。 我真的无法夸大dcg为我节省了多少时间和挫折。每个曾经与编码代理经历过这些令人不快的经历的人都应该知道并使用它。 dcg与我在agent-flywheel.com项目中的所有其他工具一起提供。所有工具都是免费的,采用MIT许可证,并提供丰富的教程和其他教育资源,适合经验较少的人。试试看,您不会后悔的!
2作者: adrianwaj4 天前原帖
是我一个人这样觉得,还是HN似乎正面临大量机器人提交、评论甚至完整对话的泛滥?
2作者: Judd_W5 天前原帖
使用Claude Code构建了这个工具。<p>它分析12个风险类别的自由职业合同(如付款条款、知识产权归属、范围问题、终止条款等),并标记出问题,提供具体建议。<p>40%的自由职业者报告称被客户拖欠款项,这通常是由于合同条款模糊所致。这个工具旨在帮助在签署合同之前发现这些问题。<p>目前免费使用,以验证其是否解决了实际问题。希望获得HN的反馈,特别是在以下方面: - 分析的准确性 - 这对自由职业者是否真的有用 - 有什么缺失或可以改进的地方<p>技术栈:Node.js、Express、Anthropic Claude API,部署在Railway上。