乐于分享
好东西不私藏

软件架构演化原则与评估方法

软件架构演化原则与评估方法

1 软件架构演化原则

序号原则含义落地实践 / 度量建议
1
成本控制
演化成本(人力、时间、基础设施、运维)可预测可控
变更拆小步、ROI 评估、预算上限、成本偏差率
2
进度可控
演化工期可分解、计划和跟踪
Sprint/里程碑、CI/CD 自动化、增量交付
3
风险可控
变更风险(可用性、数据一致性、安全)可识别和控制
静态分析、契约测试、灰度发布、回滚策略
4
主体维持
系统核心行为/服务保持稳定
核心用例保护、契约测试、SLO 遵守率监控
5
结构优化
改进模块边界与耦合性
模块内聚/耦合度分析、定期架构审查
6
平滑演化
变更速率和幅度可控,避免剧烈冲击
小步快跑、限制每次变更原子操作数
7
目标一致
架构演化与业务目标保持一致
变更需附业务目标陈述、OKR/KPI 对齐
8
模块独立
模块可独立升级/回滚,减少级联影响
微服务化、契约测试、隔离数据库
9
影响可控
变更影响范围清晰可限制
隔离环境实验、金丝雀发布、流量控制
10
复杂性可控
系统复杂度不会失控
技术债清理、控制模块数量/依赖环、静态分析
11
支持重构
演化有利于未来重构
高测试覆盖率、模块边界清晰、架构文档
12
支持重用
提升组件/服务复用率
内部组件库、API 版本管理、示例文档
13
遵从设计原则
不违反已有设计原则(如 SOLID、分层)
架构审查、静态分析、Architecture Radar
14
适应新技术
支持采用新技术但风险可控
POC、小范围升级、技术风险评估
15
环境适应性
支持多环境平滑部署
基础设施即代码、容器化、环境隔离测试
16
标准依从性
满足行业/公司/法规标准
自动化安全扫描、合规检查点、审计流程
17
质量向好
提升或至少不损害系统质量(性能、可用性、安全)
SLO/SLI 指标监控、灰度发布、质量门控
18
满足新需求
实现新的业务能力或法规要求
需求覆盖率、功能验收通过率、闭环验证

(1)成本控制

  • 含义:演化所需的人力、时间、基础设施与运维成本应可预测并可控。
  • 指标:估算的变更成本(人日)、TCO 变动、预算偏差率。
  • 落地:把变更拆成小步,建立成本上限(cost cap),对高成本变更做 ROI 评估并走审批流程。

(2)进度可控

  • 含义:演化工期可被分解、计划并按里程碑跟踪。
  • 指标:需求到交付周期(lead time)、里程碑达成率、偏差天数。
  • 落地:使用 Sprint/里程碑、分阶段交付(MVP → 增量交付),CI/CD 自动化以缩短反馈。

(3)风险可控

  • 含义:变更风险(可用性、数据一致性、安全)被识别、量化并有应对策略。
  • 指标:D_total(架构距离)、Change Failure Rate、回滚率、MTTR。
  • 落地:自动化静态分析、契约测试、灰度发布、回滚流程与演进审批(当 D_total > 阈值时触发人工审查)。

(4)主体维持(主体行为稳定)

  • 含义:系统核心行为/服务在演化中保持稳定,不被破坏。
  • 指标:关键业务交易成功率、SLO 遵守率。
  • 落地:定义核心用例并在演化期间优先保护(契约测试/合约网关)。

(5)结构优化

  • 含义:通过演化持续改进模块边界与耦合,提升可维护性。
  • 指标:模块内聚度、模块耦合度(fan-in/fan-out)、代码复杂度。
  • 落地:定期架构审查、引入 Strangler Fig、封装/Adapter 模式保持兼容。

(6)平滑演化

  • 含义:演化速率与幅度可控,避免对系统造成剧烈震荡。
  • 指标:版本间 D_total 曲线平稳性、变更批量大小。
  • 落地:强制小步快跑策略(small-batch),限制每次变更的最大原子操作数。

(7)目标一致

  • 含义:架构演化与业务目标/产品路标保持一致。
  • 指标:变更与业务 KPI 的正相关性(如变更后转化率提升等)。
  • 落地:变更需要带业务目标陈述和成功判定指标(OKR/KSF)。

(8)模块独立演化

  • 含义:模块应可独立升级/回滚,最小化级联影响。
  • 指标:服务独立部署率、跨服务事务数。
  • 落地:微服务化、契约测试、隔离数据库(避免共享 DB)。

