乐于分享
好东西不私藏

安全稳定好用高质量软件系统工程化构筑之路探索

安全稳定好用高质量软件系统工程化构筑之路探索

客户信任不是一次性事件,而是持续的质量兑现能力。一个系统能否持续赢得客户信任,取决于其在整个生命周期中——从概念到退役——能否始终以可度量、可审计、可预测的方式交付安全、稳定、好用、高质量的价值。

这要求我们建立一套完整的质量工程体系。这套体系以ISO/IEC 25010:2023产品质量模型为“质量目标层”,定义我们追求什么;以DO-178C、ISO 9001、ITIL 4、ASPICE等标准和实践为“过程保障层”,定义我们如何实现;以持续集成、持续交付、可观测性等工程实践为“技术落地层”,定义我们用什么工具和方法落地。

以下按照软件生命周期的六个阶段——需求定义、架构设计、编码实现、验证确认、部署发布、运维演进——逐一展开,阐述在每个阶段如何将四大质量维度(安全、稳定、好用、高质量)构建到系统中。

一、需求定义阶段:质量的起点决定终点

ISO 9001:2015在“8.2 产品和服务的要求”中明确,组织应确定产品和服务的要求,并确保有能力满足这些要求。DO-178C在“系统生命周期过程”中同样强调,分配给软件的系统需求必须可追溯、可验证。两者的共同指向是:需求质量决定产品质量的下限。

1.1 安全需求的结构化定义

安全需求不能停留于“系统应保证数据安全”这种无法验证的表述。应按照ISO 25010安全性特性的五个子特性进行分解:

· 机密性需求:“系统应确保用户手机号在传输层使用TLS 1.3加密,在存储层使用AES-256-GCM加密,密钥与数据物理分离存储。”

· 完整性需求:“系统应确保订单金额在传输过程中不被篡改,API请求体使用HMAC-SHA256签名,服务端验签失败率应记录并告警。”

· 不可抵赖性需求:“系统应确保所有涉及资金的操作生成由服务端私钥签名的操作凭证,凭证包含操作人ID、时间戳、操作内容哈希。”

· 可追溯性需求:“系统应记录每次数据变更的操作主体、操作时间、变更前后值,审计日志保留不少于一年,且存储于只追加介质。”

· 真实性需求:“系统应对所有API调用实施基于OAuth 2.0的认证,令牌有效期不超过1小时,刷新令牌有效期不超过30天,且刷新令牌仅可使用一次。”

这样分解的好处在于,每一个安全需求都是可验证的。测试人员无需猜测“怎样算安全”,而是直接对照这些可度量的验收条件。

1.2 稳定需求的可度量定义

可靠性需求必须包含具体的数值目标。ISO 25010的可用性要求“系统在指定条件下、指定时间内可访问且可运行”,但如果不加数值限定,这个要求没有工程意义。

正确的表述应是:“核心交易链路可用性≥99.99%(年停机时间≤52.56分钟),单次故障恢复时间MTTR≤5分钟,全链路响应时间P99≤200ms,在2倍日常峰值负载下系统不出现服务不可用。”这些数字直接驱动后续的架构决策和测试策略。

1.3 好用需求的用户任务导向

可用性需求不应写“界面美观、操作流畅”,而应以用户任务完成的有效性和效率来定义。按照ISO 25010可用性子特性的框架:

· “用户首次完成下单操作的时间不超过3分钟,错误尝试不超过1次。”

· “用户修改收货地址的操作步骤不超过3步。”

· “当用户输入无效优惠券码时,系统应在用户提交前给出明确提示,而非提交后返回错误。”

这种定义方式使得“好用”从主观感受转化为可测量、可验证的工程指标。

1.4 需求的双向追溯矩阵

DO-178C对A级软件要求建立从系统需求到软件需求、从软件需求到设计、从设计到代码、从需求到测试用例的双向追溯矩阵。这一实践的价值不仅在适航软件领域,也适用于任何对质量有高要求的系统。具体做法:

· 每条需求有唯一ID。

· 每条需求关联至少一条测试用例。

· 每条代码变更可追溯到其所实现的需求。

· 每个测试失败可追溯到被违反的需求。

这确保了不会有“没人知道为什么要写这段代码”的幽灵功能,也不会有“没被任何测试覆盖到”的隐形需求。

二、架构设计阶段:将质量属性注入系统骨架

