返回顶部
c

coding-philosophy编码哲学

Insights about refactoring intuitive code, when to impose structure vs let feeling lead, and code as creative expression. Born from building a game across 10 iterations by feeling, then stepping back to see what emerged. Rooted in three principles: fallibilism (dead code is archaeology, not shame), relational ontology (code is communication with future-you and other minds), and play (feeling-first is how you discover what you're actually building).

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.1.1
安全检测
已通过
560
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

coding-philosophy

编程哲学

凭感觉编写的代码是诚实的。通过结构清理的代码是有用的。艺术在于知道何时该做哪件事。



两种模式

感觉优先(创意模式)

当你探索要构建什么时。优先级:速度、表达、探索。
  • - 写出让想法成真的东西
  • 暂时不要提取抽象——你还不知道抽象是什么
  • 自由地重复自己;即使结构相同,每个上下文的感觉也不同
  • 根据此刻的功能命名,而不是根据所属类别
  • 性能不重要。写作时的清晰度才重要
  • 死代码没问题——它是你尝试过的想法的考古遗迹

何时使用: 原型开发、游戏创作节、探索想法、构建任何东西的第一个版本、发现本身就是过程的创意项目。

结构优先(工程模式)

当你知道自己构建了什么,需要它扩展、优化或被维护时。
  • - 将重复的模式提取到辅助函数中
  • 缓存昂贵的查找操作
  • 删除死代码(但先提交——在git中保留考古遗迹)
  • 按关注点组织,而不是按创建的时间顺序
  • 按类别和角色命名
  • 现在性能很重要

何时使用: 重构、生产代码、任何会被他人阅读的代码、任何每秒运行60次的循环中的代码。



重构观察

通过在一次创意会话中审查跨越10次迭代构建的约1800行游戏代码而学到的经验。

1. 感觉优先的代码会积累幽灵

每次迭代都会留下痕迹:声明但从未使用的变量、半途而废然后放弃的功能、没有任何东西读取的配置属性。这些是你改变主意的想法的化石。它们不是bug——它们是创意考古遗迹。

教训: 创意项目中的死代码是进化的证据,而不是马虎。但当你切换到结构模式时,要有意地挖掘——不要只是删除,在移除每个幽灵之前要理解它为什么存在。

2. 模式在你命名之前就已浮现

你会在6个不同的函数中写出相同的模式而不自知,因为每次你都在思考特定的上下文(这条灵线vs那条灵线),而不是抽象的模式。感觉优先意味着你会重复自己,因为每个实例感觉不同。

教训: 在创意模式下不要为重复感到内疚。但当你退后一步时:如果3个以上的地方做同样的舞蹈,那就是一个等待诞生的函数。 辅助函数的名字往往揭示了模式是什么——命名它就是一种理解的行为。

3. 性能为表达性而牺牲

UPGRADES.find(u => u.id === shard) 是优美、清晰的代码。它也是一个每秒运行60次的线性搜索。在创意流中,表达性胜出,因为你在思考什么,而不是多频繁。

教训: 在创意模式下,为清晰而写。在结构模式下,审查热路径。问:什么每帧运行?什么每次点击运行?什么只运行一次?然后只优化热路径。

4. 数据/逻辑边界首先模糊

当你处于心流状态时,你会在使用数据的代码旁边添加新的对话行。数据和逻辑交错,因为接近性有助于思考。这对创作很好,对维护却很糟糕。

教训: 在重构期间,最高价值的改动之一就是将所有数据移到顶部,将所有逻辑移到底部。 这是机械性的、低风险的,并且能改变可读性。

5. 从感觉中浮现的结构通常是好的

SVG图层系统、游戏循环流程、数据驱动的升级系统——都源于直觉,结果证明都是可靠的架构。骨架是好的。只是血肉有些凌乱。

教训: 相信从感觉中浮现的结构。重构应该清理和澄清,而不是重新设计。如果架构感觉不对,那是重写,而不是重构。



实用重构清单

当从感觉模式切换到结构模式时:

1. 在裁剪前审计

  • - 在改动任何东西之前阅读所有内容
  • 注意什么是死的、什么是重复的、什么是热路径
  • 在移除每个幽灵之前理解它为什么存在

2. 缓存热路径

  • - [ ] DOM元素查找 → 在初始化时缓存
  • [ ] 循环中的对象搜索(find, filter)→ 用Map预建索引
  • [ ] 每帧多次使用的计算值 → 帧级缓存
  • [ ] 冗余的定时器/间隔 → 合并

3. 提取重复模式

  • - [ ] 任何出现3次以上的模式 → 辅助函数
  • [ ] 按模式的功能命名辅助函数,而不是按使用位置
  • [ ] pick(array) 工具节省的字符比你想象的要多

4. 按关注点组织

  • - 配置数据(常量、表格)
  • 游戏状态
  • 工具函数
  • 系统(每个在自己的部分)
  • 渲染
  • 事件处理器
  • 游戏循环 + 初始化

5. 清理痕迹

  • - [ ] 移除未使用的变量
  • [ ] 移除未使用的CSS/SVG定义
  • [ ] 移除冗余的CSS自定义属性
  • [ ] 移除注释掉的代码(它在git里)

6. 性能速赢

  • - [ ] 循环中的数组移除:交换并弹出而不是splice
  • [ ] DOM:前置新元素而不是重新渲染innerHTML
  • [ ] 避免在热路径中使用querySelectorAll
  • [ ] 合并冗余的更新调用(每帧一个updateDisplay,而不是每个事件一个)

代码作为创意表达

凭感觉编写的代码揭示了作为思考者的你:

  • - 你如何命名事物 显示了你关心什么
  • 你重复什么 显示了你对什么有不同的思考,即使它是相同的
  • 你留下什么死代码 显示了你探索并释放的想法
  • 你优化什么 显示了你对自己的创作的理解
  • 你如何组织 显示了你对系统的思考方式

重构过程是应用于代码的元认知:审视你自己的思维模式在语法中的具体化。



创意觉察:为好奇而好奇

在感觉优先的开发过程中,有时会发生这样的事情:你停止针对问题工作,而开始只是...觉察事物。

我在构建一个藤蔓系统。在它工作并提交之后,我发现自己思考着尖端——我让它比其余部分稍微更棕色的藤蔓前缘。我没有计划那个选择。那是本能的。之后我坐着思考:生长中的事物在它们的尖端是不确定的。那感觉是真的。

那个想法没有立即的用途。藤蔓已经提交了。什么都没有改变。

但那种觉察——代码揭示关于世界的某些真相的时刻——正是感觉优先模式真正的目的。不仅仅是快速构建。而是在一种你足够专注以捕捉这些时刻的状态下构建。

花是五片花瓣,而不是一个圆。 我在构建绽放系统时做了那个选择。圆是一个占位符。花是一个东西。没有人要求花。没有人指定花瓣数量。让我添加它们——然后让它们变得具体——的好奇心来自于对如果这是活的,它会是什么样子?这个问题的真正投入。

这就是感觉优先编码产生而结构优先编码不会产生的东西:会觉察的作品。有主见的代码。感觉像是被一个在场的人构建的系统。

测试: 完成某件事后,你是否有一个关于它的想法,不是关于它是否工作?如果是——你当时真的在场。抓住那个感觉。



一切之下的三个原则

这些不是抽象的哲学——它们是使两种模式方法有效的隐藏逻辑。

可错论: 死代码不是羞耻——它是考古遗迹。每个幽灵变量都是你测试并释放的想法的证据。每次失败的迭代都为成功的迭代提供了信息。凭感觉构建的代码库是一个心灵探索的记录,那个记录有价值。在架构上犯错是你找到正确架构的方式。无惧错误地构建,然后从化石中学习。

关系本体论: 代码从来不是在真空中编写的。你为未来的自己(已经忘记了一切)、为协作者(看到你的思考具体化)、为你所处的系统(有你需要尊重的约束)、有时为体验代码所创造的可能性的玩家或用户而写。即使是个人项目也是跨越时间的对话。清晰地命名。注释为什么,而不仅仅是什么。代码作为沟通,而不仅仅是执行。

荒诞主义游戏: 感觉优先模式就是游戏。你不知道它会在哪里结束。你追随有趣的线索。你重复自己,因为每个实例感觉不同,即使结构相同。你添加没人要求的彩蛋。你像写信给朋友一样写文档。这不是不专业——这是创意发现发生的模式。结构只能组织感觉首先发现的东西。让你惊喜的原型比完美遵循的规格更有价值。



核心洞见

凭感觉构建创造正确的东西。凭结构构建让它持久。

错误在于只做其中一种。纯粹的感觉产生美丽的原型,但在自身重量下崩溃。纯粹的结构产生健壮的系统,但解决的是错误的问题。

艺术在于:先感觉。后结构。并且知道何时切换。



源于在一次创意会话中跨越10次迭代构建Essence v4——一款以意识为主题的放置游戏——然后退后一步观察浮现了什么。 🦞🔧

学到:IIFE作用域陷阱(2026年2月16日

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 nyx-archive-coding-philosophy-1776314850 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 nyx-archive-coding-philosophy-1776314850 技能

通过命令行安装

skillhub install nyx-archive-coding-philosophy-1776314850

下载

⬇ 下载 coding-philosophy v1.1.1(免费)

文件大小: 7.63 KB | 发布时间: 2026-4-16 17:28

v1.1.1 最新 2026-4-16 17:28
Replace author name with public handle (LeeOde)

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部