1. 面向对象编程 1.1. (Object-Oriented Programming,OOP) 1.2. 基于对象的概念的一种编程范式 1.3. 对象可以包含数据和代码 1.4. 数据是对象的状态 1.5. 代码是一个或多个方法 1.5.1. 消息是方法,包括名称、实参和返回类型 1.6. 通过使 ...
1. 子类型 1.1. 在期望类型T的实例的任何地方,都可以安全地使用类型S的实例,则类型S是类型T的子类型 1.1.1. 里氏替换原则(Liskov substitution principle) 2. 名义子类型 2.1. 明确指定 2.2. 显式声明一个类型是另一个类型的子类型 2.3. 大部 ...
程序员拥有一个较好的编程原则能使他的编程能力有大幅的提升,可以使其开发出维护性高、缺陷更少的代码。以下内容梳理自StactOverflow的一个问题:编程时你最先考虑的准则是什么? ...
基于AWS云SaaS多租户架构设计租户与用户概念单租户与多租户多租户的好处 采用多租户架构方法将为你的SaaS应用程序带来广泛的有价值的好处。 让我们来看看下面的贡献。 a) 利用多租户架构策略,减少服务器基础设施成本。 与其为每个客户创建一个SaaS环境,不如为所有客户提供一个应用环境。这使你的A ...
作为一个后端研发人员,开发服务接口是我正常不过的工作了,这些接口不管是面向前端HTTP或者是供其他服务RPC远程调用的,都绕不开一个共同的话题就是“高可用”,接口开发往往看似简单,但保证高可用这块实现起来却不并没有想想的那么容易,接下来我们就看一下,一个高可用的接口是该考虑哪些内容,同时文中有不足的... ...
1. 装饰器模式 1.1. 扩展对象的行为,而不必修改对象的类 1.2. 装饰的对象可以执行其原始实现没有提供的功能 1.3. 优势 1.3.1. 支持单一职责原则 1.3.1.1. 每个类只应该承担一种职责 1.4. 经典实现 1.4.1. 一个IComponent接口 1.4.2. 一个具体实现 ...
摘要:跨域,对后端工程师来说,可谓既熟悉又陌生。 本文分享自华为云社区《后端老司机的跨域之旅》,作者: 勇哥java实战分享。 跨域,对后端工程师来说,可谓既熟悉又陌生。 这两个月我以架构师的角色参与一款教育产品的孵化,有了一段难忘的跨域之旅。 写这篇文章,我想分享我在跨域这个知识点的经历和思考,希 ...
原文链接: 工作流引擎架构设计 最近开发的安全管理平台新增了很多工单申请流程需求,比如加白申请,开通申请等等。最开始的两个需求,为了方便,也没多想,就直接开发了对应的业务代码。 但随着同类需求不断增多,感觉再这样写可要累死人,于是开始了工作流引擎的开发之路。查找了一些资料之后,开发了现阶段的工作流引 ...
混沌工程是通过主动制造故障场景并根据系统在各种压力下的行为表现确定优化策略的一种系统稳定性保障手段,简单说就是通过主动注入故障的方式、提前发现问题,然后解决问题规避风险。 ...
1. 策略模式 1.1. 在运行时从一组算法中选择某个算法 1.1.1. 封装一组算法 1.1.2. 在运行时使用其中一个算法 1.2. 把算法与使用算法的组件解耦 1.3. 面向对象实现 1.3.1. 惯例实现 1.3.2. IStrategy接口 1.3.3. ConcreteStrategy1 ...
视频格式就是通常所说的.mp4,.flv,.ogv,.webm等。简单来说,它其实就是一个盒子,用来将实际的视频流以一定的顺序放入,确保播放的有序和完整性。 ...
背景 又很久没更新了,很幸运地新冠引发了严重的上呼吸道感染,大家羊过后注意休息和防护 工作中(尤其是传统项目中)经常遇到这种需要,就是树形结构的查询(多级查询),常见的场景有:组织架构(用户部门)查询 和 多级菜单查询 比如,菜单分为三级,一级菜单、二级菜单、三级菜单,要求用户按树形结构把各级菜单查 ...
1. 避免基本类型偏执 1.1. 把值声明为基本类型,并对其意义做一些隐含的假定时 1.1.1. 例如:使用number表示邮编 1.1.2. 例如:使用string表示电话号码 1.2. 定义类型来显式捕捉值的含义,从而避免错误解释值 1.2.1. 新类型只是简单地封装了一个数字或字符串 1.2. ...
1. 复合类型 1.1. 乘积类型 1.2. 组合一个或多个类型将得到一个新类型,其值为组成类型的全部可能的组合 1.3. 元组 1.3.1. 一组类型构成,通过它们在元组中的位置可以访问这些组成类型 1.3.2. 一种特殊的分组数据的方式,允许我们将不同类型的多个值作为一个值进行传递 1.3.3. ...
电销是什么?就是坐席拿着电话给客户打电话吗?no no no,让我们一起走进京音平台之电销系统。 京音平台2020年初开始建设,过去的两年多的时间里,经历了跌宕起伏,有经验、有教训,整体来说平台经历了人工、自动化阶段,目前处于初步智能化阶段,希望可以将过去的一些心路历程分享给大家,共同交流、共同进... ...
论文地址:https://pdos.csail.mit.edu/6.824/papers/raft-extended.pdf 看完raft共识算法,脑袋非常懵,所以写一篇学习笔记,记录一下。 raft算法主要解决三个模块的问题:领导人选举、日志复制和安全性。当然除了这三个方面,论文对于raft的安全 ...
如果决策引擎是风控的大脑,那么规则引擎则是大脑内的重要构成,其编排了各种对抗黑产的规则,是多年对抗黑产的专家经验的累计,本文将向你介绍规则引擎的构成及实现。 ...
创建型设计模式抽象了实例化过程,它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。在这些模式中有两个不断出现的主旋律:它们都将关于该系统使用哪些具体的类的信息封装起来;它们隐藏了这些类的实例是如何被创建和放... ...
小程序≠微信小程序 说到小程序,大部分同学的第一反应,可能是微信小程序、支付宝小程序,确实,小程序的概念深入人心,并且已经被约定俗成的绑定到某些互联网公司的 APP 上。 但是,“小程序”并不是一个注册商标,也不是哪一家的专利。 小程序作为一种人机交互的软件载体、一种数字内容格式、一种代码分发传播机 ...
Christopher Alexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。” ...