首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    软件架构与系统复杂性

    复杂或复杂性与简单相对立,那么复杂是什么?它是我们大脑中的一个概念,但是我在网上找不到一个给复杂恰当的定义描述,它会有不同的解释。 其中洛克在《人类理解论》中说道:『一些思想是由简单的思想组合而成,我称此为复杂;比如美、感激、人、军队、宇宙等。』 作为研究复杂系统的专家 Melanie Mitchell,也没有给出一个明确的公认的定义。她在《复杂》一书中给出了复杂系统加以定义:『复杂系统是由大量组分组成的网络,不存在中央控制,通过简单运作规则产生出复杂的集体行为和复杂的信息处理,并通过学习和进化产生适应性。』 上述复杂系统中的组分对应软件系统中的组成部分,基于不同粒度可以是对象、函数、类、包、模块、组件和服务等。每一部分都应该是相对单一的职责,细粒度部分之间耦合提供更粗粒度功能,不同组分之间相互协作来提供系统功能,继而组合成我们复杂的软件系统。

    01

    devops:破窗效应与代码质量

    破窗效应是犯罪心理学的一个理论,指如果一个建筑,当出现小量破窗的时候,会诱发更多的人为破坏。如果一个建筑出现破窗的时候及时修复,会受到更少破坏。我们是否有这样的经历,当接手一个代码质量较差的项目,例如一个函数有上百行的代码,函数里有大量的 if else,如果让你增加一个功能,你更倾向于直接在目标函数上加入你的改动代码,而不是通读该方法,再进行封装修改呢。其实这样的修改方式,并没有错,也和个人能力没有关系,因为这种修改方式是最保险,最快捷的,他不但维持代码原有功能正常运行,还添加了新的功能。但是,这样的项目,就是典型的破窗效应,因为第一个人产生了破窗,没有及时修复,后面来的人,就会更大胆的破坏,最终项目没法维护。

    01
    领券