Compare commits

..

2 Commits

Author SHA1 Message Date
xiongxiao
aaa58652ad 更新 XYZ 法则文档,调整优点标题格式并补充描述 2026-03-21 23:17:38 +08:00
xiongxiao
d898965f1c 添加 XYZ 法则文档,概述后端逻辑开发的指导原则 2026-03-21 23:04:55 +08:00

View File

@@ -0,0 +1,78 @@
---
title: XYZ 法则
description: 现代应用开发 XYZ 法则。
---
## XYZ 法则
这里关于后端逻辑开发部分的内容,总结,对现状开发程序的一些总结和思考,提出了 XYZ 法则,来指导后端逻辑开发。
从 MCP 和 SKILL 的部分设计解析来看XYZ 法则是什么?我为什么会提出这个法则?
### 什么是 XYZ 法则?
每一个程序的开发都可以看成是一个函数,输入是需求,输出是代码。这个函数的实现就是后端逻辑开发,很多的函数的组合成了一个大的系统。
程序系统存在一个入口,而找到对应的这个函数,这个**定位**的过程,就是我需要讲的 XYZ 法则。
函数在一个*二维空间中xy 轴就是函数的空间坐标*z 暂时不需要,更期望 z 为时间类定位,现在不需要那么复杂度,二维空间就足够了。
而我对 XYZ 法则,更喜欢叫 pkTime 法则pathkeytimepath 就是路径key 就是函数的名字time 就是时间维度的定位(time现状不需要。三个合一叫 Route所有 Route 合并为 Router 系统。
用分子原子的概念来说,函数就是一个原子,函数的组合成了一个分子,分子又组合成了一个更大的系统。每一个函数都有自己的空间坐标,路径和名字,这样就可以很清晰的去定位到这个函数。
### 之前的 web 后端开发过程
用简单一句话来说,就是 api 访问过程,而强调 rest 风格,就是让人更加简单易懂。现在 ai 的场景下,这整套逻辑已经变掉了,整个模式变为了 ai 模式api 就是不应该存在的模式了。
我来举个例子,之前的 rest api, `GET /user/info`。用 x, y 定位表达,就是 x 为 usery 为 info。其他的任何的 method 去掉,所有的任何的参数聚合成对应的单个 `args` 的参数。
用pkTime 来写这个函数,伪代码如下:
```ts
const route = new Route({
path: 'user',
key: 'info',
run: (ctx: { args: any }) => {
// 这里是函数的实现逻辑
},
})
```
### 从 XYZ 法则的角度来看 ai 模式
从 MCP 出来的之前,我就一直一直在想 xyz一个函数丢掉以前的 api 的历史包袱。在正常的运行过程当中args 是入口参数x 和 y 是函数的空间坐标。
然后现在可以对他增加一些内容description和 metadata。
- 描述是对这个函数的描述,可以观测到这个函数的功能是什么
- metadata 是对这个函数的元信息,包含函数的属性、标签等信息,然后把实际需要的入参和出参都放在这里面。
现在回到 MCP就有一个优点了XYZ 的的代码超容易转到实际的 MCP去使用而我当初觉得 MCP 不好正是因为他的设计模式还是基于一维模式如果多个MCP就得需要拆分也就等同我设计的这中二维模式了。
而我觉得 MCP 好的地方,在于他对以前的 api 风格,和我一样,添加了对函数的描述和 metadata 的设计能够很清晰的去描述这个函数是什么输入输出是什么metadata是什么这些都是非常好的设计。
**MCP** 现在偏向于企业级应用开发,而不适合通用性,而后来 SKILL 出来了,这个 SKILL 属于通用性比较高,而且适合任何人去使用。
#### SKILL为什么更通用
SKILL 的通用基于自然语言表达AI 通过 cli或者脚本去运行实现轻便容易上手易于修改适合任何人去使用。
每一个 SKILL具有的特定描述特定的规则去定义而他的规则是这种。
1. `skills/{SKILL_NAME}/SKILL.md` 文件格式
2. md 文档中包含了这个 SKILL 的 name 和 description 描述,输入输出参数的定义,以及一些使用的示例。
`opencode``claudecode``openclaw` 这类工具,读取这些 md 文件,就可以把这些 SKILL 进行注册,进行调用。
关注这几个开源库,`opencode``claudecode` 的支持全局 `skills`,然后又支持对应具体项目的 `skills`。而 `openclaw` 目前也推崇多 agent 的模式。而他们这是就是在解决一个问题。
如果一个人的 `skills` 太多,几千个,几万个,怎么去管理,他们的最优解决方案是把这些 `skills` 分包和分层,项目级别,全局级别。从不同纬度去管理这些 `skills`。从 xyz 法则角度来说xyz 就是根本上去解决这个问题的。
XYZ 法则定义的函数,正因为空间坐标体系,对于坐标点的函数的定义附加 `metadata``description`,而这些东西是直接可以替代 `skills` 的。所以用 XYZ 进行开发应用来说,他能够直接转化为 SKILL 的模式的,甚至是 MCP 的模式的,因为设计模式上是兼容的。
### XYZ优点
xyz 的优点就是他是一个函数的空间坐标体系,能够很清晰的去定位到这个函数,能够很清晰的去管理这个函数,能够很清晰的去调用这个函数。
1. 他很容易被观测可以很容易被可视化轻松查看到这个函数的功能是什么输入输出是什么metadata是什么。然后容易启动
2. 这只是一个法则而这法则可以通用到其他地点浏览器前端后端cli 应用ai 相关的 mcp 和 skills甚至是一些其他的应用开发的场景。只要是函数的开发都可以用这个法则去指导。
3. 通用在其他领域,比如文件存储,文章存储,`date/key` 模式都是属于 xyz 法则模式。