(9)影响可控

  • 含义:变更影响范围清晰且可被限制(隔离区域/边界)。
  • 指标:影响服务列表长度、影响用户数量估计。
  • 落地:先在隔离环境或金丝雀分段实验,使用流量控制。

(10)复杂性可控

  • 含义:演化不得导致系统复杂度失控。
  • 指标:模块数、路径长度、依赖环数、复杂度指标(如 McCabe)。
  • 落地:持续技术债清理、引入简单优先策略、拒绝无必要的多层抽象。

(11)有利于重构(支持重构)

  • 含义:演化过程应为未来重构提供便利,而非阻碍。
  • 指标:重构成本预测、模块重用率。
  • 落地:维护良好测试覆盖、模块边界清晰、架构文档。

(12)有利于重用(支持重用)

  • 含义:鼓励通用组件/服务的提取与共享。
  • 指标:复用率、重复代码比例、共享库采纳率。
  • 落地:构建内部组件库、API 版本管理、文档与示例。

(13)设计原则遵从性

  • 含义:演化应尽量不违背既有设计原则(如 SOLID、分层)。
  • 指标:架构审查违反票数、静态分析警告数。
  • 落地:代码审查 + 架构雷达(Architecture Radar)制度。

(14)适应新技术

  • 含义:在满足业务和风险可控前提下,支持采用新技术带来的好处。
  • 指标:技术风险评估、实验成功率(POC 成功率)。
  • 落地:先 POC、小范围升级、指标化验证。

(15)环境适应性

  • 含义:在不同运行环境(云/边缘/本地)下能平滑部署。
  • 指标:同一部署脚本的多环境成功率、环境差异问题数。
  • 落地:基础设施即代码、容器化、环境隔离测试。

(16)标准依从性

  • 含义:满足行业/公司/法规标准(安全、隐私、审计)。
  • 指标:合规审核通过率、审计缺陷数。
  • 落地:引入合规检查点、自动化安全扫描、加密/审计策略。

(17)质量向好

  • 含义:演化应提升或至少不损害系统质量(性能、可用性、安全)。
  • 指标:SLO、错误率、性能基线。
  • 落地:在灰度期持续监控指标并强制门控。

(18)满足新需求

  • 含义:演化要能实现新的业务能力或法规要求。
  • 指标:需求覆盖率、功能验收通过率。
  • 落地:需求-设计-实施-验证闭环,明确定义验收条件。

2 演化评估方法(已知过程 / 未知过程)

2.1 演化过程已知(推荐的工程化流程)

目标:对演化过程中每一步(或每个中间版本 Ai)进行度量,识别风险点并给出放行/回滚决策依据。

(1)流程(可整合进 CI/CD)

①建模并分解原子操作:把每个变更拆为原子操作并生成变更清单(JSON/YAML)。

②静态影响分析(在 PR/CI 中自动运行)

  • 依赖图变化(模块/接口/类/表)
  • API/契约差异(契约测试、OpenAPI diff)
  • DB schema diff(是否兼容)
  • 工具:ArchUnit、jdeps、openapi-diff、sqldiff、static analyzers。

**③计算架构距离 D(i-1,i)**(示例公式见下文)并打分。

④风险分级决策(基于 D_total + 质量属性)

  • Low(自动放行)
  • Medium(灰度/Canary)
  • High(人工审查 + 阻塞 CI)

⑤自动化测试与灰度

  • 执行契约测试、集成测试、性能验证(小样本)
  • 在 Canary 环境验证,收集关键指标(latency, error rate, business KPIs)

⑥验证与放量

  • 若指标稳定,逐步放量;若异常,回滚并记录原因。

⑦记录与沉淀:更新 ADR、架构模型、版本快照。

(2)度量与计算(示例公式)

先前提到的分量化公式(复述并具体化):

D_struct = α1 * Δ_nodes_norm + α2 * Δ_edges_norm + α3 * Δ_interfaces_norm
D_behavior = β1 * Δ_messages_norm + β2 * Δ_fragments_norm
D_qattr = γ1 * Δ_latency_norm + γ2 * Δ_errorrate_norm + γ3 * Δ_throughput_norm + γ4 * Δ_security_norm
D_total = w_struct * D_struct + w_behavior * D_behavior + w_qattr * D_qattr
  • 归一化(_norm)通过历史最大值或预定义阈值归一化到 [0,1]。
  • 权重由组织设定(业务敏感度越高,对 D_qattr 权重越大)。

