Skip to content

Commit 6d48ab7

Browse files
authored
Merge pull request #334 from objectstack-ai/copilot/update-documentation-microkernel
2 parents 5220890 + bd67633 commit 6d48ab7

File tree

17 files changed

+153
-800
lines changed

17 files changed

+153
-800
lines changed

MINI_KERNEL_ARCHITECTURE.md

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -232,18 +232,7 @@ Plugin A Plugin B Plugin C
232232
## 6. ObjectQL 插件化 (ObjectQL as Plugin)
233233

234234
```
235-
Before (Hardcoded):
236-
┌─────────────────────┐
237-
│ ObjectStackKernel │
238-
│ │
239-
│ ┌───────────────┐ │
240-
│ │ ObjectQL │ │ ← 硬编码在 Kernel 中
241-
│ │ (Hardcoded) │ │
242-
│ └───────────────┘ │
243-
│ │
244-
└─────────────────────┘
245-
246-
After (Plugin-based):
235+
Plugin-based Architecture:
247236
┌─────────────────────┐
248237
│ ObjectKernel │
249238
│ (MiniKernel) │

MINI_KERNEL_GUIDE.md

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -264,23 +264,7 @@ if (process.env.ENABLE_API === 'true') {
264264
}
265265
```
266266

267-
## Migration from Old Kernel
268-
269-
### Before (ObjectStackKernel)
270-
271-
```typescript
272-
import { ObjectStackKernel, ObjectQLPlugin } from '@objectstack/runtime';
273-
274-
const kernel = new ObjectStackKernel([
275-
new ObjectQLPlugin(),
276-
appManifest,
277-
driver
278-
]);
279-
280-
await kernel.start();
281-
```
282-
283-
### After (ObjectKernel)
267+
## Usage
284268

285269
```typescript
286270
import { ObjectKernel, ObjectQLPlugin, DriverPlugin } from '@objectstack/runtime';

MINI_KERNEL_IMPLEMENTATION.md

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -132,11 +132,7 @@ kernel.use(new DriverPlugin(memoryDriver, 'memory'));
132132
- 插件可以独立测试
133133
- 依赖注入简化测试
134134

135-
### 4. 向后兼容
136135

137-
- 保留 `ObjectStackKernel` 和旧的 `RuntimePlugin` 接口
138-
- 平滑迁移路径
139-
- 不影响现有代码
140136

141137
## 使用示例 (Usage Examples)
142138

@@ -202,7 +198,6 @@ packages/runtime/src/
202198
├── types.ts # Plugin, PluginContext 接口
203199
├── objectql-plugin.ts # ObjectQL 插件
204200
├── driver-plugin.ts # Driver 插件
205-
├── kernel.ts # 原有 ObjectStackKernel (保持兼容)
206201
├── protocol.ts # Runtime Protocol
207202
└── index.ts # 导出
208203
@@ -211,34 +206,7 @@ examples/mini-kernel-example.ts # 示例代码
211206
test-mini-kernel.ts # 测试套件
212207
```
213208

214-
## 迁移指南 (Migration Guide)
215-
216-
### 从旧 Kernel 迁移
217-
218-
**Before**:
219-
```typescript
220-
import { ObjectStackKernel, ObjectQLPlugin } from '@objectstack/runtime';
221-
222-
const kernel = new ObjectStackKernel([
223-
new ObjectQLPlugin(),
224-
appManifest
225-
]);
226-
227-
await kernel.start();
228-
```
229-
230-
**After**:
231-
```typescript
232-
import { ObjectKernel, ObjectQLPlugin } from '@objectstack/runtime';
233-
234-
const kernel = new ObjectKernel();
235-
236-
kernel
237-
.use(new ObjectQLPlugin())
238-
.use(appManifestPlugin);
239-
240-
await kernel.bootstrap();
241-
```
209+
## 使用指南 (Usage Guide)
242210

243211
### 创建新插件
244212

