首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Java后端技术栈cwnait

    扩展模式

    扩展模式 概述 软件系统与硬件和建筑系统最大的区别在于软件是扩展的。 软件系统的天生的扩展性既是魅力所在,也是其难点所在。魅力体现在我们可以对软件系统进行修改和扩展,难点在于如何使用最小的代价去修改和扩展系统。 扩展的基本思想 尽管扩展的方式由很多种,但是请切记,万变不离其中的一个字:拆。 对其拆分后: 拆,原本就是讲一个大系统拆分成若干个小系统,扩展时只需要修改其中一部分就可以了,无须对整体系统都改动,通过这种方式来减小改动范围,从而也降低改动风险。

    82120发布于 2019-07-30
  • 来自专栏我和未来有约会

    建立扩展的silverlight 应用框架 step-5

    整理Module 在第三节里边,建立了一个最简单的Module。这里要对其再进行整理。之前我写过一篇《简练的视图模型 ViewModel》这里就讲述了一个最最基本的运用视图与模型的例子。用模型来控制视图的呈现在很早的时候就提出来了。当然Prism这个框架也包括了这一点。这里就要为Module加入Model。 这里记录下整理步骤 1.在Module项目中新建立一个Models文件夹,用来存放数据模型。在文件下新建立一个HelloPrismModel类继承自INotifyPropertyChanged。

    61990发布于 2018-01-16
  • 来自专栏超级架构师

    扩展性】谷歌扩展和弹性应用的模式

    本文档介绍了一些用于创建具有弹性和扩展性的应用程序的模式和实践,这是许多现代架构练习的两个基本目标。设计良好的应用程序会随着需求的增加和减少而上下扩展,并且具有足够的弹性以承受服务中断。 扩展性:调整容量以满足需求 扩展性是衡量系统通过在系统中添加或删除资源来处理不同数量的工作的能力。 驱动因素和制约因素 提高应用程序的扩展性和弹性有不同的要求和动机。也可能存在限制您实现扩展性和弹性目标的能力的限制。 当您考虑如何围绕服务划定界限时,可用性和扩展性要求是关键维度。例如,如果给定组件的可用性要求或扩展配置文件与您的其他组件不同,则它可能是独立服务的良好候选者。 使用适当的数据库和存储技术 某些数据库和存储类型难以扩展并具有弹性。确保您的数据库选择不会限制您的应用程序的可用性和扩展性。

    3.1K20编辑于 2022-09-26
  • 来自专栏博文视点Broadview

    扩展架构取舍

    成熟的工具使得开发人员可以针对要解决的问题设计出扩展的架构。 构建扩展的软件,可以从很多角度来思考软件架构。但是如果每个角度都去考虑,根本不可能做出想要的软件。 如果有太多严格的设计原则不能被打破或改变以迎合需求,就不能更好地适应不断变化的扩展性影响因素。 考虑到扩展性影响因素的不可预测性,无法改变的设计原则是否还有意义? 这样才能增强我们在其他方面提高扩展性的能力。 性能的可配置性 如果有几乎每个方面都可配置的通用组件自然是极好的。然而,设计通用组件的代价需要牺牲性能。 但是并不是软件的所有方面都需要可以替换,为了保障性能,可能根本没有替换的组件。 但当扩展应用时,可能需要考虑将大组件重构为较小的替换组件。但是这样做会引入新的间接层,从而影响性能。 不过牺牲一点点性能换来替换性,可以帮助我们在其他方面获得架构的扩展性。 寻址性的开发便捷性 为应用程序中的资源分配寻址的URI 必然会增加功能实现的难度。

    58810发布于 2020-06-11
  • 来自专栏C语言

    XML——扩展标记语言

    XML——扩展标记语言 本质: XML:一种用于标记电子文件使其具有结构性的标记语言 特点 (1) XML可以从HTML中分离数据 (2) XML可用于交换数据(在不兼容的系统中间) (3) XML可应用于 B2B中 (4)利用XML可以共享数据,纯文本,易读,方便共享 (5) XML可以充分利用数据 (6) XML可以用于创建新的语言 格式 XML是纯文本模式 1.必须有声明语句 <? 因此最好养成统一的大小写习惯 3.有且只有一个根元素 根元素的起始要放在文档的最前面,其他元素都是该元素的子元素 根元素的结束标志相应的要放在最后 4.属性值使用引号 可以是单引号,也可以是双引号 5. 所有标记必须有相应结束标记 标记必须成对出现(空标记也不例外) 与HTML的区别 (1)扩展性方面:XML允许用户根据需要自行定义新的标识及属性名,以便更好地从语义上修饰数据。 (2)结构性方面:HTML不支持深层的结构描述,XML的文件结构嵌套可以复杂到任意程度,能表示面向对象的等级层次 (3)校验性方面:HTML没有提供规范文件以支持应用软件对HTML文件进行结构校验,而

    1.1K10编辑于 2021-12-07
  • 来自专栏null的专栏

    扩展机器学习——概述

    注:这是一份学习笔记,记录的是参考文献中的扩展机器学习的一些内容,英文的PPT可见参考文献的链接。 扩展机器学习系列主要包括以下几个部分: 概述 Spark分布式处理 线性回归(linear Regression) 梯度下降(Gradient Descent) 分类——点击率预测(Click-through Rate Prediction) 神经科学 一、Overview 1、处理大规模数据集 对于不断扩大的数据规模主要有两种不同的处理方法: 向上扩展(Scale-up):采用更大规模的机器,如下图所示 向外扩展(Scale-out):采用分布式的计算方法,如下图所示 ? 优点:仅利用一些常用的硬件便能解决大规模问题 缺点:1、需要处理网络通信的问题;2、增加了一些软件的复杂度。

    77030发布于 2019-02-13
  • 来自专栏null的专栏

    扩展机器学习——概述

    注:这是一份学习笔记,记录的是参考文献中的扩展机器学习的一些内容,英文的PPT可见参考文献的链接。 扩展机器学习系列主要包括以下几个部分: 概述 Spark分布式处理 线性回归(linear Regression) 梯度下降(Gradient Descent) 分类——点击率预测(Click-through Rate Prediction) 神经科学 一、Overview 1、处理大规模数据集 对于不断扩大的数据规模主要有两种不同的处理方法: 向上扩展(Scale-up):采用更大规模的机器,如下图所示 向外扩展(Scale-out):采用分布式的计算方法,如下图所示 ? 优点:仅利用一些常用的硬件便能解决大规模问题 缺点:1、需要处理网络通信的问题;2、增加了一些软件的复杂度。

    1.3K60发布于 2018-03-20
  • 来自专栏迁移内容

    扩展的编程语言——Scala

    Scala语言的名称来自于"伸展的语言"。之所以这样命名,是因为它被设计成可以随着使用者的需求而扩展。Scala的应用范围很广,从编写简单脚本,到建立大型系统。 ​ 在伸展性方面,这两种编程风格具有互补的力量。SCala 的函数式编程简化了用简单部件搭建实际应用的过程。它的面向对象特性又使它便于构造大型系统并使它们适应新的需求。 类型安全:Scala创始人是教授,他先带领创建了Java 5编译器,而后觉得Java有太多羁绊而发明了Scala。 Scala编译器和类型系统非常强大,它的目标是尽量把软件错误消灭在编写过程中。

    1.2K20编辑于 2022-12-01
  • 来自专栏正则

    uitextfield扩展修改placeholder的颜色  (扩展类)

    http://www.jianshu.com/p/e5c6c9b455dd 第一种方法 [_tfdUserName setValue:[UIColor whiteColor] forKeyPath:@"

    1.7K40发布于 2021-05-11
  • 来自专栏Sun

    扩展多组件监控方案

    虽然在公有环境中使用云上的组件一般都会有完整的监控视图,但是有些项目是部署在私有环境中,使用的都是自建组件,没有完整的监控视图,其次,业务侧也希望将所有组件收归到一起进行统一的监控管理,这样就需要业务侧有一个多组件的监控平台,并且能够方便进行扩展 rsps, body) } }(p) } wg.Wait() for _, rsp := range rsps { w.Write(rsp) } ... } 5

    71720发布于 2021-11-23
  • 来自专栏Cellinlab's Blog

    React 16 - 构建维护扩展的前端应用

    # 前端项目的理想架构 易开发 开发工具是否完善 生态是否繁荣 社区是否活跃 扩展 增加新功能是否容易 新功能是否会显著增加系统复杂度 维护 代码是否容易理解 文档是否健全 测试

    62230编辑于 2023-05-17
  • 来自专栏每周一脱topic

    扩展web架构设计

    Scalability, 扩展性。系统能处理多少额外的流量,扩展的难度大小等等。 Manageability,易于管理。网站足够人性化,方便操作。也包含升级等操作的容易程度。 Cost,费用。 当扩展为多个node时,每个node都有自己的cache。 如果外部负载均衡随机分发请求,那么cache命中将降低。

    94740发布于 2019-04-16
  • 来自专栏wayn的程序开发

    SOLID 原则:编写扩展维护的代码

    由于其自相矛盾的性质,这是 5 个原则中最难完全掌握的原则之一,所以让我们看一个例子: class Shape: def __init__(self, shape_type, width, height 它违反了职责分离的原则,并使代码的灵活性和扩展性降低。让我们看一下解决这个问题的一种方法。 5. 第五个单词“D”代表依赖倒置原则 依赖倒置原则 这个解释起来非常简单,它指出: 高层模块不应该直接依赖于低层模块。相反,两者都应该依赖于抽象(接口或抽象类)。 让我们再来看一个例子。 SOLID 原则是一组编程设计原则,旨在提高软件的扩展性、可维护性和质量。它们分别是: 单一职责原则SOLID原则:一个类或模块应该只有一个职责,且该职责应该由该类或模块完全封装。 通过遵循这些原则,我们可以编写出更加清晰、灵活和复用的代码,降低耦合度和代码腐化的风险,提高代码的测试性和可读性。

    78320编辑于 2023-08-28
  • 来自专栏深度学习与python

    如何创建扩展维护的前端架构

    作者 | Kevin Pennekamp 译者 | Sambodhi 策划 | 辛晓亮 现代的前端框架和库可以轻松地创建重用的 UI 组件。在创建维护前端应用方面,这是一个很好的方向。 要让它们变得更易于维护和扩展。那意味着我们可以对当前特性进行修改,但也可以更快地添加新特性。 1高级架构 对于后端开发,我们可以遵循很多架构模式。 由于用户和前端的交互,我们需要一个既可维护又可扩展的可靠架构。在这一点上,我的首选架构是模块化和领域驱动的。记住,我的想法也许会改变,但这是我此刻首选的方式。 不依赖业务逻辑的重复使用的 UI 组件(如表格)在 components 目录下。 5UI 组件剖析 还缺少最后一个细节层面,那就是 UI 组件的架构。我在以前的博文中已经对此进行过描述。你可以从这种解剖图中看到一些我们已经广泛应用的概念。 前端是用户的第一个入口点。

    2.3K20发布于 2021-10-15
  • 来自专栏大数据及人工智能

    构建可靠、扩展维护的应用系统

    当系统负载增加时,系统如何扩展?这些问题是一个互联网分布式系统需要去重点考虑。 扩展性 随着数据量、流量或复杂性等规模的增长,系统应该能够以合理的方式来匹配这种增长。 可维护性 随着时间的推移,新功能的开发、新的团队成员加入都能够快速参与到系统开发和运维当中。

    1.1K10发布于 2021-10-28
  • 来自专栏云云众生s

    WebAssembly助力控制平面扩展

    因此,在软件架构原则上采用前向兼容性和扩展性通常是明智的。 然而,在软件架构中,研究出让应用程序对用户更加友好、能适应意外使用情况的最佳方式,这是一个长期存在的问题。 “它可能难以配置,但是我们觉得扩展性最终为客户带来的优点大于非常固执己见的系统。” 一个反例是我们的控制平面,这是有充分理由的。 这是我们希望保持的一种理念,方法是支持NGINX和F5扩展性方面的传承,并将其扩展到网关API控制平面的工作,正如我们正在开发符合网关API的NGINX Gateway Fabric项目。” 正如“2023年WebAssembly状况”报告所示,当您开始考虑注入性、插件和扩展系统时,这项技术非常合适。工具和周围的生态系统继续改进,安全性很强,而且Wasm字节码很紧凑,便于传递和共享。 “我们有扩展的数据平面和扩展的未来证明API,”他说。“让我们确保拥有扩展的控制平面,以利用所有这些力量。”

    26410编辑于 2024-03-28
  • 来自专栏深度学习与python

    如何实现扩展的架构?

    扩展性被认为是一个很难解决的问题。人们总是把它看成是一种神奇的东西,是用神秘而特殊的工具完成的,只有身价百万的大块头才能使用。这当然不是真的。 但是,如果想知道其中的原理,你就应该知道如何在裸金属上实现扩展的设置。 1基本原则  选择恰当的工具 不同的编程语言适用于不同的任务。 即使有了缓存,服务器仍是不可扩展的 工具:MongoDB、Express 作为速率限制器和内存缓存  猎豹 这是扩展的!你可以拥有任意数量的服务器。 使用函数式语言,服务器是扩展的。但是单个 DB 可能无法处理大量的请求 工具:Go、Redis 缓存、MongoDB  老虎 这个架构速度很快,而且扩展。看它有多漂亮。 保证扩展,保证无状态!

    1.6K10编辑于 2023-04-01
  • 来自专栏超级架构师

    扩展性」扩展性最佳实践:来自eBay的经验教训

    在eBay,我们每天都在争论的主要架构力量之一是扩展性。它为我们制定的每一个架构和设计决策着色和推动。 在扩展的体系结构中,资源使用应该随负载线性增加(或更好),其中可以在用户流量,数据量等中测量负载。 如果组件A同步调用组件B,则A和B紧密耦合,并且该耦合系统具有单一的伸缩性特征 - 为了扩展A,您还必须扩展B.同样有问题的是它对可用性的影响。 在每个级别,将处理分解为阶段或阶段,并将它们异步连接,对于扩展至关重要。 最佳实践#5:将处理转移到异步流程 现在您已异步解耦,请将尽可能多的处理移动到异步端。 虚拟化使得扩展基础架构成为可能,因为它使得扩展管理。 最佳实践#7:正确缓存 扩展的最后一个组成部分是明智地使用缓存。这里的具体建议不太普遍,因为它们往往高度依赖于用例的细节。

    1K40发布于 2018-12-19
  • 来自专栏生如夏花绚烂

    Es5扩展

    对象扩展 Object.create(prototype,[desc]) 作用:以指定对象为原型创建新的对象 为新的对象指定新的属性,并对属性进行描述 value:指定值 writable:标识当前属值是否修改 "test" age: 67 __proto__: Object 新的对象指定新的属性,并对属性进行描述 Object.defineProperties(object,desc) 作用:为指定对象定义扩展多个属性 value:'男', writable:true,//标识可写 configureable:true,//标识删除 一个简单实例,数组求和 let arr = [1,2,3,4,5,6]; let res = arr.reduce(function(tem,item,index){ return tem+item 示例二,将二数组转化为一维数组 let arr=[[1,2],[3,4],[5,6]]; let res = arr.reduce(function(tmp,item,index){ return

    54810编辑于 2022-09-08
  • 来自专栏人工智能应用

    代码架构优化:构建维护、扩展的软件系统

    引言:架构优化的价值与挑战 在软件开发领域,优秀的代码架构就像建筑设计的蓝图,决定了软件的健壮性、可维护性和扩展性。 一个需求变更需要修改多处代码 循环依赖:模块间相互引用形成死结 过度耦合:组件间依赖关系过于紧密 贫血模型:对象仅包含数据缺少行为 优化核心目标 可维护性:降低修改和调试成本 扩展性 :支持新功能快速集成 测试性:便于编写单元测试和集成测试 可读性:代码自解释性强 性能:优化关键路径执行效率 架构优化核心原则 SOLID 原则实践 // 单一职责原则示例 // 优秀的架构师需要在以下方面找到平衡: 原则与实践:理解原则但不过度教条 简单与灵活:保持简单但预留扩展点 当前与未来:解决当下问题但不忽视长期演进 技术与沟通:技术决策与团队共识并重 基础设施依赖是否替换? 关键决策是否有文档记录? 通过持续审视这些方面,您的系统架构将逐渐向更健康、更可持续的方向发展。

    42810编辑于 2025-08-01
领券