软件架构是质量属性的第一承载者。一旦架构定型,后续通过代码优化来弥补架构层面缺失的质量属性,成本极高甚至不可行。DO-178C强调设计过程应识别并处理潜在的错误源,ASPICE的SWE.2(软件架构设计)要求架构设计识别并确保满足功能和非功能需求。

2.1 安全性架构设计

ISO 25010的五个安全性子特性在设计层面分别对应不同的架构决策:

机密性对应纵深防御的数据保护架构:TLS终结于API网关,网关到服务间同样使用mTLS,敏感字段在应用层二次加密后再写入数据库,密钥管理服务独立部署,密钥的创建、轮换、销毁都有独立审计。

完整性对应端到端的校验架构:API网关层做第一层请求签名验证;服务层对关键操作做业务规则完整性检查;数据层使用数据库约束和触发器作为最后兜底。

可追溯性对应统一的审计总线架构:所有服务将审计事件异步发送到消息队列,由专门的审计服务消费、落库、归档,与业务逻辑解耦。

2.2 可靠性架构设计

稳定性的架构设计核心是两条原则:消除单点故障、控制故障爆炸半径。

消除单点故障:计算层多副本部署在不同物理节点,无状态设计,会话外置;数据层采用主从或多主复制,写操作走主库,读操作走只读副本;基础设施层跨可用区部署,核心服务跨区域异地多活。

控制爆炸半径:按照业务能力划分服务边界,每个服务拥有独立数据库,服务间使用异步消息解耦,一个服务的故障不会连锁导致其他服务不可用。熔断器、限流器、超时控制在每个服务独立配置,不依赖全局配置。

2.3 可用性架构设计

可用性的架构原则是“以用户任务为中心,而非以系统功能为中心”。具体而言:

· 前端路由设计对应用户的任务流,而非后端服务的API结构。

· 高频操作使用BFF层聚合多个后端服务的数据,减少前端请求次数,降低用户感知延迟。

· 长耗时操作(导出报表、批量处理)采用异步任务模式,提交后立即返回任务ID,用户无需等待。

2.4 架构评审的质量门禁

架构评审是设计阶段最重要的质量关卡。评审必须覆盖以下检查项:

· 安全:威胁建模是否完成?关键数据流的加密和访问控制是否明确?

· 稳定:是否识别了所有单点故障?故障切换策略是什么?容量上限是多少?

· 好用:用户是否有反馈?操作的响应时间目标是多少?

· 高质量:模块边界是否清晰?接口契约是否定义?可测试性是否满足?

评审结论应有三种:通过、有条件通过(列出条件项和责任人)、退回。不退回到设计修改完善的架构,不允许进入编码阶段。

三、编码实现阶段:将规则嵌入工具的强制约束

编码阶段是质量实际被构建进去的阶段。此阶段的核心理念是:不依赖人的自觉性,而是将质量标准固化为自动化约束。ISO 9001的“8.3 产品和服务的设计和开发”要求组织对设计开发过程实施控制,确保输出满足输入要求。

3.1 安全编码的强制门禁

静态应用安全测试必须作为代码提交的强制检查项。规则集应覆盖:

· 注入漏洞:SQL注入、命令注入、LDAP注入——阻断级别。

· 跨站脚本:输出编码缺失——阻断级别。

· 敏感数据暴露:日志中打印密码、密钥硬编码——阻断级别。

· 不安全的加密:使用MD5/SHA1做密码哈希、使用ECB模式——阻断级别。

· 不安全的反序列化:反序列化不可信数据——阻断级别。

这些规则的结果不是建议,而是阻断:违反则代码无法合并。同时,依赖项扫描必须在每次构建时执行,对照CVE数据库检查第三方库是否存在已知漏洞,存在高危漏洞的依赖禁止使用。

3.2 单元测试的覆盖与质量要求

单元测试不是“写了就行”,必须有量化的覆盖标准和有效性要求:

· 行覆盖率≥80%,分支覆盖率≥70%,这是最低接受标准。

· 关键业务逻辑(支付计算、状态机转换、权限判断)的行覆盖和分支覆盖均需达到100%。

· 测试必须覆盖正常路径、边界值、异常路径。测试用例命名遵循“测试什么_什么条件_期望什么”的约定。

· 禁止提交无测试或测试未通过的代码。

这并非过度要求。DO-178C对A级软件要求的MC/DC覆盖率远高于此。即使是非适航领域,关键业务代码也应有接近的覆盖率要求。

3.3 代码审查的制度化

代码审查是知识传递和缺陷预防的双重机制。审查必须关注:

· 逻辑是否正确实现了需求?

· 安全规则是否遵守?