(示例计算见"示例"章节)

(3)自动化门控建议(示例规则)

  • 若 D_total > 0.15 → 阻塞 CI,要求架构审查。
  • 若 0.05 < D_total <= 0.15 → 允许灰度但必须开启 Canary + 24h 监控。
  • 若契约测试失败 → 阻塞 CI(强制)。
  • 若灰度期间 error rate > baseline * 1.2 → 自动回滚。

2.2 演化过程未知(仅有演化前后快照的逆向评估)

目标:在没有中间历史版本的情况下,通过比较演化前后(A0 与 An)的模型与运行指标来推测变更类型与影响。

(1)步骤(逆向推断)

①收集快照

  • 获取 A0 与 An 的架构模型(组件图、接口签名、DB schema、调用链样本)。
  • 收集演化前后关键质量指标(平均延迟、错误率、吞吐、SLO 违约率)。

②差分分析(Structural & Behavioral Diff)

  • 组件图差分:新增/删除节点、边变化 → 推测 AddModule/RemoveModule/AddDependency 等。
  • API diff:新增/删除/改签名 → 推测接口演化(兼容性问题)。
  • Trace diff(若有调用链采样):消息序列差异 → 推测 AM/DM/SMO 等。

③证据关联

  • 若 DB schema 改动且出现数据异常 → 可能为 AddSchemaField/RemoveField。
  • 若错误率上升且新服务出现 → 可能是新增模块未充分回归测试(AO)。

④打分与假设验证

  • 根据差异程度生成候选演化操作列表并打分(置信度)。
  • 在预生产环境重演关键路径验证假设(shadow traffic/Replay)。

⑤输出报告:列出可能的原子操作序列、置信度、建议的缓解措施。

(2)工具与技术(逆向)

  • 架构模型比较工具(graph diff)
  • OpenAPI / Swagger 比较工具
  • Tracing 比对(Jaeger trace diff,若无则用 sampled logs)
  • 数据一致性检查脚本

3 关键演化环节分析(How to find & prioritize hotspots)

在评估过程中,特别要识别 关键演化环节(hotspots) -- 这些是高风险/高影响的点:

(1)如何判定(示例指标):

  • 高调用量模块(高 QPS)
  • 高耦合(fan-out 高、跨服务事务多)
  • 频繁改动(Git churn rate 高)
  • 低测试覆盖但改动多的模块
  • 高故障率/高 MTTR 的模块

(2)优先级策略

  • 高调用量 + 高耦合 → 优先做灰度与契约测试。
  • 频繁改动 + 低覆盖 → 优先补充测试/阻断直接上线。
  • 数据关键模块(如用户/支付 DB)→ 强制审计与逐步迁移(双写)。

4 演化过程监控(必须实时/自动化)

(1)关键监控指标(建议纳入 Dashboard)

  • D_total(架构距离)与子项(D_struct、D_behavior、D_qattr)
  • SLO/SLI(latency P99, error rate, availability)
  • Canary / FeatureFlag 健康(通过率、异常率)
  • Change Failure Rate、MTTR、回滚次数
  • DB migration progress(百分比、异常事务)
  • Contract Test pass rate

(2)报警/自动化策略示例

  • Canary error rate > baseline + 10% → 自动回滚并通知 on-call。
  • Contract tests failing in CI → 阻断 PR。
  • D_total spike between releases → 自动触发架构审查会议。

5 关键演化环节分析示例(智能锁新增指纹场景)

快速示例把理论映射到实战:

  • 收集阶段:A0(当前系统)→ A1(新增 FingerprintService)、DB 新字段、消息 enrollFingerprint。
  • 评估:
  • D_struct:Auth/Device/Fingerprint 节点新增、Device→Fingerprint 边增加(计算 D_struct)
  • D_behavior:新增 message enrollFingerprint(AM)、增加并行片段可能(AF)
  • D_qattr:新增加密/权限检查可能增加 latency(测量 P95/P99)
  • 风险处置:若 D_total 在中高风险区间,采用灰度(10% 设备)+ 24h 指标观察 + 安全审计。

6 示例计算(D_total)--数值演示(逐步计算)

