全网最详细的工厂设计模式,本文主要是创建型设计模式中的工厂方法和抽象工厂,先由传统实现方式引出问题,接着对代码改进到简单工厂,后扩展到工厂方法,最后是抽象工厂模式,文中包括概念理解和相关实现代码。 ...
作为一个开发人员,都想写出一手好的代码,而不是别人称的“屎山”,设计模式提供了一系列常见问题的解决方案,通过利用设计模式来尽可能统一规范,可以提高代码的可维护性、可读性、可扩展性。 ...
在计算机发展的早期,一直都是集中式计算,计算能力依赖大型计算机。随着互联网的发展,繁重的业务需要巨大的计算能力才能完成,而集中式计算无法满足要求,大型计算机的价格也非常昂贵。分布式计算将任务分解成更小的部分,分配给多台计算机处理,这样可以节约整体计算时间,大大提高计算效率。互联网大型网站往往面临高并... ...
hello,大家好呀,我是小楼。今天不写BUG,来聊一聊注册中心。 标题本来想叫《如何设计一个注册中心》,但网上已经有好多类似标题的文章了。所以打算另辟蹊径,换个角度,如何组装一个注册中心。 组装意味着不必从0开始造轮子,这也比较符合许多公司对待自研基础组件的态度。 知道如何组装一个注册中心有什么用 ...
互联网协议 1.C/S B/S 架构 client 基于网络通信 server browser 基于网络通信 server server端必须满足的条件: 1. 稳定运行(网络. 硬件. 操作系统. 服务端软件) 2. 服务端必须绑定一个固定的地址 2.什么是互联网 两大要素: 1. 底层的物理链接 ...
变频器(Variable-frequency Drive,VFD)是应用变频技术与微电子技术,通过改变电机工作电源频率方式来控制交流电动机的电力控制设备。 ...
在软件开发领域经常会接触到架构这个词汇,在我最初的印象中,架构是一个很高级的词汇。它似乎代表了复杂的工程结构、高层次的抽象设计、最新的开发语言特性等等。对于当时只专注于写业务逻辑的我来说,不免心生对架构的敬畏。工作中对架构的讨论很少,出现则是一些高级晦涩的描述,但是从来没有人清楚地解释过架构做了哪些... ...
概述 beanstalkd 是一个简单快速的分布式工作队列系统,协议基于 ASCII 编码运行在 TCP 上。其最初设计的目的是通过后台异步执行耗时任务的方式降低高容量 Web 应用的页面延时。其具有简单、轻量、易用等特点,也支持对任务优先级、延时/超时重发等控制,同时还有众多语言版本的客户端支持, ...
何为状态机? 从字面上简单粗暴地理解,状态机是一个跟状态有关的机器,但其实状态机并不是一种物理机器,而是一种模型,一种表达事物状态及状态变化过程的数学模型。 状态机全称是有限状态机(finite-state machine,缩写:FSM)或者有限状态自动机(finite-state automato ...
参数过长 影响: 方法不易被理解、使用,方法签名容易不稳定,不易维护 解决方法:反复使用提炼方法+内联方法,消除多余参数 尽量把方法移进相关的类中 如实体类中的get方法在其他类中没有被调用可以删除 实际工作中,可以结合参数数量、以及自身对业务的理解,在 最小知道 和 保持对象完整性 之 ...
摘要:最近看《计算机体系结构:量化研究方法(第五版)》,发现指令集设计中的一些原则,对API设计也同样适用,给大家分享一下。 本文中的所有内容来自工作和学习过程中的心得整理,如需转载请注明出处。周荣华@燧原科技 1 正交 指令集需要满足操作、数据类型和寻址方式三个方面的功能就是正交的。所以API设计 ...
本章是系列文章的第十一章,主要介绍GPU的编译原理,分析了多核运行过程中的内存分岔和控制流分岔的分析和处理。 本文中的所有内容来自学习DCC888的学习笔记或者自己理解的整理,如需转载请注明出处。周荣华@燧原科技 11.1 什么是GPU 11.1.1 GPU的发展历史 软件控制的VGA帧缓冲区 频繁 ...
Twitter系统架构参考Push、Pull模式每时每刻都有用户在Twitter上发表内容,Twitter工作是规划如何组织内容并把它发送用户的粉丝。 实时是真正的挑战,5秒内将消息呈现给粉丝是现阶段的目标。 投递意味着内容、投入互联网,然后尽可能快的发送接收。 投递将历时数据放入存储栈,推送通知, ...
1. 安装containerd k8s1.24不支持docker作为运行时容器,需要采用containerd k8s1.24可以支持docker的远程镜像 1.1. 安装 apt-get install containerd.io=1.6.6-1 1.2. 生成containerd默认配置文件(所有 ...
java基础知识图解 软件开发 软件开发 软件,即一系列按照特定顺序组织的计算机数据和指令的集合。有系统软件和应用软件之分。 人机交互方式 图形化界面(Graphical User Interface GUI):这种方式简单直观,使用者易于接受,容易上手操作。 命令行方式(Command Line ...
利用spring boot多数据源功能,可以同时支持不同类型数据库mysql,oracle,postsql,sql server等,以及相同类型数据库不同的schema。 ...
几年前我总结过DDD战术设计的一些可落地的经验,现在回过头来发现,当初对这些概念的理解还是没有到位。比如战术设计的各个模块是如协作的。哪些是问题空间问题,哪些是解方案空间问题 这篇文章重新阐述下。 ...
刚学习完Java SE,不知道怎么写项目?不知道写什么项目?本篇文章将线上ATM详细架构设计分享出来,帮助初学者开发项目。 ...
之前小亿有讲解过二极管和三极管的内容,感兴趣的朋友可以去网站主页搜索,今天我们来了解晶闸管。 晶闸管结构 单向晶闸管(晶体闸流管)是N-P-N-P四层半导体结构,中间形成了三个PN结。有三个电极,分别是阳极A,阴极K,门极G(也叫控制极)。 导电特性 如画面中的电路,开关S1闭合时,但是门极G没有触 ...
Python设计模式-六大设计原则 单一职责原则 (Single Responsibility Principle) 顾名思义,单一职责的原则是说一个类只负责一项职责(操作)。如果一个类负责多个职责,其中一项职责发生变化就需要修改整个类,这可能会导致其他的职责运行错误。一个类,只应该有一个引起它变化 ...