A sufficiently comprehensive spec is not (necessarily) code15 hours agohttps://buttondown.com/hillelwayne/archive/a-sufficiently-comprehensive-spec-is-...规范是一种抽象,代表一组可能的实现,而不是代码本身。如果一个规范中的任何合理实现都能满足规范制定者,即使不够全面,该规范也是充分的。仍然需要程序员用正式语言(如测试套件)对规范进行编码,这些语言与代码仍有区别。LLM的不确定性和语言的模糊性意味着规范可能产生不一致的结果,强化了规范与代码之间的区别。即使是低级程序(如C语言或机器代码)也可以被视为规范,因为存在不同的实现。
Entropic Thoughts15 hours agohttps://entropicthoughts.com/mvc-mistake根据理查德·加布里埃尔的引述,抽象必须精心设计,预见所有用途而不遗漏任何一点。MVC及类似的分层架构按技术边界(如表示层、业务层、持久层)而非逻辑关注点进行分离,导致关注点混杂。适当的关注点分离确保需求变更的影响范围较小;MVC中的功能会影响所有层。大卫·帕纳斯的见解:业务领域概念的变化少于技术概念,因此模块应与业务基础对齐。当模块按业务领域边界而非技术层划分时,扩展和收缩(添加/移除功能)更容易。一种“洋葱架构”或由内而外的设计,在较低层具有稳定的核心业务基础,减少了“快速跨层移动”的需求。正如迪杰斯特拉所建议的,每一层都应作为上一层的虚拟机,底层具有稳定的定义。行为局部性和洋葱架构促进了良好的模块化,与MVC已有50年历史但仍普遍采用的方法形成对比。
What Are the React Team Principles? — overreacted15 hours agohttps://overreacted.io/what-are-the-react-team-principles/通过期望的用户体验设计API,反向推导至抽象层,优先UI而非API。在React中接受内部复杂性以简化产品开发,吸收复杂性以防止其渗透到产品代码中。允许通过逃生舱口进行黑客操作,然后观察并最终为那些改善用户体验的做法提供惯用解决方案。实现局部推理,使开发者仅凭局部代码知识就能安全地进行更改,避免全局依赖。倾向于从简单到复杂功能的单一渐进路径,而非需要重写的分叉方法。控制性能或质量问题的影响,确保开发者和用户仅为他们使用或交互的功能付费。信任理论以避免局部最大值,投资于根本正确的方法,即使需要数年才能实现。
AI Is a Bad Tool15 days agohttps://bytecode.news/posts/2026/07/user-submission-ai-is-a-bad-toolAI可以作为信息蒸馏器,将原本需要人工进行的信息检索与精炼步骤浓缩并自动化。使用AI生成代码效率不高;它经常产生未经验证、不透明的输出,这些输出缺乏适当的抽象,且增加了重复劳动。AI的不透明性使得‘提示词工程’值得怀疑,因为在无法理解其源代码的情况下操纵一个黑盒系统是不稳定且不可靠的。AI揭示了软件开发中缺乏适当抽象的问题,表明许多编程任务本可以通过更好的工具或框架来自动化完成。对AI使人类变得无关紧要的担忧源于它处理琐碎、未抽象工作的能力,这凸显了许多软件工作原本就效率低下。应对AI的影响可能需要专注于激情驱动的工作、全面理解与适当抽象,以避免对AI的依赖去解决非本质问题。