假设我们用如下归一化差异与权重(仅为示例):

  • 结构差异:Δ_nodes_norm = 0.10,Δ_edges_norm = 0.20,Δ_interfaces_norm = 0.05
  • 结构权重:α1=0.4,α2=0.4,α3=0.2
    → D_struct = 0.4*0.10 + 0.4*0.20 + 0.2*0.05 = 0.13
  • 行为差异:Δ_messages_norm = 0.30,Δ_fragments_norm = 0.10
  • 行为权重:β1=0.7,β2=0.3
    → D_behavior = 0.7*0.30 + 0.3*0.10 = 0.24
  • 质量属性差异:Δ_latency=0.05,Δ_errorrate=0.02,Δ_throughput=0.03,Δ_security=0.01
  • 质量属性权重:γ1=0.4, γ2=0.3, γ3=0.2, γ4=0.1
    → D_qattr = 0.4*0.05 + 0.3*0.02 + 0.2*0.03 + 0.1*0.01 = 0.033
  • 综合权重:w_struct=0.5, w_behavior=0.3, w_qattr=0.2
    → D_total = 0.5*0.13 + 0.3*0.24 + 0.2*0.033 = 0.1436 ≈ 0.144

判定示例阈值(团队可调整):

  • D_total < 0.05:低风险,自动放行
  • 0.05 ≤ D_total ≤ 0.15:中等风险,灰度发布 + 24-72h 监控
  • D_total > 0.15:高风险,强制人工架构审查 & 详细回归测试

在上例 D_total ≈ 0.144,属于中高边界,建议进行灰度并请架构团队复核数据依赖与安全约束。

7 关键演化环节分析(优先级矩阵与缓解措施)

构建一个优先级矩阵(示意):

  • 纵轴:影响度(业务关键性、QPS)
  • 横轴:变更复杂度/不确定性(D_total 含量、schema 变更、跨团队依赖)

矩阵四象限对应行动:

  • 高影响/高复杂 → 阻塞 + 架构委员会 + POC + 小范围 Canary
  • 高影响/低复杂 → 灰度 + 紧急 QA + 加强监控
  • 低影响/高复杂 → POC/优化方案(可能拆小步)
  • 低影响/低复杂 → 自动化小步上线

8 演化评估报告模板

演化评估报告: {变更标题} - {日期}
1. 摘要
  - 变更目的、业务目标、预计产出
2. 范围 & 原子操作列表
  - 列出 AddModule/AM/DF/... 等
3. D_total 及分项
  - D_struct, D_behavior, D_qattr (数值)
4. 风险评级 & 判定规则
  - Low / Medium / High 与阈值
5. 关键影响点(hotspots)
  - 模块、接口、DB、运维要点
6. 测试矩阵
  - 单元/契约/集成/性能/安全
7. 发布策略
  - Canary / BlueGreen / FeatureFlag 详情
8. 回滚条件与 Runbook
9. 监控 & 报表
  - Dashboard 链接、报警阈值
10. 最终建议
  - 放行 / Gray / Block
11. ADR & 参考文档链接

9 演化自动化门控(CI 示例伪代码)

  • 在 CI 中加入步骤:

  • 运行 static diff & contract tests

  • 计算 D_total

  • if D_total > 0.15: block PR and tag for ArchReview

  • else run Canary pipeline automatically

10 演化评估流程

结论与下一步建议

  • 原则清单转化为组织可执行的质量门控(quality gates)与评估模板是提升演化成功率的关键。

  • 建议先做三件事:

  • 在 CI 中加入 D_total 计算与契约测试门控(小改动即可产出即时价值)。

  • 设定并推广 ADR 流程(每次中高风险变更必须填写)。

  • 建立 Canary dashboard(至少包含 latency, error rate, business KPI)。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-14 20:30:02 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/626263.html
  2. 运行时间 : 0.151808s [ 吞吐率:6.59req/s ] 内存消耗:4,705.98kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=21c83e0bcc69cbb1f2235dbed3b923d7
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000722s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001063s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001678s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000496s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000990s ]
  6. SELECT * FROM `set` [ RunTime:0.000486s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001075s ]
  8. SELECT * FROM `article` WHERE `id` = 626263 LIMIT 1 [ RunTime:0.000674s ]
  9. UPDATE `article` SET `lasttime` = 1778761802 WHERE `id` = 626263 [ RunTime:0.011879s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000441s ]
  11. SELECT * FROM `article` WHERE `id` < 626263 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000774s ]
  12. SELECT * FROM `article` WHERE `id` > 626263 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000647s ]
  13. SELECT * FROM `article` WHERE `id` < 626263 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.007567s ]
  14. SELECT * FROM `article` WHERE `id` < 626263 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002590s ]
  15. SELECT * FROM `article` WHERE `id` < 626263 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004488s ]
0.153719s