Technology
6071 discoveries · Hand-picked discoveries from the open web, newest first.
-
Python 的 OrderedDict 为什么有序?
一个双向链表和另一个字典 小结 有趣的细节 1. 对 weakref 的使用 2. 传入 object() 作为默认值 现在是 2025 年,网上已很少见到 Python 字典有序性的相关讨论。自从 Python 在 2018 年发布 3.7 版本,将“字典保持成员的插入序”写进语言规范后,人们已渐渐习惯有序的字典。那曾经调皮、无序的字典,早已像 2.7 版本一样成为过去,只在某些老登们忆苦思甜时被提起。 而在那个字典无法保持顺序的年代,如果我们要用到有序的字典,我们用什么?答案是: collections.OrderedDict 。 但是,随着内置字典已经有序, OrderedDict 似乎也渐渐变得不再必要。不过,截止到目前(3.14 版本)为止,它仍然存在于标准库模块 collections 中。这主要是出于以下几个原因: 保持向前兼容,已依赖其的旧代码可以保持不变; 行为不同: OrderedDict 在判断相等性时会将键顺序纳入考量,内置字典不会; 更多特性: OrderedDict 拥有 move_to_end 等方法。 >>> d OrderedDict([('a', 1), ('b', 2), ('c', 3)]) >>> d.move_to_end('a') >>> d OrderedDict([('b', 2), ('c', 3), ('a', 1)]) # 1
Python 工匠 · ZH
-
AI 编程是一种“框架”
框架的问题 1. 抽象泄露 2. 丧失控制权 认知成本:DRF 的启示 也许,该把 AI 编程当成一种库 使用 AI 类编程工具越多,我便越来越强烈地感觉到:AI 编程是一种“框架(Framework)”。 框架是每位程序员的老朋友,它通常针对特定领域所设计,能极大提升编码效率。以 REST API 服务为例,一些成熟的框架(比如 Django REST Framework )能做到仅需定义 数据模型和视图类 ,便生成一套功能完备的 CRUD API 服务。 AI 编程工具和传统框架一样,都是一种“杠杆”,它们允许人们用少量输入撬动庞大的功能。二者区别仅在于输入类型不同,框架需要代码(或配置),而 AI 仅需一句简单的自然语言提示词—— “写一个书店网站” 。 框架的问题 作为一种新型框架,“AI 编程”所带来的便利性,足以把人类从前发明过的任何一种框架按在地上摩擦,但是,框架天生所具备的问题并未消失。 1. 抽象泄露 所有框架都有一个共性,它们提供了极高级的抽象,以降低实现特定功能所需的工作量。比如,Django 的 ORM 提供了“数据模型”这层抽象,免去了手写 SQL 语言、设计数据校验等繁重工作。 但不幸的是, 抽象都会泄露 。 一名 Django 初学者编写的网站上线后,客户投诉爆表,因为列表页加载极为缓慢。此时,打开数据库监控面板,他会发现这个看似简单的页面,每访问一次
Python 工匠 · ZH
-
一份关于 AI 编程的简明行为指南
对所有人 谨记 Agent 不对代码担责 多“协作”,少“委派” 拆分你的 PR 善用 Plan 模式,多做前置探索 采纳稳定的库,优于 AI 从零实现 创建 PR 前使用 AI Review 让改动可验证,并总是验证 其他 对初级工程师 质量胜过效率 尝试手动修复 Bug 自己先动脑,在 AI 给出的方案之外寻求 其他 结语 AI 编程发展迅猛,Claude Code、Codex 等 AI Agent 已成为许多软件工程师工作时必不可少的得力助手。然而,对于如何在项目中更好地实践 AI 编程,目前仍然是一副“八仙过海,各显神通”的模样。 假如同一个团队里的工程师,在如何使用 AI 工具的“大问题”上没有达成共识,就会出现协作上的摩擦,对项目产生不良影响。 因此,本文尝试面向软件工程师群体,对 AI 编程的 推荐行为实践 做一些总结,弱化具体的工具和技巧( 比如 Spec 驱动还是不 Spec 驱动? ),着眼于更通用的方面( 比如初级工程师该 完全委派 AI Agent 修 bug 吗? )。 内容分为“对所有人”和“对初级工程师”两部分,其中“对初级工程师”部分,针对这类人群身处的特殊阶段,提供了一些量身定制的建议。 说明: 本文部分内容由 jianan、 wklken 参与共创;本文观点基于笔者所身处的工作环境总结而来,不一定完全适用于其他项目,酌情采纳; 对所有人 谨记 A
Python 工匠 · ZH
-
开发软件,或建造迷宫
前段时间,我通关了一个三十多年前的老游戏: 《塞尔达传说:织梦岛》 。 《织梦岛》是久负盛名的塞尔达传说系列的第四部作品,发售于 1993 年,平台为 Game Boy——任天堂在 1989 年推出的风靡全世界的游戏掌机。 用今天的眼光看,《织梦岛》的游戏画面简陋得吓人。举个例子,游戏的分辨率极低,仅为 160×144,换算下来像素面积不到 iPhone 17 屏幕的 1%。不过,技术过时并未过多损害游戏的可玩性。这部诞生于上世纪的作品,用极具想象力的道具和迷宫,打造出了一个引人入胜的小岛,玩起来依然妙趣横生。 正因如此,在发售后的第 26 年,《织梦岛》在任天堂最新的游戏主机 Switch 上迎来了一次重制。 为了迎合现代玩家,新版《织梦岛》完全重做了游戏画面,不再是 2D “大果粒”,而是全高清的卡通风 3D 建模。游戏操作也得到现代化升级,道具切换变得更为便捷。最重要的一点,在于新版几乎 1:1 复刻了原版的大地图和迷宫,也就是说, 在游戏性方面(迷宫、道具及探索),重制版几乎原汁原味继承了几十年前的配方。 你肯定想问:对于这样一部已三十岁高龄的换皮老游戏,玩家会买单吗?答案是肯定的。Switch 上的《织梦岛》一经推出,销量超过六百万份,直接跻身“塞尔达传说”史上销量最高的作品之一。 我相信,作为史上最成功的电子游戏之一,《织梦岛》一定可以给游戏从业者许多启发。但就像你所知
Python 工匠 · ZH
-
设计流动摩擦:AI 原生团队的核心能力
过去几年,我们讨论 AI 对软件研发的影响,最常使用的仍是个人生产力:一个功能要多久,一名开发者能同时推进多少任务,Coding Agent 能生成多少代码。AI 确实显著降低了执行成本,过去数天才能形成的初步实现,现在几个小时后就可能进入 Pull Request。
全栈应用开发:精益实践 · ZH
-
从 AGENTS.md 开始:构建 Agent 友好项目的五个步骤
最近我重新整理 [Better Harness](https://github.com/QoderAI/better-harness) 的 `references`
全栈应用开发:精益实践 · ZH
-
Agent 插件如何走向工程化:Better Harness 的五个实践
把一项能力写进 `SKILL.md`,再封装成 Agent 插件,并不难。真正困难的是,当它被不同用户、不同项目和不同 Agent
全栈应用开发:精益实践 · ZH
-
Harness Inspector:让 Agent 交付过程可观察、可检查、可追溯
最近,我们一直在尝试优化 Better Harness 的 **SKILL 自动沉淀**能力:从 Agent 的真实会话中识别重复出现的工作路径,再判断其中哪些经验值得进一步沉淀成可复用的 SKILL。真正做起来以后,我们发现这件事远比“把一段 Session 分析一遍”复杂得多。
全栈应用开发:精益实践 · ZH
-
从可编程到表现力:构建更好的 Agent 运行时重塑用户体验
最近,我重新看了 remio 在 PPT DSL 上的尝试,也注意到 OpenAI 的 **Artifact Tool**(产物工具)正逐渐演进成一套完整的专业文档运行时。
全栈应用开发:精益实践 · ZH
-
面向人机交互设计 Harness:构建以产物为中心的 Agent Loop
最近,我一直在 Better Harness 里思考编码智能体的工作闭环:用户究竟想完成什么,智能体读取了哪些上下文、执行了哪些操作,
全栈应用开发:精益实践 · ZH
-
从生成动画到可编程产物:在 Harness 中构建 Lottie 创作运行时
最近,我把 Lottie 插件的第一个版本 [0.1.0](https://qoder.com/marketplace/plugin?id=92998645-4b3b-472b-a4a7-a3f6bc133bff)
全栈应用开发:精益实践 · ZH
-
开坑!从 AI Coding 到 AI4S:新开源项目 Pero 的一次探索
PS:最近从 Qoder 离职了。原本还想继续折腾 AI Coding 和 Coding Agent 相关的开源项目,但考虑到过去的工作经历,
全栈应用开发:精益实践 · ZH
-
中美 AI 竞争的差距到底有多大?
上周五因为有 AI 新品发布的原因,我写了一篇中美 AI 竞争格局的短文,分别发 … Continue reading →
MacTalk-池建强的随想录 · ZH
-
墨问 Web 社区版本上线,本月 墨问 cli 之后的第二个发布
现在墨问有小程序版本,墨问命令行版本,还有了 Web 社区版。 https:// … Continue reading →
MacTalk-池建强的随想录 · ZH
-
想 Vibe 就别错过这个巨大的流动知识库
周末的时候我主要看书写东西,拍照徒步,周末最好给自己一种跳出圈外的机会,多思考, … Continue reading →
MacTalk-池建强的随想录 · ZH
-
CatReader 上线:重启 RSS 阅读
自从 AI 的 Vibe Coding 能力突飞猛进之后,我自己也没闲着,做了好 … Continue reading →
MacTalk-池建强的随想录 · ZH
-
谁说 ChatGPT 和 Codex 合体了?
AI 媒体现在也太能扯了,前两天看到有若干家媒体公众号说 ChatGPT 和 C … Continue reading →
MacTalk-池建强的随想录 · ZH
-
两小时用智谱 glm 5.2 实现了 CatReader 的移动微信版
昨天上午写了一篇阅读方式的改变就去出去玩了,打了一小时羽毛球,出去吃东西徒步还赶 … Continue reading →
MacTalk-池建强的随想录 · ZH
-
墨问发布第一款 Mac App:CatBar,极简 Mac 菜单栏图标管理工具
这半年来一直基于 Vibe Coding 做点产品,除了墨问本身的功能,已经发布 … Continue reading →
MacTalk-池建强的随想录 · ZH
-
微说 | 阿里确认通义千问集成至苹果智能系统
阿里巴巴发言人证实通义千问将集成至苹果智能功能中,适用于iOS、iPadOS、macOS、visionOS设备。此前网信中国公布,苹果技术开发(上海)有限公司的“Apple智能”大模型已备案,合作方包...
蚊子前端博客 · ZH
-
微说 | 合法但不合理
现在一直在纠结人平常根本使不了那么大的力。我的观点是,无论多大的力都是人踩出来的。在一些特别紧急情况制动时,人在危急关头就有可能会使出那么大的力。还有没有会踩出更大力的人,目前不知道。人在紧急制动时,...
蚊子前端博客 · ZH
-
微说 | 继马斯克后,英伟达、微软响应特朗普 "超级智能" 改名倡议
英伟达 CEO 黄仁勋已开始在公开活动中采用 "超级智能" 表述,微软等也表态支持;此前特朗普召集头部科技公司闭门会议并宣布联邦机构官方文件统一使用 "超级智能" 新名称 ——"AI 改名为超级智能"...
蚊子前端博客 · ZH