官方服务微信:dat818 购买与出租对接

遗留代码维护的困境与为什么需要生物学思维的启示

2万

主题

2

回帖

8万

积分

管理员

积分
85847
发表于 2025-2-4 04:29:53 | 显示全部楼层 |阅读模式
    1

    程序员应该有这样的经验,并且当他们接管左手代码时会感到沮丧。复杂的代码和嵌套的结构不仅令人困惑,而且更无法维护文档和体系结构。当代码维护几乎为零时,可以采用的技术解决方案只是重建。简单地说,它正在重写。

    这种情况是不可避免的,还是仅是由不规则代码引起的?我们不急于给出答案。在这里,我们将介绍一本书:“为什么需要生物学思维”,而作者是。本文讨论了我对这本书的理解,希望回答我刚刚提出的问题。

    2复杂系统形成的四个原因

    这四个原因导致并加剧了技术系统的复杂性:积累,互动,意外情况和普遍的罕见事物。

    2.1

    从字面上看,我们可以理解为吸附和积累。每次您每次添加一点时,都会有很多。该句子描述了最佳的积累效果。但是,它于1975年出版。

    无论代码迭代和升级多么独立,由代码数量引起的目标的结果是,代码的数量已从一点点变为很多,并且剩余的代码和剩余的系统形成了。

    剩余代码有什么问题?积累效应会导致巨大的代码,没有人能完全理解系统。当系统存在问题时,知道代码最佳的人可能已经没有音频就离开了工作。

    因此,您只能仔细添加兼容的逻辑,这甚至加剧了积累效果。即使在某些无助的情况下,可以采用的方法只能容忍此错误,因为容忍此错误的成本小于修复错误的成本。

    2.2相互作用

    由积累效应引起的大规模系统,结合了交互的特征,将使技术系统更加复杂。

    除了自身行动外,技术系统还与其他大量系统进行交互。例如,按订单购买产品,然后订购系统,产品系统,支付系统,物流系统和卡息券系统将进行交互和合作。这种积累的复杂性将表明,由于相互作用特征的出现,几何水平的数量将增加。

    相互作用的两个特征:第一个是互操作性。寻找如何去搜索引擎上的某个地方,搜索引擎将告诉您出租车和出租车按钮需要多长时间。第二个是相互依赖。例如,您需要在订购订单时使用优惠券,然后在卡系统出现问题时,它将影响订单系统。

    2.3必须处理的意外情况

   


    这里的事故是指边境情况。在测试工作中,测试被特别称为边界测试:尝试输入边界条件,以查看输出结果是否异常。例如,一部分逻辑是在5分钟,5分钟01秒,4分59秒内处理订单,以查看数据是否丢失或冗余。

    边境情况似乎很特别,实际上非常普遍,这导致了第四点:普遍的稀有事物。

    2.4一般稀有事物

    当一个语料库几乎所有文本时,稀有单词将比预期更普遍。词汇的频率使用电源分配。这些稀有的单词使用频率像长尾巴一样,分布在坐标轴上,扩展到长距离区域,也称为长尾巴分布。计算机语言学家必须处理这些长尾巴,以使系统的复杂性不可避免地增加。

    3为什么人类不能理解复杂的系统

    在讲话之后,系统复杂性的原因,我们必须进一步讨论为什么人类无法理解复杂的系统。有两个原因。第一个是人类对筑巢具有认知限制,其次是人类对分支的认知限制。

    让我们先谈谈嵌套。作者在本书中的计算机概念称为递归。看三个句子:

    这三个句子的嵌套结构越来越难以理解。当有足够的条款进入主句子时,人类根本无法理解此类句子。递归作为算法在程序中非常普遍。

    让我们谈谈分支机构。分支是指条件A符合条件A,则执行业务A,如果满足条件B,则将执行业务B。分支在计算机程序中也很常见。

    一旦计算机程序包含多个拆分点,该程序的运行路径数量就会增加。根据保守的计算,当拆分点以正常频率出现时,仅出现了1,000行代码的程序,并且10中10的潜在路径将用于遍历。这是一个超过1000亿的天文数字。因此,很难检查可能的路径,了解每条路径的含义并确定其准确性。

    嵌套和分支带来的变量复杂,远远超过了人脑的极限。

    4面对复杂性我该怎么办

    无法避免复杂性,超出了人类认知的限制。我们应该如何处理?

    我认为核心是保护系统。请参阅此公共帐户文章:就像“为什么需要生物学思维”的标题一样,作者认为我们需要生物学思维。

    4.1生物系统和技术系统

   


    作者提出了物理学和生物学思维的两个维度,并建议我们使用生物学思维来面对复杂性。由于复杂的技术系统需要生物学思维,因此有三个原因。

    首先,生物系统通常比物理系统更复杂。物理系统的组件通常相同:由由相同的气体分子或同一原子(例如钻石)组成的封闭系统组成。在整个系统中,每个部分之间的相互作用方法通常都是统一的,例如卫星在行星周围运行的方式。

    但是,在生物学中,系统的组成部分不仅具有多种类型,而且涉及许多层次:不同级别的生物和器官;细胞中的蛋白质是多种多样的。在生物系统的所有部分都很难拆卸。相反,有必要单独分析。考虑整体。

    其次,生物系统与物理系统不同。一个重要的因素是生物系统历史上是历史性的。生物系统更容易受到进化的影响,这是生物系统的基本特征之一。

    进化的新功能通常会叠加在旧功能中,生物系统的演变也将留下剩余的代码。科学家认为,基因中存在一些物质,这些物质保存在进化过程中,但它将不再发挥作用。技术系统中也有许多这样的功能。

    第三,可以通过高度优化的公差模型来分析生物系统与技术系统之间的相似性。 SO被称为优化的公差模型告诉我们,强大的技术系统,因为很小的故障也会崩溃。

    4.2物理学遇到生物学

    物理思维的重点是系统操作的一般定律。例如,分析公司的运营,我们将绘制图表。假设此图表拟合了一定曲线,但是拟合此曲线的原因有很多,因此以这种方式有更多的问题,而不是答案。

    生物学思维的重点是系统组成部分的细节和多样性。当思考系统的不同相互作用级别时,那些看上去不明显的细节可能会增加到顶层,这对整个系统至关重要。它可以帮助我们理解这种互连越来越强,但是解释性的世界越来越弱。完善细节的详细信息是建立和理解系统的重要方法。

    作者建议将物理思维与生物学思考结合在一起,这有助于我们更好地理解复杂的技术系统。利用物理思维分析事物复杂性的定律,并使用生物学思维注意复杂的细节。

    5文章摘要

    复杂是技术系统的基本属性。技术系统演变的性质和特征永远不会说。我们使用作者的话来结束:理解复杂系统的正确态度是,我们必须努力克服难以理解的事物的无知。一旦我们理解了什么,我们就不会认为这是理所当然的。谦卑和生物学思维是理解复杂世界的正确方法。

更多帖子推荐

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|小黑屋|关于我们

Copyright © 2001-2025, Tencent Cloud.    Powered by Discuz! X3.5    京ICP备20013102号-30

违法和不良信息举报电话:86-13718795856 举报邮箱:hwtx2020@163.com

GMT+8, 2025-4-22 14:15 , Processed in 0.086617 second(s), 18 queries .