· 是否有充分的单元测试?

· 代码是否可读、可维护、遵循团队编码规范?

· 是否存在隐藏的耦合或性能问题?

每次审查至少需要一位非作者审查人批准。审查意见必须全部解决或记录为技术债务并排入迭代计划,不允许存在“已忽略但未记录”的审查意见。

四、验证确认阶段:层层递进的多层次测试

测试不是在开发结束后进行的一个阶段,而是分布在整个生命周期中的多层次活动。ISO 25010的每个质量特性都需要对应的测试策略。

4.1 功能正确性测试

依据需求阶段定义的验收条件,编写测试用例。测试应分层:

· 单元测试验证单个函数/方法的逻辑正确性。

· 集成测试验证服务间接口契约的正确性,包括正常和异常场景(下游超时、返回错误、返回空数据)。

· 端到端测试验证核心业务路径的完整链路,覆盖真实用户场景。

DO-178C强调的基于需求的测试覆盖和结构覆盖分析,在此体现为:每条需求至少被一个测试用例覆盖,关键路径的代码分支全部被测试遍历。

4.2 安全性测试

安全测试分为自动化和人工两种形式:

· 自动化安全扫描集成在CI流水线中,每次构建都执行,检测已知漏洞模式。

· 周期性渗透测试由独立安全团队或外部机构执行,尝试绕过防御、提权、窃取数据,输出报告并跟踪修复。

· 软件组成分析持续监控第三方依赖的已知漏洞,设定修复SLA:高危7天内修复,严重24小时内修复。

4.3 性能与稳定性测试

性能测试不应是一次性活动,而应分层执行:

· 性能基准测试在开发阶段随着每次提交跑,监控关键接口的响应时间趋势,及时发现性能退化。

· 全链路压测在类生产环境中按真实业务场景施加负载,找到吞吐量拐点和瓶颈,验证限流降级策略是否按预期生效。

· 稳定性测试通过长时间负载验证内存泄漏、连接泄漏、日志堆积等慢性问题。

· 混沌工程测试定期在生产或准生产环境注入故障,验证容错和可恢复性机制。

4.4 可用性测试

可用性测试面向真实用户或代表性用户进行:

· 任务完成率:用户能否完成核心任务?

· 任务完成时间:是否在设计目标范围内?

· 错误率:用户操作中出现多少次失误?

· 满意度:完成后的主观评分。

无障碍性测试使用自动化工具检查颜色对比度、可访问结构、键盘可操作性,同时引入真实辅助技术用户进行测试。

五、部署发布阶段:灰度与回滚的可控变更

部署是风险最高的阶段。ITIL 4的“变更支持”实践强调,所有变更应经过评估、授权,并在必要时可回滚。实践中体现为:

5.1 持续交付流水线的质量门禁

部署流水线中设置多层门禁:

· 代码合并阶段:编译、单元测试、代码扫描、安全扫描全通过。

· 测试环境阶段:集成测试、功能测试、性能测试全通过。

· 预发布环境阶段:冒烟测试验证在最接近生产的环境下功能可用。

· 生产发布阶段:金丝雀发布,先部署到少量节点,接受真实流量验证,监控错误率和延迟,确认无异常后逐步扩大比例。

5.2 灰度发布与自动回滚

发布策略必须是低风险和可逆的:

· 按照1%→10%→50%→100%的节奏逐步放量。

· 每个阶段观察至少30分钟,对比发布前后的错误率、P99延迟、业务指标是否正常。

· 设置自动回滚条件:错误率超过阈值、延迟超过阈值、关键业务指标下跌——任一触发即自动停止发布并回滚。

· 回滚必须是在流水线上一键执行的,不依赖人工操作服务器。

5.3 发布与部署分离

功能发布和数据迁移要解耦:先上线新代码但关闭功能开关,在生产环境验证部署无问题后,再通过配置中心打开功能开关。如果需要紧急关闭,关闭开关即可,无需回滚代码。

六、运维演进阶段:持续的质量守卫与改进

系统上线不意味着质量工作的结束。ITIL 4将“持续改进”作为服务价值系统的核心组成部分。ISO 25010:2023新增的质量使用模型也表明,质量需要在真实使用环境中持续验证。

6.1 可观测性体系的持续运营

质量需要可见,不可见的质量无法管理:

· Metrics监控业务和技术指标,设定多级告警阈值,P50/P90/P99延迟、错误率、吞吐量、可用性。

· Tracing覆盖所有核心链路的调用追踪,故障时可以快速定位。

