SDE · AI越强,人就越弱吗?
第三编

第十二章 整体性、稳定性与相对独立性

王德生 著 · 本章正文4,539汉字 · 打开第86页

本章小节

一、三个看起来都像封装的装置

先设想三种用于制作会议纪要的装置。第一种能够把录音、转写、提要和排版连在一起,一次调用便交付一份漂亮文件;但同一个争议有时被记成已达成共识,有时又完全漏掉。第二种始终按照固定规则整理文字,结果十分一致;然而每处理一段,就必须等待使用者手工完成最关键的判断。第三种可以连续运行,几乎不需要人介入,却常常处理了不属于这次会议的材料。

第一种在外形上很完整,却未形成值得托付的稳定性。第二种有某种稳定性,却不能声称已经独立承接整项工作。第三种具有执行上的连续性,却没有形成与目标相符的整体。三个例子提醒我们,整体性、稳定性与相对独立性不是同一个优点的三种修辞,也不是只要拥有其中一项,另外两项便自动随之而来。

这里还可以加入第四种:它只承接发言时间与说话者的对照,范围不大,但能够标出不确定片段,并把结果交给下一环节。它没有前面几种装置的宏大承诺,却可能是更成熟的封装。一个单位是否成立,不取决于它在宣传中覆盖多大的任务,而取决于它实际承接的功能是否与它的边界相符。

因此,这三个特征需要围绕一个明确功能共同辨认。不能在说明整体性时谈整场会议,在说明稳定性时只谈标点格式,在说明独立性时又只谈程序无需再次点击。若三个判断暗中更换了对象,就能把许多不足拼成一个不存在的完整能力。封装的分析首先要求同一组说明指向同一项实际承诺。

二、整体,不是把所有东西装进同一个外壳

什么使多个环节成为一个整体?不是它们共享一张界面,而是它们之间形成了能够解释功能的组织。输入怎样进入,阶段结果怎样转接,冲突怎样被处理,完成与未完成如何区分,都需要有实际关系。一堆工具即使放在同一个文件夹中,也可能只是库存;一个分布在不同地方的流程,却可能因为转接关系明确而具有功能整体性。

在会议例子中,发言者身份、发言内容与后续修改应当能够相互对应。若提要无法返回相关材料,转写纠正之后提要也不更新,那么一部分错误就会被留在不同版本之间。整体性的缺口不只是少了一个步骤,而是已有步骤之间没有形成应有的相互约束。完整列出环节名称,不能代替这种约束实际运行。

整体还包含内部差异。把反对意见压成一句统一意见,可能使文件更整齐,却损害纪要所要保存的东西。某些整体之所以有效,正因为它允许不同部分保持可辨认,而不是使它们全部相同。对主客互动复合体而言,整体特征应当从组织中解释,不能将某个部分的特征放大以后冒充整体特征。

这里的整体性也不要求万事俱备。会议纪要流程无须包办会议场地、电网和全部组织制度,才能被作为一个分析单位。它需要说明自己如何接入这些条件,哪些条件超出了自身能够保证的范围。边界有缺口与边界有接口不是同一回事:前者使承诺悬空,后者使依赖获得明确的连接方式。

三、内部可以替换,整体还能是同一个吗?

设想某项资料核对流程把转写模块更换了,但仍保留相同的输入要求、证据定位方式与异常处理。使用者在当前任务中可能继续把它视为同一种服务。这不意味着内部替换毫无影响,而是说明功能单位的同一性未必依靠所有零件永远不变来维持。它可以依靠某些在变化中被持续保持的关系。

然而,不能仅凭名称没有改变,就认定能力也没有改变。一次更新可能提高常见材料上的表现,却削弱特殊格式的处理;可能调整某类词语的归并方法,使以前可比较的结果不再直接可比。对调用者来说,仍然是同一个按钮;对研究而言,已经是另一个需要重新说明的运行条件。

于是,整体同一性至少有两个层次。一个是界面与社会使用上的连续名称,另一个是与功能有关的机制连续性。前者有助于日常使用,后者决定某些旧证据能否继续适用。两者不应完全分离:当内部变化足以影响承诺时,变化需要以适当方式显露出来,而不能全部藏进“升级”一词。

这一点也可以反过来帮助我们理解人。一个人不断学习,参与的工具与活动持续变化,并不需要因此每天成为毫不相干的陌生者。他的连续性同样不能只由内部成分不变来担保。只是人的身份、身体经历和社会承诺比一个功能流程丰富得多,不能把流程的同一性标准直接搬来,声称已经解释了完整的人格同一性。

