从 AOP 到手段与目的:一次关于技术概念的追问
Agent Engineering··3 分钟阅读
学 Agent 权限审批时,一个问题把我绕住了:AOP 到底是一种思想,还是一种手段?再往下想:低层目标能不能成为高层目标的手段?是不是所有东西都能这样分类?
用同一个例子串起来:让 Agent 修改网站首页,但只允许改草稿。
1. AOP 是什么,和拿它做什么,是两个问题

AOP 是一种编程范式,可以用来把横跨多个工具的授权检查独立组织,再按规则接入相应的调用位置。因此,称它为设计思想、把它用作工程手段,并不冲突。权限校验是要实现的功能,AOP 是组织这类代码的一种方式;低耦合则是可能追求的设计目标。它们有关联,但不能画等号。
2. 同一个中间目标,也能是进一步目标的手段

为什么采用 AOP?希望授权规则更容易统一修改。为什么希望规则容易修改?为了降低维护成本。这里,“方便修改规则”对前一步是目标,对后一步又是手段,两种角色可以同时成立。只是,这条关系需要实际验证:如果引入 AOP 反而让代码难追踪、排查更费劲,就不能只凭“做了解耦”认定设计更好。
3. 手段和目的,不能包办所有问题

“在授权范围内改好首页”是当前目标;执行前校验授权,是守住范围的手段;“只允许改草稿”是用户给定的约束;最后草稿改成什么样,是需要查证的结果。把“检查结果”设为下一步目标,也不意味着结果本身就是目标。它们回答的问题不同,不能硬塞进两个格子。
回到学技术这件事,比急着贴标签更有用的是问:它是什么?在什么问题和约束下,用它做什么?怎样起作用,效果和代价如何?
记住一句:向上问“为了什么”,向下问“怎么做到”,再问一句“真的有帮助吗”。中间目标可以服务于进一步目标,但不能推成“一切目的都只是手段”。