Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 1 addition & 12 deletions MINI_KERNEL_ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -232,18 +232,7 @@ Plugin A Plugin B Plugin C
## 6. ObjectQL 插件化 (ObjectQL as Plugin)

```
Before (Hardcoded):
┌─────────────────────┐
│ ObjectStackKernel │
│ │
│ ┌───────────────┐ │
│ │ ObjectQL │ │ ← 硬编码在 Kernel 中
│ │ (Hardcoded) │ │
│ └───────────────┘ │
│ │
└─────────────────────┘

After (Plugin-based):
Plugin-based Architecture:
┌─────────────────────┐
│ ObjectKernel │
│ (MiniKernel) │
Expand Down
18 changes: 1 addition & 17 deletions MINI_KERNEL_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -264,23 +264,7 @@ if (process.env.ENABLE_API === 'true') {
}
```

## Migration from Old Kernel

### Before (ObjectStackKernel)

```typescript
import { ObjectStackKernel, ObjectQLPlugin } from '@objectstack/runtime';

const kernel = new ObjectStackKernel([
new ObjectQLPlugin(),
appManifest,
driver
]);

await kernel.start();
```

### After (ObjectKernel)
## Usage

```typescript
import { ObjectKernel, ObjectQLPlugin, DriverPlugin } from '@objectstack/runtime';
Expand Down
34 changes: 1 addition & 33 deletions MINI_KERNEL_IMPLEMENTATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,11 +132,7 @@ kernel.use(new DriverPlugin(memoryDriver, 'memory'));
- 插件可以独立测试
- 依赖注入简化测试

### 4. 向后兼容

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

## 使用示例 (Usage Examples)

Expand Down Expand Up @@ -202,7 +198,6 @@ packages/runtime/src/
├── types.ts # Plugin, PluginContext 接口
├── objectql-plugin.ts # ObjectQL 插件
├── driver-plugin.ts # Driver 插件
├── kernel.ts # 原有 ObjectStackKernel (保持兼容)
├── protocol.ts # Runtime Protocol
└── index.ts # 导出

Expand All @@ -211,34 +206,7 @@ examples/mini-kernel-example.ts # 示例代码
test-mini-kernel.ts # 测试套件
```

## 迁移指南 (Migration Guide)

### 从旧 Kernel 迁移

**Before**:
```typescript
import { ObjectStackKernel, ObjectQLPlugin } from '@objectstack/runtime';

const kernel = new ObjectStackKernel([
new ObjectQLPlugin(),
appManifest
]);

await kernel.start();
```

**After**:
```typescript
import { ObjectKernel, ObjectQLPlugin } from '@objectstack/runtime';

const kernel = new ObjectKernel();

kernel
.use(new ObjectQLPlugin())
.use(appManifestPlugin);

await kernel.bootstrap();
```
## 使用指南 (Usage Guide)

### 创建新插件

Expand Down
12 changes: 1 addition & 11 deletions MINI_KERNEL_INDEX.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,18 +64,8 @@ const objectql = kernel.getService('objectql');
- ✅ **依赖解析**: 自动拓扑排序
- ✅ **向后兼容**: 保留旧 API

## 🔄 迁移路径
## 🔄 使用示例

### 旧架构
```typescript
const kernel = new ObjectStackKernel([
new ObjectQLPlugin(),
appManifest
]);
await kernel.start();
```

### 新架构
```typescript
const kernel = new ObjectKernel();
kernel.use(new ObjectQLPlugin());
Expand Down
68 changes: 8 additions & 60 deletions MINI_KERNEL_SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,7 @@

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

## 架构对比

### 改造前 (Before)

```typescript
// ObjectQL 硬编码在 Kernel 中
class ObjectStackKernel {
private ql: ObjectQL; // ← 硬编码

constructor(plugins) {
this.ql = new ObjectQL(); // ← 无法替换
}
}
```

**问题:**
- ❌ ObjectQL 硬编码,无法替换
- ❌ 插件之间无法通信
- ❌ 没有标准的生命周期
- ❌ 测试困难,无法 Mock

### 改造后 (After)
## 架构特点

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

## 迁移指南
## 使用指南

### 步骤 1: 安装依赖

```bash
npm install @objectstack/runtime
```

### 步骤 2: 更新代码
### 步骤 2: 编写代码

**Before:**
```typescript
import { ObjectStackKernel, ObjectQLPlugin } from '@objectstack/runtime';

const kernel = new ObjectStackKernel([
new ObjectQLPlugin(),
appManifest
]);

await kernel.start();
```

**After:**
```typescript
import { ObjectKernel, ObjectQLPlugin } from '@objectstack/runtime';

Expand All @@ -370,37 +336,19 @@ await kernel.bootstrap();
npm test
```

## 向后兼容性

✅ **保持兼容**:
- `ObjectStackKernel` 保留
- `RuntimePlugin` 接口保留
- 旧代码继续工作

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

## 性能对比
## 性能特点

### 启动时间

| 架构 | 插件数 | 启动时间 |
|------|--------|----------|
| 旧架构 | 5 | ~200ms |
| 新架构 | 5 | ~220ms |

**结论**: 性能几乎一致 (+10% overhead for DI)
- 5个插件: ~220ms
- 依赖解析: O(V+E) 时间复杂度

### 内存占用

| 架构 | 内存 |
|------|------|
| 旧架构 | ~50MB |
| 新架构 | ~52MB |

**结论**: 内存增加可忽略 (+4%)
- 基础内存: ~52MB
- 服务注册表: O(1) 查找性能

## 未来规划

Expand Down
Loading
Loading