MINI_KERNEL_INDEX.md

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,8 @@ const objectql = kernel.getService('objectql');
6464
-**依赖解析**: 自动拓扑排序
6565
-**向后兼容**: 保留旧 API
6666

67-
## 🔄 迁移路径
67+
## 🔄 使用示例
6868

69-
### 旧架构
70-
```typescript
71-
const kernel = new ObjectStackKernel([
72-
new ObjectQLPlugin(),
73-
appManifest
74-
]);
75-
await kernel.start();
76-
```
77-
78-
### 新架构
7969
```typescript
8070
const kernel = new ObjectKernel();
8171
kernel.use(new ObjectQLPlugin());

MINI_KERNEL_SUMMARY.md

Lines changed: 8 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,7 @@
66

77
**核心原则**: 像 Linux Kernel 一样,将核心功能剥离到最小,所有业务逻辑作为插件加载。
88

9-
## 架构对比
10-
11-
### 改造前 (Before)
12-
13-
```typescript
14-
// ObjectQL 硬编码在 Kernel 中
15-
class ObjectStackKernel {
16-
private ql: ObjectQL; // ← 硬编码
17-
18-
constructor(plugins) {
19-
this.ql = new ObjectQL(); // ← 无法替换
20-
}
21-
}
22-
```
23-
24-
**问题:**
25-
- ❌ ObjectQL 硬编码,无法替换
26-
- ❌ 插件之间无法通信
27-
- ❌ 没有标准的生命周期
28-
- ❌ 测试困难,无法 Mock
29-
30-
### 改造后 (After)
9+
## 架构特点
3110

3211
```typescript
3312
// ObjectQL 成为可插拔的服务
@@ -329,29 +308,16 @@ async trigger(name, ...args) {
329308
node test-mini-kernel.js
330309
```
331310

332-
## 迁移指南
311+
## 使用指南
333312

334313
### 步骤 1: 安装依赖
335314

336315
```bash
337316
npm install @objectstack/runtime
338317
```
339318

340-
### 步骤 2: 更新代码
319+
### 步骤 2: 编写代码
341320

342-
**Before:**
343-
```typescript
344-
import { ObjectStackKernel, ObjectQLPlugin } from '@objectstack/runtime';
345-
346-
const kernel = new ObjectStackKernel([
347-
new ObjectQLPlugin(),
348-
appManifest
349-
]);
350-
351-
await kernel.start();
352-
```
353-
354-
**After:**
355321
```typescript
356322
import { ObjectKernel, ObjectQLPlugin } from '@objectstack/runtime';
357323

@@ -370,37 +336,19 @@ await kernel.bootstrap();
370336
npm test
371337
```
372338

373-
## 向后兼容性
374-
375-
**保持兼容**:
376-
- `ObjectStackKernel` 保留
377-
- `RuntimePlugin` 接口保留
378-
- 旧代码继续工作
379339

380-
🎯 **平滑迁移**:
381-
- 新旧代码可共存
382-
- 渐进式迁移
383-
- 无破坏性变更
384340

385-
## 性能对比
341+
## 性能特点
386342

387343
### 启动时间
388344

389-
| 架构 | 插件数 | 启动时间 |
390-
|------|--------|----------|
391-
| 旧架构 | 5 | ~200ms |
392-
| 新架构 | 5 | ~220ms |
393-
394-
**结论**: 性能几乎一致 (+10% overhead for DI)
345+
- 5个插件: ~220ms
346+
- 依赖解析: O(V+E) 时间复杂度
395347

396348
### 内存占用
397349

398-
| 架构 | 内存 |
399-
|------|------|
400-
| 旧架构 | ~50MB |
401-
| 新架构 | ~52MB |
402-
403-
**结论**: 内存增加可忽略 (+4%)
350+
- 基础内存: ~52MB
351+
- 服务注册表: O(1) 查找性能
404352

405353
## 未来规划
406354

0 commit comments

Comments
 (0)