Skip to content

Latest commit

 

History

History
147 lines (128 loc) · 5.83 KB

File metadata and controls

147 lines (128 loc) · 5.83 KB

SSlogs 代码结构优化方案

当前结构分析

当前 core/ 目录包含 25 个文件,功能混杂在一起。为了提高代码的可维护性和可读性,建议按功能模块进行重新组织。

优化后的结构

core/
├── __init__.py                    # 主入口,导出公共API
├── analysis/                      # 分析相关模块
│   ├── __init__.py
│   ├── parser.py                  # 日志解析器
│   ├── rule_engine.py             # 规则引擎
│   └── threat_analyzer.py         # 威胁分析器
├── ai/                            # AI/ML相关模块
│   ├── __init__.py
│   ├── ai_analyzer.py             # AI分析器基础
│   ├── ai_config.py               # AI配置管理
│   ├── connectors/                # AI连接器
│   │   ├── __init__.py
│   │   ├── lm_studio.py           # LM Studio连接器
│   │   ├── deepseek.py            # DeepSeek连接器
│   │   └── ollama.py              # Ollama连接器
│   ├── analyzers/                 # AI分析器
│   │   ├── __init__.py
│   │   ├── threat.py              # 威胁分析
│   │   ├── intelligent.py         # 智能分析
│   │   └── nlp.py                 # 自然语言处理
│   └── models/                    # 模型管理
│       ├── __init__.py
│       └── model_manager.py       # 模型管理器
├── infrastructure/                 # 基础设施
│   ├── __init__.py
│   ├── config/                    # 配置管理
│   │   ├── __init__.py
│   │   ├── config_manager.py      # 配置管理器
│   │   └── unified_config.py      # 统一配置管理
│   ├── logging/                   # 日志系统
│   │   ├── __init__.py
│   │   ├── logging_config.py      # 日志配置
│   │   └── formatters.py          # 日志格式化
│   ├── exceptions/                # 异常处理
│   │   ├── __init__.py
│   │   ├── exceptions.py          # 异常定义
│   │   └── handlers.py            # 异常处理器
│   └── performance/               # 性能监控
│       ├── __init__.py
│       ├── performance.py         # 性能监控
│       └── metrics.py             # 指标收集
├── data/                          # 数据处理
│   ├── __init__.py
│   ├── cache/                     # 缓存系统
│   │   ├── __init__.py
│   │   ├── memory_cache.py        # 内存缓存
│   │   ├── file_cache.py          # 文件缓存
│   │   └── multi_level.py         # 多级缓存
│   ├── processors/                # 数据处理器
│   │   ├── __init__.py
│   │   ├── memory_optimized.py    # 内存优化处理器
│   │   └── streaming.py           # 流式处理器
│   └── utils/                     # 工具函数
│       ├── __init__.py
│       ├── ip_utils.py            # IP工具
│       └── utils.py               # 通用工具
├── events/                        # 事件系统
│   ├── __init__.py
│   ├── event_bus.py               # 事件总线
│   └── handlers.py                # 事件处理器
├── output/                        # 输出模块
│   ├── __init__.py
│   ├── reporter.py                # 报告生成器
│   └── formats/                   # 输出格式
│       ├── __init__.py
│       ├── html.py                # HTML格式
│       ├── json.py                # JSON格式
│       └── markdown.py            # Markdown格式
├── security/                      # 安全模块
│   ├── __init__.py
│   ├── validator.py               # 输入验证
│   └── sanitizer.py               # 数据清洗
└── interfaces/                    # 接口定义
    ├── __init__.py
    ├── analysis.py                # 分析接口
    ├── config.py                  # 配置接口
    ├── data.py                    # 数据接口
    └── security.py                # 安全接口

迁移步骤

  1. 创建新的目录结构

    mkdir -p core/{analysis,ai/{connectors,analyzers,models},infrastructure/{config,logging,exceptions,performance},data/{cache,processors,utils},events,output/formats,security,interfaces}
  2. 迁移文件

    • 逐步迁移文件到新的目录结构
    • 更新导入语句
    • 确保所有测试通过
  3. 更新导入

    • 更新 __init__.py 文件
    • 提供向后兼容的导入
  4. 测试验证

    • 运行所有测试确保功能正常
    • 检查导入路径是否正确

优势

  1. 更好的组织: 相关功能模块分组在一起
  2. 更清晰的依赖: 模块间依赖关系更清晰
  3. 更易维护: 新功能可以添加到适当的目录
  4. 更好的测试: 可以针对子模块进行测试
  5. 更好的文档: 每个模块可以有独立的文档

向后兼容性

为了保持向后兼容性,在主 __init__.py 中提供别名:

# 向后兼容的导入
from .analysis.parser import LogParser
from .analysis.rule_engine import RuleEngine
from .ai.ai_analyzer import AIAnalyzer
# ... 其他导入

实施时间表

  • 阶段 1: 创建新目录结构 (1天)
  • 阶段 2: 迁移核心模块 (2天)
  • 阶段 3: 迁移AI模块 (2天)
  • 阶段 4: 迁移基础设施模块 (1天)
  • 阶段 5: 更新测试和文档 (1天)
  • 阶段 6: 验证和优化 (1天)

总预计时间: 8个工作日

注意事项

  1. 保持现有API不变
  2. 逐步迁移,避免大爆炸式重构
  3. 每次迁移后都要确保测试通过
  4. 更新所有相关文档