技能大全

发现合适的技能,快速扩展 AI 智能体的专业能力。

显示 461 个技能

research-engineer
一位毫不妥协的学术研究工程师。以绝对的科学严谨性、客观批判精神与零修饰风格开展工作。专注于理论正确性、形式化验证,以及跨任何所需技术的最优实现。
开发工具查看
vercel-deploy-claimable
将应用程序和网站部署到Vercel。当用户提出部署相关请求时使用此功能,例如“部署我的应用”、“部署到生产环境”、“创建预览部署”、“部署并给我链接”或“上线发布”。无需身份验证——返回预览URL和可领取的部署链接。
开发工具查看
plan-writing
结构化任务规划,包含清晰的分解、依赖关系和验证标准。适用于功能实现、代码重构或任何多步骤工作。
开发工具查看
playwright-skill
通过Playwright实现完整的浏览器自动化。自动检测开发服务器,将简洁的测试脚本写入/tmp目录。支持页面测试、表单填写、屏幕截图、响应式设计检查、用户体验验证、登录流程测试、链接检查,以及任何浏览器任务的自动化。适用于用户需要测试网站、自动化浏览器交互、验证网页功能或执行任何基于浏览器的测试场景。
开发工具查看
posix-shell-pro
精通严格遵循POSIX标准的sh脚本编写,确保在类Unix系统间实现最大程度的可移植性。专注于开发能在任何符合POSIX标准的shell(如dash、ash、sh、bash --posix模式)上运行的脚本。
开发工具查看
postgresql
# PostgreSQL 数据库架构设计规范 ## 1. 核心设计原则 ### 1.1 命名规范 ```sql -- 表名:复数形式,小写,下划线分隔 CREATE TABLE users ( id BIGSERIAL PRIMARY KEY, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); -- 列名:小写,下划线分隔 ALTER TABLE users ADD COLUMN phone_number VARCHAR(20); -- 索引:idx_表名_列名 CREATE INDEX idx_users_email ON users(email); -- 约束:ck_表名_约束名 ALTER TABLE orders ADD CONSTRAINT ck_orders_amount CHECK (amount > 0); ``` ### 1.2 数据类型最佳实践 ```sql -- 标识符:使用BIGSERIAL/BIGINT CREATE TABLE products ( id BIGSERIAL PRIMARY KEY, -- 自增主键 uuid UUID DEFAULT gen_random_uuid() -- 唯一标识 ); -- 时间戳:TIMESTAMPTZ CREATE TABLE audit_logs ( event_time TIMESTAMPTZ NOT NULL DEFAULT NOW(), created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); -- 货币:NUMERIC(19,4) CREATE TABLE transactions ( amount NUMERIC(19,4) NOT NULL, currency CHAR(3) NOT NULL ); -- JSON数据:JSONB CREATE TABLE user_profiles ( preferences JSONB NOT NULL DEFAULT '{}', metadata JSONB ); -- 枚举:CREATE TYPE CREATE TYPE order_status AS ENUM ( 'pending', 'processing', 'shipped', 'delivered', 'cancelled' ); ``` ## 2. 表结构设计 ### 2.1 基础表模板 ```sql CREATE TABLE example_table ( -- 主键 id BIGSERIAL PRIMARY KEY, -- 业务唯一键 business_key VARCHAR(100) UNIQUE NOT NULL, -- 时间戳 created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), deleted_at TIMESTAMPTZ, -- 版本控制 version INTEGER NOT NULL DEFAULT 1, -- 软删除标志 is_deleted BOOLEAN NOT NULL DEFAULT FALSE, -- 审计字段 created_by BIGINT REFERENCES users(id), updated_by BIGINT REFERENCES users(id), -- 检查约束 CONSTRAINT ck_example_status CHECK (status IN ('active', 'inactive', 'suspended')) ) -- 表空间和存储参数 TABLESPACE pg_default; -- 行级安全策略 ALTER TABLE example_table ENABLE ROW LEVEL SECURITY; ``` ### 2.2 分区表设计 ```sql -- 时间范围分区 CREATE TABLE sensor_data ( id BIGSERIAL, sensor_id INTEGER NOT NULL, reading NUMERIC(10,2), recorded_at TIMESTAMPTZ NOT NULL, PRIMARY KEY (id, recorded_at) ) PARTITION BY RANGE (recorded_at); -- 创建月度分区 CREATE TABLE sensor_data_2024_01 PARTITION OF sensor_data FOR VALUES FROM ('2024-01-01') TO ('2024-02-01'); -- 列表分区 CREATE TABLE orders ( id BIGSERIAL, region VARCHAR(20) NOT NULL, amount NUMERIC(19,4) ) PARTITION BY LIST (region); CREATE TABLE orders_north PARTITION OF orders FOR VALUES IN ('beijing', 'tianjin'); ``` ## 3. 索引策略 ### 3.1 基础索引 ```sql -- B-tree索引(默认) CREATE INDEX idx_orders_customer_id ON orders(customer_id); -- 多列索引(注意顺序) CREATE INDEX idx_orders_status_date ON orders(status, created_at DESC); -- 唯一索引 CREATE UNIQUE INDEX uidx_users_email ON users(email) WHERE deleted_at IS NULL; -- 部分索引(过滤无效数据) CREATE INDEX idx_active_products ON products(id) WHERE is_active = true; -- 表达式索引 CREATE INDEX idx_users_lower_email ON users(LOWER(email)); ``` ### 3.2 高级索引 ```sql -- GIN索引(JSONB、数组、全文搜索) CREATE INDEX idx_profiles_preferences ON user_profiles USING GIN (preferences); -- GiST索引(几何数据、范围查询) CREATE INDEX idx_locations_geo ON locations USING GIST (geography_point); -- BRIN索引(大表的时间序列) CREATE INDEX idx_sensor_data_time ON sensor_data USING BRIN (recorded_at); -- 覆盖索引(INCLUDE) CREATE INDEX idx_orders_covering ON orders(customer_id, created_at) INCLUDE (total_amount, status); ``` ## 4. 约束与完整性 ### 4.1 数据完整性约束 ```sql -- 外键约束(级联删除) ALTER TABLE order_items ADD CONSTRAINT fk_order_items_order_id FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE ON UPDATE RESTRICT; -- 检查约束 ALTER TABLE employees ADD CONSTRAINT ck_employees_salary CHECK (salary >= 0 AND salary <= 1000000); -- 排除约束(防止时间重叠) ALTER TABLE room_bookings ADD CONSTRAINT ex_room_bookings_time EXCLUDE USING GIST ( room_id WITH =, tsrange(start_time, end_time) WITH && ); -- NOT NULL约束 ALTER TABLE products ALTER COLUMN sku SET NOT NULL; ``` ## 5. 性能优化模式 ### 5.1 查询优化 ```sql -- 物化视图(缓存复杂查询) CREATE MATERIALIZED VIEW monthly_sales AS SELECT DATE_TRUNC('month', order_date) AS month, SUM(total_amount) AS total_sales, COUNT(*) AS order_count FROM orders WHERE order_date >= '2024-01-01' GROUP BY DATE_TRUNC('month', order_date) WITH DATA; -- 定期刷新 REFRESH MATERIALIZED VIEW CONCURRENTLY monthly_sales; -- 公用表表达式(CTE) WITH recent_orders AS ( SELECT * FROM orders WHERE created_at > NOW() - INTERVAL '30 days' ) SELECT customer_id, COUNT(*) FROM recent_orders GROUP BY customer_id; ``` ### 5.2 连接优化 ```sql -- 使用LATERAL连接 SELECT u.*, latest_order.* FROM users u LEFT JOIN LATERAL ( SELECT * FROM orders WHERE user_id = u.id ORDER BY created_at DESC LIMIT 1 ) latest_order ON true; -- 分区裁剪 SET enable_partition_pruning = on; ``` ## 6. 高级特性 ### 6.1 JSONB操作 ```sql -- JSONB查询优化 CREATE INDEX idx_profiles_preferences_path ON user_profiles USING GIN ((preferences->'settings')); -- JSONB更新 UPDATE user_profiles SET preferences = jsonb_set( preferences, '{notifications,email}', 'true' ) WHERE id = 1; -- JSONB聚合 SELECT jsonb_object_agg(key, value) AS user_settings FROM ( SELECT key, value FROM user_profiles, jsonb_each(preferences->'settings') ) t; ``` ### 6.2 全文搜索 ```sql -- 创建全文搜索索引 ALTER TABLE articles ADD COLUMN search_vector tsvector GENERATED ALWAYS AS ( setweight(to_tsvector('english', COALESCE(title, '')), 'A') || setweight(to_tsvector('english', COALESCE(content, '')), 'B') ) STORED; CREATE INDEX idx_articles_search ON articles USING GIN (search_vector); -- 全文搜索查询 SELECT title, ts_rank(search_vector, query) AS rank FROM articles, plainto_tsquery('english', 'postgresql performance') query WHERE search_vector @@ query ORDER BY rank DESC; ``` ### 6.3 数组类型 ```sql -- 数组列 CREATE TABLE products ( tags TEXT[] NOT NULL DEFAULT '{}', category_ids INTEGER[] NOT NULL DEFAULT '{}' ); -- 数组索引 CREATE INDEX idx_products_tags ON products USING GIN (tags); -- 数组查询 SELECT * FROM products WHERE tags @> ARRAY['electronics', 'sale']; ``` ## 7. 安全与维护 ### 7.1 行级安全 ```sql -- 启用RLS ALTER TABLE user_data ENABLE ROW LEVEL SECURITY; -- 创建策略 CREATE POLICY user_data_policy ON user_data FOR ALL USING (user_id = current_user_id()) WITH CHECK (user_id = current_user_id()); ``` ### 7.2 审计追踪 ```sql -- 审计表 CREATE TABLE audit_trail ( id BIGSERIAL PRIMARY KEY, table_name TEXT NOT NULL, record_id BIGINT NOT NULL, operation CHAR(1) NOT NULL, old_data JSONB, new_data JSONB, changed_at TIMESTAMPTZ DEFAULT NOW(), changed_by BIGINT REFERENCES users(id) ); -- 审计触发器 CREATE OR REPLACE FUNCTION audit_trigger_func() RETURNS TRIGGER AS $$ BEGIN IF (TG_OP = 'DELETE') THEN INSERT INTO audit_trail (table_name, record_id, operation, old_data) VALUES (TG_TABLE_NAME, OLD.id, 'D', row_to_json(OLD)); RETURN OLD; ELSIF (TG_OP = 'UPDATE') THEN INSERT INTO audit_trail (table_name, record_id, operation, old_data, new_data) VALUES (TG_TABLE_NAME, NEW.id, 'U', row_to_json(OLD), row_to_json(NEW)); RETURN NEW; ELSIF (TG_OP = 'INSERT') THEN INSERT INTO audit_trail (table_name, record_id, operation, new_data) VALUES (TG_TABLE_NAME, NEW.id, 'I', row_to_json(NEW)); RETURN NEW; END IF; RETURN NULL; END; $$ LANGUAGE plpgsql; ``` ## 8. 监控与维护 ### 8.1 性能监控视图 ```sql -- 慢查询监控 CREATE VIEW slow_queries AS SELECT query, calls, total_time, mean_time, rows FROM pg_stat_statements WHERE mean_time > 100 -- 超过100ms ORDER BY mean_time DESC; -- 索引使用统计 CREATE VIEW index_usage AS SELECT schemaname, tablename, indexname, idx_scan, idx_tup_read, idx_tup_fetch FROM pg_stat_user_indexes; ``` ### 8.2 维护任务 ```sql -- 自动更新updated_at CREATE OR REPLACE FUNCTION update_updated_at_column() RETURNS TRIGGER AS $$ BEGIN NEW.updated_at = NOW(); RETURN NEW; END; $$ LANGUAGE plpgsql; -- 定期VACUUM和ANALYZE -- 在postgresql.conf中配置: -- autovacuum = on -- autovacuum_vacuum_scale_factor = 0.1 -- autovacuum_analyze_scale_factor = 0.05 ``` ## 9. 扩展推荐 ```sql -- 常用扩展 CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; CREATE EXTENSION IF NOT EXISTS "pgcrypto"; -- 加密函数 CREATE EXTENSION IF NOT EXISTS "pg_stat_statements"; -- SQL统计 CREATE EXTENSION IF NOT EXISTS "btree_gin"; -- B-tree GIN支持 CREATE EXTENSION IF NOT EXISTS "postgis"; -- 地理空间数据 ``` ## 10. 部署建议 1. **连接池**: 使用PgBouncer或Pgpool-II 2. **复制**: 设置流复制(至少1主1备) 3. **备份**: - 物理备份: pg_basebackup - 逻辑备份: pg_dump + 时间点恢复(PITR) 4. **监控**: - pg_stat_* 系统视图 - pgBadger 日志分析 - Prometheus + Grafana 这个架构设计遵循PostgreSQL最佳实践,结合了性能优化、数据完整性和可维护性考虑,适用于生产环境部署。
开发工具查看
powershell-windows
PowerShell Windows 模式。关键陷阱、运算符语法、错误处理。
开发工具查看
prisma-expert
Prisma ORM专家,专精于架构设计、数据迁移、查询优化、关系建模及数据库操作。主动应对Prisma架构问题、迁移难题、查询性能、关系设计或数据库连接故障。
开发工具查看
production-code-audit
自主深度扫描整个代码库,逐行理解架构与模式,随后系统化地将其转化为具备优化措施、符合企业级专业标准的生产就绪代码。
开发工具查看
security-scanning-security-sast
静态应用程序安全测试(SAST),适用于多语言与多框架的代码漏洞分析。
开发工具查看
tdd-workflow
测试驱动开发工作流原则。红-绿-重构循环。
开发工具查看
simpy
基于流程的离散事件仿真框架(Python实现)。适用于构建包含流程、队列、资源及时间驱动事件的系统仿真,例如制造系统、服务运营、网络流量、物流管理,或任何实体随时间推移与共享资源交互的系统场景。
开发工具查看
pypict-skill
成对测试生成
开发工具查看
python-development-python-scaffold
作为一名专注于生产就绪级Python应用架构设计的专家,我将为您提供结合现代化工具链(uv、FastAPI、Django)和类型提示的完整项目脚手架方案。以下是三个典型项目结构示例: --- ### **方案一:FastAPI微服务架构(uv + Pydantic + SQLAlchemy)** ``` modern-api/ ├── pyproject.toml # uv依赖管理与构建配置 ├── .python-version # Python版本锁定 ├── .env.example # 环境变量模板 ├── .gitignore ├── .pre-commit-config.yaml # Git提交前检查 │ ├── src/ │ └── api_service/ │ ├── __init__.py │ ├── main.py # FastAPI应用入口 │ ├── config/ # 配置管理 │ │ ├── __init__.py │ │ ├── settings.py # Pydantic配置模型 │ │ └── constants.py │ │ │ ├── core/ # 核心组件 │ │ ├── __init__.py │ │ ├── dependencies.py # DI依赖注入 │ │ ├── security.py # 认证授权 │ │ └── exceptions.py # 自定义异常 │ │ │ ├── domain/ # 领域模型 │ │ ├── __init__.py │ │ ├── entities.py # 纯数据类(Pydantic) │ │ └── value_objects.py │ │ │ ├── application/ # 应用服务层 │ │ ├── __init__.py │ │ ├── use_cases/ # 业务用例 │ │ │ ├── __init__.py │ │ │ └── user_management.py │ │ └── interfaces/ # 抽象接口 │ │ └── repositories.py │ │ │ ├── infrastructure/ # 基础设施层 │ │ ├── __init__.py │ │ ├── database/ │ │ │ ├── __init__.py │ │ │ ├── session.py # SQLAlchemy会话管理 │ │ │ └── models.py # ORM模型 │ │ └── repositories/ # 仓储实现 │ │ └── user_repository.py │ │ │ ├── api/ # 接口层 │ │ ├── __init__.py │ │ ├── v1/ # API版本隔离 │ │ │ ├── __init__.py │ │ │ ├── endpoints/ │ │ │ │ ├── __init__.py │ │ │ │ ├── users.py │ │ │ │ └── health.py │ │ │ └── routers.py # 路由聚合 │ │ └── middleware/ # 中间件 │ │ ├── logging.py │ │ └── rate_limit.py │ │ │ └── utils/ # 工具函数 │ ├── logging.py # 结构化日志 │ └── validators.py │ ├── tests/ # 分层测试 │ ├── unit/ │ │ ├── domain/ │ │ └── application/ │ ├── integration/ │ │ └── api/ │ ├── fixtures/ │ └── conftest.py # Pytest配置 │ ├── scripts/ # 部署运维脚本 │ ├── migration.py # 数据库迁移 │ ├── seed_data.py │ └── health_check.py │ ├── docker/ │ ├── Dockerfile │ ├── docker-compose.yml # 开发环境依赖 │ └── nginx/ │ └── default.conf │ └── docs/ # OpenAPI文档 ├── api_spec.yaml └── architecture.md ``` **关键特性:** - 采用uv作为极速包管理器和运行器 - 严格的分层架构(清洁架构) - 100%类型提示覆盖(mypy配置预设) - 异步优先设计(async/await) - 基于Pydantic v2的请求/响应验证 - SQLAlchemy 2.0异步ORM支持 --- ### **方案二:Django全栈应用(uv + Django Ninja + Celery)** ``` django-platform/ ├── pyproject.toml # uv依赖(替代requirements.txt) ├── .python-version ├── .envs/ │ ├── .local # 本地环境变量 │ ├── .production # 生产环境变量 │ └── .ci # CI环境变量 │ ├── config/ # Django项目配置 │ ├── __init__.py │ ├── settings/ # 环境分离配置 │ │ ├── __init__.py │ │ ├── base.py # 基础配置 │ │ ├── local.py │ │ └── production.py │ ├── asgi.py │ ├── urls.py │ └── wsgi.py │ ├── apps/ # 可插拔Django应用 │ ├── __init__.py │ ├── users/ # 用户管理应用 │ │ ├── __init__.py │ │ ├── models.py # 类型提示Model │ │ ├── admin.py # 强化类型提示 │ │ ├── api/ │ │ │ ├── schemas.py # Django Ninja Schema │ │ │ └── routers.py │ │ ├── services.py # 业务逻辑封装 │ │ ├── selectors.py # 查询管理器 │ │ └── migrations/ │ │ │ ├── products/ # 商品模块 │ └── common/ # 公共组件 │ ├── models.py # 抽象基类模型 │ └── mixins.py │ ├── libs/ # 内部共享库 │ ├── authentication/ │ ├── payment/ │ └── notifications.py │ ├── static/ # 静态资源 ├── templates/ # Jinja2模板 │ ├── tasks/ # Celery异步任务 │ ├── __init__.py │ ├── celery.py │ └── email_tasks.py │ ├── tests/ # 工厂模式测试 │ ├── factories.py # 测试数据工厂 │ └── pytest.ini │ ├── manage.py ├── docker-compose.yml # PostgreSQL + Redis + Celery └── Makefile # 常用命令自动化 ``` **Django优化配置:** ```python # config/settings/base.py from typing import List, Tuple # 类型提示增强 class TypedDjangoConfig: INSTALLED_APPS: List[str] = [ 'django.contrib.admin', 'django.contrib.auth', 'apps.users.apps.UsersConfig', # 显式应用配置类 ] # mypy兼容的中间件声明 MIDDLEWARE: Tuple[str, ...] = ( 'django.middleware.security.SecurityMiddleware', 'corsheaders.middleware.CorsMiddleware', ) ``` --- ### **方案三:现代化CLI工具包(uv + Typer + Rich)** ``` cli-toolkit/ ├── pyproject.toml # 包含完整工具链配置 ├── .pre-commit-config.yaml ├── .github/ │ └── workflows/ │ ├── ci.yml # uv测试流水线 │ └── release.yml # 自动发布 │ ├── src/ │ └── cli_package/ │ ├── __init__.py │ ├── __main__.py # 模块直接执行入口 │ ├── cli.py # Typer主应用 │ │ │ ├── commands/ # 命令模块化 │ │ ├── __init__.py │ │ ├── init.py # 子命令:tool init │ │ └── deploy.py # 子命令:tool deploy │ │ │ ├── core/ # 核心逻辑 │ │ ├── config.py # 配置管理 │ │ ├── api_client.py # 类型化HTTP客户端 │ │ └── exceptions.py │ │ │ ├── models/ # 数据模型 │ │ ├── project.py │ │ └── response.py │ │ │ └── utils/ │ ├── console.py # Rich控制台输出 │ ├── spinner.py # 进度指示器 │ └── validators.py │ ├── tests/ │ ├── test_cli.py # CliRunner测试 │ └── snapshots/ # 输出快照测试 │ └── examples/ # 使用示例 ├── basic_usage.py └── advanced_config.py ``` **pyproject.toml 工具链配置示例:** ```toml [build-system] requires = ["uv>=0.1.0"] build-backend = "hatchling.build" [tool.uv] python = "3.11" [tool.mypy] strict = true warn_return_any = true disallow_untyped_defs = true [tool.ruff] target-version = "py311" select = ["E", "F", "I", "B", "UP"] ``` --- ### **通用最佳实践:** 1. **类型提示策略**: - 使用 `from __future__ import annotations` - 关键模块添加 `# type: ignore[import]` 注释 - 配置 `mypy` 严格模式与 `pyright` 类型检查 2. **uv工作流**: ```bash # 创建虚拟环境 uv venv # 安装依赖(替代pip) uv pip install -e . # 运行脚本 uv run python main.py # 依赖锁定 uv lock ``` 3. **生产就绪配置**: - 结构化日志(structlog/loguru) - 指标收集(Prometheus客户端) - 分布式追踪(OpenTelemetry) - 健康检查端点(/health, /ready) 4. **测试策略**: - 单元测试:pytest + factory_boy - API测试:pytest-httpx - 集成测试:testcontainers - 类型测试:pytest-mypy-plugins 可根据具体业务场景选择或混合上述架构,所有方案均支持: - ✅ 完整的类型安全 - ✅ 现代化开发体验 - ✅ 容器化就绪 - ✅ CI/CD友好 - ✅ 可扩展的模块化设计
开发工具查看
python-patterns
Python开发原则与决策。框架选择、异步模式、类型注解、项目架构。授人以渔,而非授人以鱼。
开发工具查看
python-packaging
创建可分发的Python包,包含规范的项目结构、setup.py/pyproject.toml配置,并支持发布到PyPI。适用于打包Python库、创建CLI工具或分发Python代码的场景。
开发工具查看
tdd-workflows-tdd-cycle
在测试驱动开发(TDD)工作流程中应用TDD循环
开发工具查看
vercel-deployment
使用Next.js部署至Vercel的专业指南 适用场景:Vercel平台、部署流程、托管服务、生产环境配置。
开发工具查看