结论先行:当需求被取消、代码却已经写完时,不要用“做都做了”当留用理由,也不要用“没人再提”当下线理由。可行的判断顺序是:先确认这段功能是否仍在被真实访问或被其他功能依赖,再评估留用的持续成本,最后决定留用、隐藏还是删除。缺少完整数据或权限时,你仍能完成依赖排查、入口核对和访问日志抽样,但这些动作只能缩小不确定性,不能单独证明某个选择正确。
常见的情况是:立项时的业务需求已经取消,开发也停了,但功能页面上线后一直没有撤下。于是出现两种相反的解释。
这两种解释对应的处理完全相反。前者应当下线,后者贸然删除会连带打断其他流程。区分它们的关键,不是需求文档是否还写着它,而是它今天是否仍处在某条真实路径上。
即使拿不到全站统计后台,你也能完成一次依赖排查,因为它查的是代码和配置,而不是访问量。
这一步的实际动作是“关闭入口后跑一遍主要流程”。如果主流程出现报错或数据写入异常,说明存在隐性依赖,下一步应当是保留功能并补文档,而不是继续推进删除。如果关闭后所有流程正常,只能说明当前主流程不依赖它,仍不能直接推出“无人使用”,因为低频但重要的入口可能不在你的测试路径里。
访问日志和页面统计是判断留用的重要依据,但它的解释力有边界。
因此,看到访问量极低时,至少还要排除三种合理解释:统计代码本身没有加载、页面已被其他规则重定向、访问集中在接口层而不经过页面。只有把这几条排除后,低访问量才更接近“确实无人使用”的判断。反过来,访问量高也不能直接证明需求应当恢复,它可能只是旧链接带来的误入流量。
把依赖排查和访问证据放在一起,可以形成一组可操作的取舍条件。
这里有一个假设例子,仅用于说明比较方法:某活动报名页的需求在活动取消后作废,代码已开发。排查发现没有其他页面引用它,但数据库里存有已提交的报名记录。此时直接删除页面会让记录失去查看入口,更稳妥的做法是隐藏前台入口、保留后台查询,等留存期限到了再整体清理。这个例子的重点不是具体期限,而是“前台可见性”和“数据留存”可以分开处理。
如果你没有服务器权限、看不到完整日志,也不掌握历史需求记录,仍然可以执行一个最小动作:整理一张清单,逐项标注该功能的页面路径、接口名、已知引用位置、是否存在数据写入,以及关闭后的测试结果。这张清单不需要任何后台权限,却能让你在拿到权限后立刻验证,而不是重新摸索。
需要明确的是,这个最小动作只能支持“暂缓删除、继续核实”的结论,不能支持“确认无人使用”的结论。访问量、抓取量或某项统计归零,都不能单独证明处理正确,因为它们各有其他合理解释。真正能推进决策的,是依赖排查结果与访问证据互相印证:两条线都指向无依赖、无访问、无留存要求时,下线才是可执行的;只要有一条线不清晰,就先隐藏入口、保留代码,把风险控制在可回退的范围内。