规模扩大后,最该停止手工做的不是“压缩图片”或“合并文件”这类一次性优化,而是那些每次发布都要重复执行、结果必须保持一致、且一旦漏做就会拖慢全站的环节。典型是静态资源版本管理、图片派生规格生成和缓存失效通知。判断依据不是工作量大小,而是这项操作是否具备“高频、可枚举、强一致”三个特征。
小站阶段,手工替换一张图片、手动改一个文件名,往往比配置流程更快。规模上来后,同一套做法会分化出两种解释。
第一种解释是“人变慢了”:发布频率提高,重复操作占用时间,出错概率上升。第二种解释是“系统变复杂了”:资源之间的依赖增多,一处手工改动会牵连缓存、引用路径和回源行为,单点操作的影响面被放大。
这两种解释对应的处理方式完全不同。前者只需要加人加时间,后者必须改流程。要区分它们,看一个证据:同一项操作在连续多次发布中,是否出现“步骤相同但结果不同”的情况。如果步骤没变、结果却时好时坏,说明问题在系统依赖,不在人的熟练度。
下面三类工作,在页面数量和发布频率上升后,手工执行的代价会超过它节省的时间。
手工给文件改名、再逐个替换页面引用,在几十个页面内还能应付。规模扩大后,漏改一处引用,浏览器可能继续读取旧缓存,用户看到的仍是旧样式或旧脚本。适合交给构建流程:由流程生成带哈希的文件名,并同步替换引用。判断条件很简单——如果同一资源被三个以上页面引用,就该自动化。
同一张原图往往需要列表缩略图、正文图和分享图等不同尺寸。手工逐张导出,容易规格不一致,也容易忘记补新尺寸。适合用统一规则生成派生图,并让页面按规则引用。代价是前期要确定规格清单,之后新增规格需要改规则而不是改图片。
手工在发布后逐个通知缓存节点或等待自然过期,规模小时可以接受。页面和资源数量上升后,漏掉一个节点就会造成新旧内容混杂。适合把刷新动作绑定到发布流程,让发布成功即触发对应资源的失效。这里要注意,刷新失败不等于发布失败,两者需要分别记录,否则会把缓存问题误判为发布问题。
自动化不是无条件正确。以下情况手工更合适:
换句话说,先确认规则稳定,再自动化;规则还在试错阶段,手工调整的灵活性更有价值。这与“规模大就必须全自动”是两回事。
假设某站有约两百个内容页,每次发布平均更新五张图片。团队发现发布后偶发样式错乱。可以这样验证:
这个例子的数字只用于说明比较方法,不代表任何真实项目的表现。动作的关键是:先取得可对比的记录,再决定是加人还是改流程。记录本身会直接影响下一步——它把“感觉慢”变成“哪一步不一致”。
实际操作时,可以先挑一项高频操作,统计它最近若干次执行中“步骤相同、结果不同”的比例。比例低,继续手工并补检查清单;比例高,就把它移入发布流程。移动之后,观察发布失败与缓存异常是否被分开记录,这将决定后续是继续扩大自动化范围,还是先修复流程本身的稳定性。提速的目标不是让每一步都自动,而是让重复且必须一致的步骤不再依赖记忆。