互联网架构设计

互联网架构设计

基于海量数据、高并发用户系统的设计研究

设计原则之单一职责原则 

技术开发 编程 技术框架 技术发展

使用这些技术并遵循“单一职责原则”预先开发代码似乎是一项艰巨的任务,但是随着项目的发展和开发的继续,这些努力肯定会得到回报。

无论我们认为什么是出色的代码,它始终需要一种简单的质量:代码必须是可维护的。正确的缩进,整洁的变量名,100%的测试覆盖率等等只能使您走得更远。任何无法维护且不能相对轻松地适应不断变化的需求的代码都是等待过时的代码。当我们尝试构建原型,概念验证或最低限度的产品时,我们可能不需要编写出色的代码,但是在所有其他情况下,我们应始终编写可维护的代码。这应该被视为软件工程···

查看详情

设计原则之迪米特法则 

技术开发 编程 技术框架 技术发展

迪米特法则减少了依赖性,并帮助构建了松耦合的组件,以实现代码重用,更易于维护和可测试性

迪米特法则是开发软件应用程序的设计指南。该原理于1987年在东北大学首次讨论,它指出一个对象永远不应该知道其他对象的内部细节。它旨在促进软件设计中的松耦合。注意,耦合可以被定义为软件模块之间存在的相互依赖程度以及这种模块彼此之间的紧密连接程度。应用程序中组件之间的耦合越多,随着时间的推移修改和维护它就越难。通过确保应用程序中的组件之间松散耦合,设计易于测试和维护···

查看详情

里氏替换原则(LSP) 

技术开发 编程 技术框架 技术发展

子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。

什么是LSP?LSP在较高级别上指出,在面向对象的程序中,如果我们用其任何子类的对象替代超类对象引用,则程序不应中断。假设我们有一个使用超类对象引用进行某些操作的方法:class SomeClass { void aMethod(SuperClass superClassReference) { doSomething(superClassReference); } // definition of doSomething() omitted}对于传递给它的每个可能的子类对象,SuperClass这应该按预期工···

查看详情

软件设计原则之开闭原则 

技术开发 编程 技术框架 技术发展

如果模块仍可扩展,则称其为打开状态。例如,应该可以向其包含的数据结构添加字段,或者向其执行的功能集添加新元素。

SOLID设计:开闭原则(OCP)开闭原理(OCP)是众所周知的SOLID缩写词中的O。伯特兰·迈耶(Bertrand Meyer)曾因创造了开放/封闭原则一词而广受赞誉,该原则出现在1988年的《面向对象的软件构造》一书中。它的原始定义是如果模块仍可扩展,则称其为打开状态。例如,应该可以向其包含的数据结构添加字段,或者向其执行的功能集添加新元素。如果某个模块可供其他模块使用,则将其称为已关闭···

查看详情

了解算法设计原理 

技术开发 编程 技术框架 技术发展

算法不一定是一种特殊的操作。它们是概念性的,是您为实现特定目标而在代码中采取的一组步骤。

本文将深入探讨算法设计的原理。如果您不清楚我指的是什么,请继续阅读!当您听到“算法”一词时,您可能会以以下三种方式之一进行响应:您会立即了解并理解我们在说什么,因为您学习过计算机科学。您知道算法是诸如Google和Facebook这样的公司的主力军,但您实际上不确定这个词是什么意思。您奔跑而躲避恐惧,因为您对算法的了解使您想起了高中微积分的噩梦。如果您是后两者之一,那么本···

查看详情

算法设计技术 

技术开发 编程 技术框架 技术发展

算法是一种针对有限大小的输入以有限数量的步骤解决特定问题的过程。

什么是算法?算法是一种针对有限大小的输入以有限数量的步骤解决特定问题的过程。可以以各种方式对算法进行分类。他们是:实施方法设计方法其他分类本文讨论了每种分类方法中的不同算法。按实现方法分类:在这种分类中,可以将算法命名为三个主要类别。他们是:递归或迭代:甲递归算法是直到碱条件实现,而迭代算法使用连连调用自身的算法循环和/或数据结构等栈,队列解决任何问题。每个递···

查看详情

软件设计模式之拦截过滤器模式 

技术开发 编程 技术框架 技术发展

当我们想对应用程序的请求或响应进行一些预处理/后处理时,将使用拦截过滤器设计模式。

当我们想对应用程序的请求或响应进行一些预处理/后处理时,将使用拦截过滤器设计模式。在将请求传递到实际目标应用程序之前,已定义过滤器并将其应用于请求。过滤器可以对请求进行身份验证/授权/记录或跟踪,然后将请求传递给相应的处理程序。以下是这种类型的设计模式的实体。过滤器-过滤器,它将在请求处理程序执行请求之前或之后执行某些任务。过滤器链-过滤器链带有多个过滤器,有助于···

查看详情

软件设计模式之服务定位器模式 

技术开发 编程 技术框架 技术发展

当我们想使用JNDI查找来定位各种服务时,将使用服务定位器设计模式。

当我们想使用JNDI查找来定位各种服务时,将使用服务定位器设计模式。考虑到为服务查找JNDI的高昂成本,服务定位器模式利用了缓存技术。第一次需要服务时,服务定位器会在JNDI中查找并缓存服务对象。通过服务定位器进行的进一步查找或相同服务在其缓存中完成,这在很大程度上提高了应用程序的性能。以下是这种类型的设计模式的实体。服务-将处理请求的实际服务。此类服务的参考将在JNDI服务···

查看详情

软件设计模式之空对象模式 

技术开发 编程 技术框架 技术发展

空对象不是执行if检查是否为空值,而是反映了“不做任何事”的关系。在没有数据的情况下,此类Null对象还可用于提供默认行为。

在“空对象”模式中,空对象将替换对空对象实例的检查。空对象不是执行if检查是否为空值,而是反映了“不做任何事”的关系。在没有数据的情况下,此类Null对象还可用于提供默认行为。在“空对象”模式中,我们创建一个抽象类,指定要完成的各种操作,扩展该类的具体类和提供该类的任何实现的空对象类,将在需要检查空值的地方被隐蔽地使用。实作我们将创建一个定义外观的AbstractCustomer···

查看详情