# Feng-Plugin-library **Repository Path**: iron-source-galaxy/feng-plugins ## Basic Information - **Project Name**: Feng-Plugin-library - **Description**: 陈铁锋的插件库 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-07 - **Last Updated**: 2025-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Python组件化开发体系 --- ### 组件化架构设计 #### 1. 组件分层模型 ```mermaid graph TD A[应用层] --> B[业务组件] A --> C[领域组件] B --> D[基础组件] C --> D D --> E[原子工具库] ``` #### 2. 组件分类标准 | 类型 | 示例 | 复用等级 | 依赖关系 | |--------------|-----------------------|----------|------------| | **原子组件** | logger, config_loader | 高 | 零依赖 | | **领域组件** | payment_processor | 中 | 少量内部依赖| | **业务组件** | user_management | 低 | 允许组合依赖| --- ### 组件开发规范 #### 1. 组件目录结构 ```bash my_component/ ├── src/ # 组件源码 │ ├── core.py # 核心功能 │ ├── interfaces.py # 抽象接口 │ └── utils.py # 辅助工具 ├── tests/ # 组件测试 │ ├── unit/ # 单元测试 │ └── integration/ # 集成测试 ├── docs/ # 组件文档 │ ├── quickstart.md # 快速开始 │ └── api_reference.md # API文档 ├── pyproject.toml # 组件元数据 └── requirements.txt # 精确依赖 ``` #### 2. 接口设计原则 ```python # 使用抽象基类定义接口 from abc import ABC, abstractmethod class IDataConnector(ABC): @abstractmethod def connect(self, config: dict): """建立连接""" @abstractmethod def execute_query(self, query: str): """执行查询""" # 具体实现 class PostgresConnector(IDataConnector): def connect(self, config): # 具体实现... pass ``` #### 3. 配置管理标准 ```python # 使用pydantic进行配置验证 from pydantic import BaseModel class DBConfig(BaseModel): host: str port: int = 5432 timeout: float = 5.0 ssl: bool = True ``` --- ### 组件仓库管理 #### 1. 私有组件仓库架构 ```mermaid graph LR D[开发者] -->|推送| G[GitLab组件库] G -->|触发| C[CI/CD流水线] C -->|构建| A[私有Artifactory] A -->|拉取| P[生产环境] ``` #### 2. 组件版本控制策略 1. **版本格式**:`主版本.次版本.修订号` (遵循SemVer规范) 2. **兼容性原则**: - 主版本变更:破坏性API修改 - 次版本变更:向后兼容的功能新增 - 修订号变更:问题修复 #### 3. 组件发布流程 ```bash # 1. 版本更新 bump2version patch # 自动更新版本号 # 2. 构建包 python -m build # 3. 发布到私有仓库 twine upload --repository private-pypi dist/* ``` --- ### 组件依赖管理 #### 1. 分层依赖控制 ```python # pyproject.toml [project] name = "payment_component" dependencies = [ "core_utils>=1.3", # 基础组件 "cryptography>=42.0", # 精确版本 ] [project.optional-dependencies] test = ["pytest>=7.0"] redis = ["redis-py>=5.0"] ``` #### 2. 依赖隔离策略 ```bash # 安装核心依赖 pip install payment_component # 安装可选依赖 pip install "payment_component[redis,test]" ``` --- ### 组件集成方案 #### 1. 应用中使用组件 ```python # 安装组件 # pip install internal-data-connector==1.2.0 from company_components.data import PostgresConnector from company_components.config import DBConfig # 初始化配置 config = DBConfig(host="db.example.com", user="app") # 创建组件实例 connector = PostgresConnector(config) # 使用组件功能 results = connector.execute_query("SELECT * FROM users") ``` #### 2. 动态组件加载 ```python import importlib def load_component(component_name: str, version: str): module_name = f"company_components.{component_name}_v{version.replace('.', '_')}" return importlib.import_module(module_name).ComponentEngine # 使用示例 db_component = load_component("database", "2.1.0")(config) ``` --- ### 质量保障体系 #### 1. 组件质量标准 | 指标 | 要求 | 检测工具 | |------------------|--------------------------|------------------| | 测试覆盖率 | ≥85% | pytest-cov | | 代码质量 | 无Critical异味 | SonarQube | | 依赖安全性 | 无已知漏洞 | PyUP, Snyk | | 文档完整性 | API文档100%覆盖 | Sphinx | #### 2. 自动化检测流水线 ```mermaid graph LR C[代码提交] --> L1[单元测试] L1 --> L2[集成测试] L2 --> L3[安全扫描] L3 --> L4[性能基准测试] L4 --> D[自动发布] ``` --- ### 组件文档规范 #### 1. 强制文档内容 ```markdown ## 数据连接器组件 v2.1 ### 功能描述 提供统一的关系型数据库访问接口 ### 快速开始 ​```python from company_components.data import PostgresConnector conn = PostgresConnector(config) ``` ### 配置参数 | 参数 | 类型 | 默认值 | |---------|--------|----------| | host | string | 无 | | timeout | float | 5.0 | ### 变更日志 - v2.1.0: 增加连接池支持 - v2.0.0: 重构接口协议