· Logging结构化、可搜索,日志保留周期满足合规和排障需要。

· 告警必须有明确的责任人、处理SOP和升级策略,未处理的告警持续提醒直到被响应。

6.2 故障管理与持续改进

故障发生后的处理决定了质量基线是上升还是下降。Google SRE的理念是:有控制的故障是系统进化的机会。

· 故障发生后,首要目标是恢复服务,其次才是定位根因。

· 故障复盘遵循无指责原则,聚焦于:发生了什么?为什么发生?如何防止再次发生?我们有没有类似隐患?

· 复盘的输出是可追踪的改进行动,每项行动有责任人和完成期限。

· 故障中发现的能力短板(自动化恢复不够快、观测数据不够全、降级策略不够细)应转化为技术债务,纳入迭代计划。

6.3 长期演进中的质量守卫

系统长期演进面临的最大质量风险是架构退化和质量属性被侵蚀:

· 每一次迭代的需求评审必须评估对安全、稳定、性能的潜在影响。

· 架构委员会对重大变更进行架构评审,防止为短期速度牺牲长期质量。

· 定期(季度或半年)执行质量审计,全面评估九个ISO 25010质量特性的当前状态,与基线对比,识别退化趋势。

· 定期清理技术债务,对过期的依赖库、不再使用的功能、累计的“临时方案”有计划的消除。

6.4 配置管理与基线建立

DO-178C对配置管理的要求极为严格:每个配置项(需求、设计文档、源代码、测试用例、构建脚本)有唯一标识,变更受控,基线清晰。在非适航领域,同样适用:

· 所有代码、配置、基础设施定义纳入版本控制。

· 每次发布建立发布基线,记录所有组件的确切版本。

· 可审计的变更历史:谁、什么时间、改了什么、为什么改、经过谁批准。

· 这一能力的直接价值在于:任何时刻都可以精准复现过去任意一个版本的状态。

结语:全生命周期质量工程的核心逻辑是:软件系统的质量属性不是在测试阶段“测出来”的,而是在需求、设计、编码、部署、运维的每一个阶段“构建进去”的。

ISO/IEC 25010:2023提供了质量目标的完整分类和度量框架,回答“什么是高质量”。DO-178C提供了严苛的过程保障和可追溯性要求,回答“如何通过过程确保质量”。ISO 9001提供了通用的质量管理原则。ITIL 4提供了服务运营阶段的持续改进方法。ASPICE提供了系统性的过程评估框架。

将这些标准融合为一个可操作的工程体系,就形成了从需求定义到运维演进的质量保障完整闭环:

· 需求阶段定义可度量的质量目标。

· 设计阶段将质量目标转化为架构决策。

· 编码阶段通过自动化规则强制执行质量标准。

· 验证阶段分层验证每个质量属性的达成情况。

· 部署阶段通过灰度发布和自动回滚控制变更风险。

· 运维阶段通过持续观测和持续改进守护并提升质量基线。

安全、稳定、好用、高质量,这四者不是相互独立的追求,而是同一质量体系在不同维度的投射。它们共同构成了客户信任的底层逻辑:客户将业务交于我们,不仅因为我们交付的系统具有这些属性,更因为我们以可审计、可验证、持续改进的方式,始终保持这些属性,并且能够证明这一点。

这才是全生命周期质量工程的最终交付物——不是某个软件版本,而是贯穿系统整个生命周期的确定性。这种确定性,是客户信任不可动摇的基石。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-09 05:46:14 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/588991.html
  2. 运行时间 : 0.194317s [ 吞吐率:5.15req/s ] 内存消耗:4,847.20kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=cf3b09d5f7ee2adecc20690403e8cf41
  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.000909s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000852s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000387s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000379s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000622s ]
  6. SELECT * FROM `set` [ RunTime:0.000217s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000559s ]
  8. SELECT * FROM `article` WHERE `id` = 588991 LIMIT 1 [ RunTime:0.000501s ]
  9. UPDATE `article` SET `lasttime` = 1778276774 WHERE `id` = 588991 [ RunTime:0.005620s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000281s ]
  11. SELECT * FROM `article` WHERE `id` < 588991 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000537s ]
  12. SELECT * FROM `article` WHERE `id` > 588991 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000437s ]
  13. SELECT * FROM `article` WHERE `id` < 588991 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000700s ]
  14. SELECT * FROM `article` WHERE `id` < 588991 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001000s ]
  15. SELECT * FROM `article` WHERE `id` < 588991 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004732s ]
0.196012s