四、稳定,首先是有条件的可预期

稳定性不等于结果永远一样。一套帮助排课的流程面对不同教师时间,应当给出不同安排;若它始终输出同一张表,反而可能没有回应输入。我们真正期待的稳定,是条件变化与结果变化之间存在能够辨认的关系,并且关键约束不因为表面表达改变而被轻易丢失。

因此,对稳定性的描述需要带上适用条件。材料是否清楚,任务是否属于已检验范围,输入是否包含必要信息,输出采用什么验收办法,这些都影响判断。把条件略去以后说“准确率很高”,往往只留下一个无法进入实际工作的形容词。稳定不是脱离场景的徽章,而是对某类运行关系的说明。

条件还可以分为常规变化与越界变化。会议中出现不同口音,可能在原先承诺范围内;把极不清晰的远距离录音交进来,则可能已经改变了工作性质。流程若能辨认后者并提示需要其他方式处理,这种拒绝不一定意味着能力较弱。它可能表明封装没有把未知条件伪装成正常输入。

稳定性尤其不能由平均值独占。假设一个资料处理系统在大多数普通记录上顺利,却在少数涉及重要异议的记录上经常失效,那么“总体表现不错”不足以说明它适合保存异议。不同错误的后果不同,测试材料的构成也不同。判断必须回到承诺,而不能让容易处理的多数案例替困难案例投票。

五、稳定可以通过变化来实现

人们容易把稳定想成静止,其实一个有反馈的封装可能不断调整内部过程,才保持对外功能。设想排课流程发现教室临时停用,便重新分配其他时段,同时保留教师不可冲突的约束。它改变了结果,却维持了我们真正需要的稳定关系。变化在这里不是稳定的敌人,而是实现稳定的一部分。

这种情形要求区分结果稳定、规则稳定与目的相关的功能稳定。某个表格的行数每天不同,不意味着功能不稳定;某项规则每天原样执行,也不证明功能适合现实。若规则已经与活动需要脱节,原样重复只会稳定地产生不合适的结果。我们需要知道,究竟是哪一种稳定值得维护。

不过,“可以自我调整”也不能成为不说明边界的借口。调整依据从哪里来,什么条件允许改变规则,改变是否影响过去的比较,都要在适当层级得到交代。一个流程若随时以无法追踪的方式改变自己的验收标准,那么任何结果都可以被宣布为成功,稳定性也就失去可检验的内容。

封装的成熟不在于永远不改变,也不在于无限适应一切,而在于形成可理解的保持与变动关系。哪些功能必须连续,哪些实现可以替换,哪些改变需要重新测试,哪些条件必须向调用者显露,这些安排共同使变化不至于成为失去方向的漂移。

六、独立于哪一种负担?

相对独立性是最容易被误解的特征。一个装置能够自行运行十分钟,并不意味着它不依赖人;它可能依赖事先整理的材料、设计者的劳动、持续能源和事后处理。把这些依赖全部抹去,再把它叫作独立能力,会重新制造一种从无到有的神话。

这里需要问的是,它相对于当前调用者的哪一种负担获得了独立?一段程序可以独立承担重复计算,却不能独立确定资料是否代表现实;一个检索单元能够返回材料,却没有独立承担最后的研究判断。独立性必须具有对象,不能从某个执行环节扩张到整项活动的全部意义。

与此同时,相对独立也不等于虚假独立。调用者不必每次监督每一步,确实是重要变化。若所有依赖都足以取消独立性,那么世界上几乎没有任何值得称为稳定能力的东西。分析的任务不是证明不依赖任何条件,而是说明哪些依赖已经被可靠组织,哪些仍要求当前参与者临场补足。

相对独立性还有一个容易被忽略的限定:执行可以独立于当前调用者,维持这种执行的条件却仍由其他参与者承担。设备维护、程序修订、材料更新并没有被封装这一名称抹去。判断一个封装成熟与否,既看前端是否减少了重复实现,也看后端是否真实接住了这些工作;只有前端简化而后端无人承接,是隐藏负担,不是独立性提高。

在这种意义上,独立性可以从某一层级向另一层级转移。过去由每位使用者承担的检查,后来可能进入公共维护流程;过去靠熟练者临场记忆的操作,后来可能进入自动流程。依赖没有消失,但它不再以同样方式压在每一次调用上。封装改变的正是这种负担分配。

七、使用者心中的整体,也是经过发生的

一个工具在技术上满足某些要求,与使用者愿意把它当作可托付的整体,仍然可能有时间差。第一次使用时,人可能逐步核查;经过适当条件下的多次使用与检验之后,才开始不再展开所有过程。此时,技术上的封装与使用者侧的封装逐渐衔接,某种调用习惯才获得实际根据。

但熟悉不等于证据。一个系统长期在简单问题上表现顺利,可能让使用者产生能够处理所有问题的印象。这个心理整体比实际功能整体更大,便形成过度封装:在体验中,工具已经是“会做这类事情的东西”;在证据上,它只处理过很窄的一段情形。焦虑有时来自看不见能力,有时也来自过早相信能力。

另一种错位是技术条件已经相当成熟,使用者却被要求永远从头重做。这里需要检查怀疑是否还指向真实缺口,还是只是把“不是我亲自做”当作不可信的充分理由。信任不应通过宣传建立,也不应被一条永远无法完成的要求禁止。它需要随证据增加而调整,而不是在盲信与永疑之间摇摆。

因此,使用者侧的封装应当保留可修订性。一次异常可以促使重新展开某些环节,却不必把所有曾经成立的信任全部清零;一轮改进可以扩大托付范围,却不必抹去此前暴露的边界。真正成熟的信任不是不再知道可能失败,而是知道失败怎样进入后续行动。

八、三种特征怎样发生冲突

扩大整体范围可能增加调用便利,却也增加内部连接失效的可能。让流程更独立,可能减少使用者负担,却使某些情境信息来不及进入。提高固定条件下的稳定性,可能通过限制输入种类来实现,而不是通过覆盖所有情况实现。三个特征之间并不存在一种无需权衡的全面增长。

例如,社区活动流程若从报名整理扩展到自动决定参与顺序,就不只是多增加一个功能。它开始接触不同的分配标准与实际处境。原有整理功能的可靠性,不能直接为新的决定作证。整体范围扩大之后,稳定性和独立性的说明都应随之重做,而不是沿用原来的成功记录。

也可能需要故意缩小封装。把争议性决定留作一个明确可展开的环节,并不必然是技术退步;它可以让其他部分获得更可靠的独立运行。好的封装不一定包得最大,而是边界安排使整体活动更能承受变化。某些开放接口不是尚未完成的缺点,而是活动本来就需要的交接位置。

但这种交接也不能成为把难题随意扔回个人的办法。需要人的环节,应当配有相应时间、材料与支持;可以交给其他工具的环节,也应当说明实际接口。把一切困难都标成“人工处理”,并没有完成封装设计,只是给未解决的问题起了一个看似负责的名字。

九、粒子模态是一种相对成形,不是终极闭合

当整体性、稳定性与相对独立性在一定条件下共同形成,一个过程便能够以相对成形的单位进入后续活动。这就是本书使用粒子模态时要强调的发生关系。它不是世界终于被切成了永远不变的原子,而是某种复杂运行在当前尺度上获得了可整体调用的地位。

这个单位的边界可以改变。原来一体的功能可能因为任务分化而拆开,几个原来分散的功能也可能在新组织中形成更大的整体。我们不能先规定颗粒永久固定,再要求实际互动服从它。封装颗粒应当通过活动来辨认,活动变化之后,颗粒也可能需要重新发生。

这还说明,失效不是只有坏掉一种形态。有时内部机制照常运行,外部任务却已经改变;有时结果依旧准确,调用成本却高到不再值得;有时个体使用顺利,规模化之后的条件发生了变化。粒子模态的稳定地位需要条件支撑,不能从过去的成形推断永远有效。

因此,本书并没有用“封装整体”替代旧式实体,重新制造一个独立自足的东西。它要保留的是发生史、条件和可重组性。一个可以放心调用的整体,仍然来自复杂互动;它之所以可以被暂时当作一个单位,恰恰是因为那些互动在合适层级上已经得到了组织。

十、解除焦虑,需要的不是无条件保证

当一个人担心交出执行就会失去自己时,这三个特征可以帮助他把问题说得更准确。哪些过程已经形成了可靠整体,哪些只是界面上的打包?哪些负担已经能够托付,哪些仍然没有被承担?焦虑由此获得对象,而不再只是围绕“人越来越没有用”无限扩张。

答案可能支持更多托付,也可能支持暂时缩小范围。无论哪一种,都不是对人的价值的判决。一个流程尚未稳定,说明需要继续建设或选择其他办法;一个流程已经稳定,说明人可以在相应条件下不再逐项重做。两者都不要求以羞耻组织生活。

整体性说明什么可以作为单位,稳定性说明承诺凭什么成立,相对独立性说明调用者不必重做什么。三者共同提出下一问题:这个单位是否真的进入了当前互动,还是仅仅与人并列在同一幅图中?